OSDN Git Service

* cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on DECL_INLINE.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-07-25  Jan Hubicka  <jh@suse.cz>
2
3         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on DECL_INLINE.
4         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
5         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
6         * dojump.c (clear_pending_stack_adjust): Likewise.
7         * print-tree.c (print_node): Ignore DECL_INLINE.
8         * tree-inline.c (inlinable_function_p): Likewise.
9         
10 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
11
12         * doc/extend.texi (hot attribute): Document that the hot attribute
13         turns on -O3 for some ports.
14         (cold attribute): Document that the cold attribute turns on -Os
15         for some ports
16
17         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
18         reflect function specific option support.
19
20         * target.h (struct target_option_hooks): Add fields to say whether
21         the cold attribute implies -Os and the hot attribute implies -O3.
22
23         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
24         By default, do not turn on -Os for cold functions.
25         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
26         not turn on -O3 for hot functions.
27
28         * c-common.c (handle_hot_attribute): Use target hook to determine
29         if hot functions should enable -O3.
30         (handle_cold_attribute): Use target hook to determine if cold
31         functions should enable -Os.
32
33         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
34         (override_options): Move disable scheduling to
35         optimization_options.
36         (optimization_options): Disable scheduling here, not
37         override_options.
38         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
39         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
40
41         * config/ia64/ia64.c (ia64_override_options): Move setting
42         scheduling flags to ia64_optimization_options.
43         (ia64_optimization_options): Disable scheduling options here, and
44         not in ia64_override_options.
45         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
46         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
47
48 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
49
50         PR target/36936
51         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
52
53 2008-07-25  Martin Jambor  <mjambor@suse.cz>
54
55         PR tree-optimization/36926
56         * ipa-prop.c (ipa_analyze_call_uses): Call
57         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
58
59 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
60
61         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
62         movv2si_internal): Add mem = reg alternative.
63
64 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
65
66         PR bootstrap/36918
67         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
68         DEFAULT_PCC_STRUCT_RETURN to 127.
69
70 2008-07-24  Jan Hubicka  <jh@suse.cz>
71
72         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
73         (build_cgraph_edges): Likewise.
74         * cgraph.c (cgraph_node): Do not update assembler hash.
75         (cgraph_remove_node): Drop non-unit-at-a-time code.
76         * tree-pass.h (pass_O0_always_inline): Remove.
77         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
78         * toplev.c (process_options): Flag unit-at-a-time does not imply
79         no section anchors.
80         * cgraphunit.c: Update comments.
81         (decide_is_function_needed): Drop non-unit-at-a-time mode.
82         (cgraph_assemble_pending_functions): Remove.
83         (cgraph_reset_node): Drop non-unit-at-a-time code.
84         (cgraph_finalize_function): Likewise.
85         (cgraph_analyze_function): Likewise.
86         (cgraph_finalize_compilation_unit): Likewise.
87         (cgraph_expand_function): Likewise.
88         (cgraph_optimize): Likesise.
89         (save_inline_function_body): Likewise.
90         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
91         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
92         * ipa-inline.c: Update comments.
93         (enum inlining_mode): remove INLINE_SPEED.
94         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
95         (cgraph_mark_inline_edge): Likewise.
96         (try_inline): Likewise.
97         (cgraph_decide_inlining_incrementally): Likewise.
98         (cgraph_gate_inlining): Remove.
99         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
100         (cgraph_gate_early_inlining): Likewise.
101         (gate_inline_passes): Remove.
102         (pass_inline_parameters, pass_ipa_inline): Remove gates.
103         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline, 
104         pass_O0_always_inline): Remove.
105         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
106         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
107         * opts.c (no_unit_at_a_time_default): Remove.
108         (decode_options): Remove flag_unit_at_a_time reset and warning.
109         * opts.h (no_unit_at_a_time_default): Remove.
110         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
111         early in GNU dialect.
112         (merge_decls): Update comment; drop unit-at-a-time check.
113         (finish_decl): Likewise.
114         (grok_declaration): Remove flag_inline_trees code.
115         (finish_functions): Return on function returning non-void on all
116         statics.
117         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
118         * cfgexpand.c (expand_one_static_var): Remove.
119         (expand_one_var): Remove expand_one_static_var call.
120         (expand_used_vars_for_block): Remove flag_unit_a_time check.
121         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
122         and flag_unit_at_a-time compatibility checks.
123         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
124         * tree-inline.c (flag_inline_trees): Remove.
125         (inlinable_function_p): Don't check it.
126         (expand_call_inline): Remove non-unit-at-a-time code.
127         * tree-inline.h (flag_inline_trees): Remove.
128         * tree-optimize.c (execute_early_local_optimizations): Remove
129         unit-at-a-time checks.
130         (tree_rest_of_compilation): Likewise.
131         * combine.c (setup_incoming_promotions): Likewise.
132         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
133         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
134         * passes.c (pass_inline_parameters): Update comments; remove
135         O0_alwaysinline pass.
136         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
137         (execute_one_pass): Likewise.
138         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
139         (ix86_function_sseregparm): Likewise.
140         * arm.c (arm_function_in_section_p): Likewise.
141         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
142         * varpool.c: Update comments.
143         (decide_is_variable_needed): Remove unit-at-a-time checks.
144         (varpool_finalize_decl): Likewise.
145
146 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
147
148         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
149         to 2 instead of -1.
150         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal
151         to 2.
152
153 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
154
155         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
156         imp symbol extension.
157
158         2008-07-23  Ian Lance Taylor  <iant@google.com>
159
160         * tree-vrp.c (infer_value_range): Ignore asm statements when
161         looking for memory accesses for -fdelete-null-pointer-checks.
162
163 2008-07-24  Ben Elliston  <bje@au.ibm.com>
164
165         * config/spu/spu-c.c (__vector_keyword): New variable.
166         (vector_keyword): Likewise.
167         (spu_categorize_keyword): New function.
168         (spu_macro_to_expand): Likewise.
169         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
170         compiling an ISO C dialect.
171
172 2008-07-24  Ben Elliston  <bje@au.ibm.com>
173
174         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
175         conventional usage.
176
177 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
178
179         * configure: Regenerate.
180         * configure.ac: Require texinfo 4.7.
181         * doc/install.texi: Document texinfo 4.7 requirement.
182
183 2008-07-23  Martin Jambor  <mjambor@suse.cz>
184
185         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
186         rather than for DECL_SAVED_TREE.
187         * ipa-prop.c: Include diagnostic.h.
188         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
189         thoroughly.
190         (ipa_detect_param_modifications): Function rewritten from scratch.
191         (ipa_compute_jump_functions): Changed accesses to modification flags.
192         (ipa_free_node_params_substructures): Update flags destruction.
193         (ipa_node_duplication_hook): Update flags duplication.
194         (ipa_print_all_params_modified): Updated flag access.
195         * ipa-prop.h (struct ipa_param_flags): New structure.
196         (struct ipa_node_params): New field modification_analysis_done,
197         modified_flags changed into param_flags.
198         (ipa_is_ith_param_modified): Changed to use new flags.
199         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
200
201         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
202         ipa-cp.c and split into two functions.
203         (ipa_print_node_jump_functions): New function.
204         (compute_scalar_jump_functions): New function.
205         (type_like_member_ptr_p): New function.
206         (compute_pass_through_member_ptrs): New function.
207         (fill_member_ptr_cst_jump_function): New function.
208         (determine_cst_member_ptr): New function.
209         (compute_cst_member_ptr_arguments): New function.
210         (ipa_compute_jump_functions): Complete rewrite.
211         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
212         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
213         (struct ipa_member_ptr_cst): New structure.
214         (union jump_func_value): New field member_cst.
215         * ipa-cp.c (ipcp_lat_is_insertable): New function.
216         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
217         jump function types.
218         (ipcp_print_all_lattices): Slight fprintf rearrangement.
219         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
220         instead of ipcp_print_all_jump_functions.
221         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
222         only for replacable scalars.
223
224         * doc/invoke.texi (Optimize options): Add description of
225         -findirect-inlining.
226         * common.opt (flag_indirect_inlining): New flag.
227         * opts.c (decode_options): Set flag_indirect_inlining when 
228         optimize >= 3.
229
230         * ipa-inline.c: Include ipa-prop.h.
231         (inline_indirect_intraprocedural_analysis): New function.
232         (inline_generate_summary): Allocate parameter and argument info
233         structures, call inline_indirect_intraprocedural_analysis on each
234         node when doing indirect inlining and deallocate indirect inlining 
235         data structures in the end.
236         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
237         (free_all_ipa_structures_after_iinln): New function.
238         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be 
239         done.
240         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
241
242         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
243         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
244         of computing the frequency separately.
245         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
246         of computing the frequency separately.
247         * ipa-cp.c (ipcp_print_all_structures): Replace a call to 
248         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
249         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
250         (ipa_get_stmt_member_ptr_load_param): New function.
251         (ipa_is_ssa_with_stmt_def): New function.
252         (ipa_note_param_call): New function.
253         (ipa_analyze_call_uses): New function.
254         (ipa_analyze_stmt_uses): New function.
255         (ipa_analyze_params_uses): New function.
256         (ipa_free_node_params_substructures): Also free the param_calls linked
257         list.
258         (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
259         (ipa_print_node_param_flags): New function.
260         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
261         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
262         * ipa-prop.h (struct ipa_param_flags): New field called.
263         (struct ipa_param_call_note): New structure.
264         (struct ipa_node_params): New fields param_calls and
265         uses_analysis_done.
266         (ipa_is_ith_param_called): New function.
267         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
268         ipa_analyze_params_uses and dump parameter flags.
269
270         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
271         ipa_propagate_indirect_call_infos if performing indirect inlining,
272         pass a new parameter new_edges to it.
273         (add_new_edges_to_heap): New fucntion.
274         (cgraph_decide_inlining_of_small_functions): New vector
275         new_indirect_edges for newly found indirect edges , call
276         ipa_propagate_indirect_call_infos after inlining.
277         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
278         inlining if performing indirect inlining.  Call
279         free_all_ipa_structures_after_iinln when doing so too.
280         (inline_generate_summary): Do not call
281         free_all_ipa_structures_after_iinln here.
282         * ipa-prop.c (update_jump_functions_after_inlining): New function.
283         (print_edge_addition_message): New function.
284         (update_call_notes_after_inlining): New function.
285         (propagate_info_to_inlined_callees): New function.
286         (ipa_propagate_indirect_call_infos): New function.
287         * ipa-prop.h: Include cgraph.h
288         (struct ipa_param_call_note): Fields reordered, new field processed.
289         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
290         flag indirect_call.
291         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
292         rediscovered call statements.
293         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
294         (dump_cgraph_node): Dump also the indirect_call flag.
295         (cgraph_clone_edge): Copy also the indirect_call flag.
296         * tree-inline.c (copy_bb): Do not check for fndecls from call
297         expressions, check for edge availability when moving clones.
298         (get_indirect_callee_fndecl): New function.
299         (expand_call_inline): If callee declaration is not apprent from
300         the statement, try calling get_indirect_callee_fndecl.  Do not
301         issue warnings or call sorry when not inlinings an indirect edge.
302         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
303
304         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
305         bit more frandly to matching.
306         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
307         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
308         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
309         
310 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
311
312         PR 36907
313         * opth-gen.awk: Suppress function specific features when building
314         target libraries.
315         * optc-gen.awk: Ditto.
316
317 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
318
319         PR 35058
320         * diagnostic.c (pedwarn): Add opt parameter.
321         (pedwarn0): New.
322         * c-tree.h (pedwarn_init): Add opt parameter.
323         (pedwarn_c90): Likewise.
324         (pedwarn_c99): Likewise.
325         * c-errors.c (pedwarn_c99): Likewise.
326         (pedwarn_c90): Likewise.
327         * toplev.h (pedwarn): Update declaration.
328         (pedwarn0): Declare.
329         * c-lex.c: All calls to pedwarn changed.
330         * builtins.c: All calls to pedwarn changed.
331         * toplev.c: All calls to pedwarn changed.
332         * c-decl.c: All calls to pedwarn changed.
333         * c-typeck.c: All calls to pedwarn changed.
334         * c-common.c: All calls to pedwarn changed.
335         * c-parser.c: All calls to pedwarn changed.
336         
337 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
338             Karthik Kumar  <karthikkumar@gmail.com>
339
340         * attribs.c (file scope): Include c-common.h.
341         (decl_attributes): Add support for #pragma GCC optimize and
342         #pragma GCC option.
343
344         * targhooks.c (default_can_inline_p): New function that is the
345         default for the TARGET_CAN_INLINE_P target hook.
346
347         * targhooks.h (default_can_inline_p): Add declaration.
348
349         * tree.c (cl_optimization_node): New static tree for building
350         OPTIMIZATION_NODE tree.
351         (cl_target_option_node): New static tree for building
352         TARGET_OPTION_NODE tree.
353         (cl_option_hash_table): New hash table for hashing
354         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
355         (cl_option_hash_hash): New function to provide the hash value for
356         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
357         (cl_option_hash_eq): New function to provide an equality test for
358         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
359         (tree_code_size): Add support for OPTIMIZATION_NODE and
360         TARGET_OPTION_NODE trees.
361         (tree_code_structure): Add support for OPTIMIZATION_NODE and
362         TARGET_OPTION_NODE trees.
363         (build_optimization_node): Build a tree that has all of the
364         current optimization options.
365         (build_target_option_node): Build a tree that has the target
366         options that might be changed on a per function basis.
367
368         * tree.h (file scope): Include options.h.
369         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
370         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
371         (TREE_OPTIMIZATION): Ditto.
372         (TREE_TARGET_SPECIFIC): Ditto.
373         (struct tree_function_decl): Add fields for remembering the
374         current optimization options and target specific options.
375         (struct tree_optimization_option): New tree variant that remembers
376         the optimization options.
377         (struct tree_target_option): New tree variant that remembers the
378         target specific flags that might change for compiling a particular
379         function.
380         (union tree_node): Include tree_optimization_option and
381         tree_target_option fields.
382         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
383         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
384         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
385         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
386         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
387         optimization and target options.
388         (optimization_default_node): New macro to refer to global_trees
389         field.
390         (optimization_current_node): Ditto.
391         (optimization_cold_node): Ditto.
392         (optimization_hot_node): Ditto.
393         (target_option_default_node): Ditto.
394         (target_option_current_node): Ditto.
395         (current_option_pragma): Ditto.
396         (current_optimize_pragma): Ditto.
397
398         * target.h (struct gcc_target): Add valid_option_attribute_p,
399         target_option_save, target_option_restore, target_option_print,
400         target_option_pragma_parse, and can_inline_p hooks.
401
402         * toplev.h (parse_optimize_options): Add declaration.
403         (fast_math_flags_struct_set_p): Ditto.
404
405         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
406         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
407         optimize is used.
408
409         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
410         tree_can_inline_p hook to see if one function can inline another.
411         (cgraph_decide_inlining): Ditto.
412         (cgraph_decide_inlining_incrementally): Ditto.
413
414         * opts.c (decode_options): Add support for running multiple times
415         to allow functions with different target or optimization options
416         than was specified on the command line.
417         (fast_math_flags_struct_set_p): New function that is similar to
418         fast_math_flags_set_p, except it uses the values in the
419         cl_optimization structure instead of global variables.
420
421         * optc-gen.awk: Add support for TargetSave to allow a back end to
422         declare new fields that need to be saved when using function
423         specific options.  Include flags.h and target.h in the options.c
424         source.  Add support for Save to indicate which options can be set
425         for individual functions.  Generate cl_optimize_save,
426         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
427         cl_target_option_restore, cl_target_option_print functions to
428         allow functions to use different optimization or target options.
429
430         * opt-functions.awk (var_type_struct): Return the type used for
431         storing the field in a structure.
432
433         * opth-gen.awk: Add support for TargetSave to allow a back end to
434         declare new fields that need to be saved when using function
435         specific options.  Add support for Save to indicate which options
436         can be set for individual functions.  Only generate one extern for
437         Mask fields.  Generate cl_optimization and cl_target_option
438         structures to remember optimization and target options.
439
440         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
441         collecting new tree nodes.
442         (TS_TARGET_OPTION): Ditto.
443
444         * c-decl.c (merge_decls): Merge function specific target and
445         optimization options.
446
447         * function.c (invoke_set_current_function_hook): If the function
448         uses different optimization options, change the global variables
449         to reflect this.
450
451         * coretypes.h (struct cl_optimization): Add forward reference.
452         (struct cl_target_option): Ditto.
453
454         * c-pragma.c (option_stack): New static vector to remember the
455         current #pragma GCC option stack.
456         (handle_pragma_option): New function to support #pragma GCC option
457         to change target options.
458         (optimize_stack): New static vector to remember the current
459         #pragma GCC optimize stack.
460         (handle_pragma_optimize): New function to support #pragma GCC
461         optimize to change optimization options.
462         (init_pragma): Add support for #pragma GCC optimize and #pragma
463         GCC option.
464
465         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
466         optimization options.
467         (TARGET_OPTION_NODE): New tree code for remembering certain target
468         options.
469
470         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
471         TARGET_OPTION_NODE trees.
472
473         * common.opt (-O): Add Optimization flag.
474         (-Os): Ditto.
475         (-fmath-errno): Ditto.
476         (-falign-functions): Add UInteger flag to make sure flag gets full
477         int in cl_optimization structure.
478         (-falign-jumps): Ditto.
479         (-falign-labels): Ditto.
480         (-falign-loops): Ditto.
481         (-fsched-stalled-insns): Ditto.
482         (-fsched-stalled-insns-dep): Ditto.
483
484         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
485         definition.
486         (TARGET_OPTION_SAVE): Ditto.
487         (TARGET_OPTION_RESTORE): Ditto.
488         (TARGET_OPTION_PRINT): Ditto.
489         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
490         (TARGET_CAN_INLINE_P): Ditto.
491         (TARGET_INITIALIZER): Add new hooks.
492
493         * tree-inline.c (tree_can_inline_p): New function to determine
494         whether one function can inline another.  Check if the functions
495         use compatible optimization options, and also call the backend
496         can_inline_p hook.
497
498         * tree-inline.h (tree_can_inline_p): Add declaration.
499
500         * c-common.c (c_common_attribute): Add support for option and
501         optimize attributes.
502         (handle_option_attribute): Add support for the option attribute to
503         allow the user to specify different target options for compiling a
504         specific function.
505         (handle_optimize_attribute): Add support for the optimize
506         attribute to allow the user to specify different optimization
507         options for compiling a specific function.
508         (handle_hot_attribute): Turn on -O3 optimization for this one
509         function if it isn't the default optimization level.
510         (handle_cold_attribute): Turn on -Os optimization for this one
511         function if it insn't the default optimization.
512         (const_char_p): New const char * typedef.
513         (optimize_args): New static vector to remember the optimization
514         arguments.
515         (parse_optimize_options): New function to set up the optimization
516         arguments from either the optimize attribute or #pragma GCC
517         optimize.
518
519         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
520         (builtin_define_std): Ditto.
521
522         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
523         Add t-i386 Makefile fragment to add i386-c.o and i386.o
524         dependencies.
525         (x86_64-*-*): Ditto.
526
527         * Makefile.in (TREE_H): Add options.h.
528         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
529
530         * doc/extend.texi (option attribute): Document new attribute.
531         (optimize attribute): Ditto.
532         (hot attribute): Document hot attribute sets -O3.
533         (cold attribute): Document cold attribute sets -Os.
534         (#pragma GCC option): Document new pragma.
535         (#pragma GCC optimize): Ditto.
536
537         * doc/options.texi (TargetSave): Document TargetSave syntax.
538         (UInteger): Document UInteger must be used for certain flags.
539         (Save): Document Save option to create target specific options
540         that can be saved/restored on a function specific context.
541
542         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new
543         macro.
544         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
545
546         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new
547         hook.
548         (TARGET_OPTION_SAVE): Ditto.
549         (TARGET_OPTION_RESTORE): Ditto.
550         (TARGET_OPTION_PRINT): Ditto.
551         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
552         (TARGET_CAN_INLINE_P): Ditto.
553
554         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
555         -mfpmath=sse,387.
556         (-mfpmath=both): Ditto.
557
558 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
559             Karthik Kumar  <karthikkumar@gmail.com>
560
561         * config/i386/i386.h (TARGET_ABM): Move switch into
562         ix86_isa_flags.
563         (TARGET_POPCNT): Ditto.
564         (TARGET_SAHF): Ditto.
565         (TARGET_AES): Ditto.
566         (TARGET_PCLMUL): Ditto.
567         (TARGET_CMPXCHG16B): Ditto.
568         (TARGET_RECIP): Move switch into target_flags.
569         (TARGET_FUSED_MADD): Ditto.
570         (ix86_arch_features): Make an unsigned char type.
571         (ix86_tune_features): Ditto.
572         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
573         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
574         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
575
576         * config/i386/i386.opt (arch): New TargetSave field to define
577         fields that need to be saved for function specific option
578         support.
579         (tune): Ditto.
580         (fpmath): Ditto.
581         (branch_cost): Ditto.
582         (ix86_isa_flags_explicit): Ditto.
583         (tune_defaulted): Ditto.
584         (arch_specified): Ditto.
585         (-m128-long-double): Add Save flag to save option for target
586         specific option support.
587         (-m80387): Ditto.
588         (-maccumulate-outgoing-args): Ditto.
589         (-malign-double): Ditto.
590         (-malign-stringops): Ditto.
591         (-mfancy-math-387): Ditto.
592         (-mhard-float): Ditto.
593         (-mieee-fp): Ditto.
594         (-minline-all-stringops): Ditto.
595         (-minline-stringops-dynamically): Ditto.
596         (-mms-bitfields): Ditto.
597         (-mno-align-stringops): Ditto.
598         (-mno-fancy-math-387): Ditto.
599         (-mno-push-args): Ditto.
600         (-mno-red-zone): Ditto.
601         (-mpush-args): Ditto.
602         (-mred-zone): Ditto.
603         (-mrtd): Ditto.
604         (-msseregparm): Ditto.
605         (-mstack-arg-probe): Ditto.
606         (-m32): Ditto.
607         (-m64): Ditto.
608         (-mmmx): Ditto.
609         (-m3dnow): Ditto.
610         (-m3dnowa): Ditto.
611         (-msse): Ditto.
612         (-msse2): Ditto.
613         (-msse3): Ditto.
614         (-msse4.1): Ditto.
615         (-msse4.2): Ditto.
616         (-msse4): Ditto.
617         (-mno-sse4): Ditto.
618         (-msse4a): Ditto.
619         (-msse5): Ditto.
620         (-mrecip): Move flag into target_flags.
621         (-mcld): Ditto.
622         (-mno-fused-madd): Ditto.
623         (-mfused-madd): Ditto.
624         (-mabm): Move flag into ix86_isa_flags.
625         (-mcx16): Ditto.
626         (-mpopcnt): Ditto.
627         (-msahf): Ditto.
628         (-maes): Ditto.
629         (-mpclmul): Ditto.
630
631         * config/i386/i386-c.c: New file for #pragma support.
632         (ix86_target_macros_internal): New function to #define or #undef
633         target macros based when the user uses the #pragma GCC option to
634         change target options.
635         (ix86_pragma_option_parse): New function to add #pragma GCC option
636         support.
637         (ix86_target_macros): Move defining the target macros here from
638         TARGET_CPU_CPP_BUILTINS in i386.h.
639         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
640         defined, initialize any subtarget #pragmas.
641
642         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
643         REGISTER_TARGET_PRAGMAS.
644
645         * config/i386/t-i386: New file for x86 dependencies.
646         (i386.o): Make dependencies mirror the include files used.
647         (i386-c.o): New file, add dependencies.
648
649         * config/i386/i386-protos.h (override_options): Add bool
650         argument.
651         (ix86_valid_option_attribute_tree): Add declaration.
652         (ix86_target_macros): Ditto.
653         (ix86_register_macros): Ditto.
654
655         * config/i386/i386.c (ix86_tune_features): Move initialization of
656         the target masks to initial_ix86_tune_features to allow functions
657         to have different target options.  Make type unsigned char,
658         instead of unsigned int.
659         (initial_ix86_tune_features): New static vector to hold processor
660         masks for the tune variables.
661         (ix86_arch_features): Move initialization of the target masks to
662         initial_ix86_arch_features to allow functions to have different
663         target options.  Make type unsigned char, instead of unsigned
664         int.
665         (initial_ix86_arch_features): New static vector to hold processor
666         masks for the arch variables.
667         (enum ix86_function_specific_strings): New enum to describe the
668         string options used for attribute((option(...))).
669         (ix86_target_string): New function to return a string that
670         describes the target options.
671         (ix86_debug_options): New function to print the current options in
672         the debugger.
673         (ix86_function_specific_save): New function hook to save the
674         function specific global variables in the cl_target_option
675         structure.
676         (ix86_function_specific_restore): New function hook to restore the
677         function specific variables from the cl_target_option structure to
678         the global variables.
679         (ix86_function_specific_print): New function hook to print the
680         target specific options in the cl_target_option structure.
681         (ix86_valid_option_attribute_p): New function hook to validate
682         attribute((option(...))) arguments.
683         (ix86_valid_option_attribute_tree): New function that is common
684         code between attribute((option(...))) and #pragma GCC option
685         support that parses the options and returns a tree holding the
686         options.
687         (ix86_valid_option_attribute_inner_p): New helper function for
688         ix86_valid_option_attribute_tree.
689         (ix86_can_inline_p): New function hook to decide if one function
690         can inline another on a target specific basis.
691         (ix86_set_current_function); New function hook to switch target
692         options if the user used attribute((option(...))) or #pragma GCC
693         option.
694         (ix86_tune_defaulted): Move to static file scope from
695         override_options.
696         (ix86_arch_specified): Ditto.
697         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
698         ix86_isa_flags.
699         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
700         (OPTION_MASK_ISA_ABM_SET): Ditto.
701         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
702         (OPTION_MASK_ISA_CX16_SET): Ditto.
703         (OPTION_MASK_ISA_SAHF_SET): Ditto.
704         (OPTION_MASK_ISA_AES_UNSET): Ditto.
705         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
706         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
707         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
708         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
709         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
710         (struct ptt): Move to static file scope from override_options.
711         (processor_target_table): Ditto.
712         (cpu_names): Ditto.
713         (ix86_handle_option): Add support for options that are now isa
714         options.
715         (override_options): Add support for declaring functions that
716         support different target options than were specified on the
717         command line.  Move struct ptt, processor_target_table, cpu_names,
718         ix86_tune_defaulted, ix86_arch_specified to static file scope.
719         Add bool argument.  Fix up error messages so the appropriate error
720         is given for either command line or attribute.
721         (ix86_previous_fndecl): New static to remember previous function
722         declaration to see if we need to change target options.
723         (ix86_builtins_isa): New array to record the ISA of each builtin
724         function.
725         (def_builtin): Always create the builtin function, even if the
726         current ISA doesn't support it.
727         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
728         tests for those builtins.
729         (ix86_init_builtins): Remove TARGET_MMX test for calling
730         ix86_init_mmx_sse_builtins.
731         (ix86_expand_builtin): If the current ISA doesn't support a given
732         builtin, signal an error.
733         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
734         (TARGET_SET_CURRENT_FUNCTION): Ditto.
735         (TARGET_OPTION_SAVE): Ditto.
736         (TARGET_OPTION_RESTORE): Ditto.
737         (TARGET_OPTION_PRINT): Ditto.
738         (TARGET_CAN_INLINE_P): Ditto.
739
740 2008-07-22  Rafael Avila de Espindola  <espindola@google.com>
741
742        * c-typeck.c (build_external_ref): Don't call assemble_external.
743        * final.c (output_operand): Call assemble_external.
744
745 2008-07-21  DJ Delorie  <dj@redhat.com>
746
747         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
748         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
749
750 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
751
752         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
753         original insn and splitter contents into ...
754         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
755         flag_unsafe_math_optimizations.  Add dummy scratch register.
756         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
757         !flag_unsafe_math_optimizations.  Returns number with next
758         highest magnitude if this is still less or equal to the true
759         quotient in magnitude.
760
761 2008-07-21  Rafael Avila de Espindola  <espindola@google.com>
762
763         * Makefile.in: Replace toplev.h with TOPLEV_H.
764         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
765         * c-lex.c (fe_file_change): Don't set in_system_header.
766         * c-parser.c (c_token): Remove in_system_header.
767         (c_lex_one_token): Don't set in_system_header.
768         (c_parser_set_source_position_from_token): Don't set in_system_header.
769         * diagnostic.c (diagnostic_report_diagnostic): Use location from
770         diagnostic_info.
771         (warning_at): New.
772         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
773         * flags.h (in_system_header): Remove.
774         * function.c (saved_in_system_header): Remove.
775         (push_cfun): Don't set in_system_header.
776         (pop_cfun): Don't set in_system_header.
777         (push_struct_function): Don't set in_system_header.
778         * input.h (expanded_location): Add sysp.
779         (in_system_header_at): New.
780         (in_system_header): New.
781         * toplev.c (in_system_header): Remove.
782         * toplev.h: Include input.h
783         (warning_at): New.
784         * tree-cfg.c (execute_warn_function_return): Call warning_at.
785         * tree-ssa.c (warn_uninit): Call warning_at.
786         (warn_uninitialized_var): Update calls to warn_uninit.
787         (warn_uninitialized_phi): Update calls to warn_uninit.
788         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
789         (expand_location): Initialize xloc.sysp.
790         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
791         (tree_decl_with_vis): Remove in_system_header_flag.
792
793 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
794
795         PR target/36822
796         * recog.c (asm_operand_ok): Change the order of the extra
797         memory constraint checks.
798
799 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
800
801         PR tree-opt/36879
802         * tree-switch-conversion.c (build_one_array): Call
803         varpool_mark_needed_node and varpool_finalize_decl 
804         instead of assemble_variable.
805
806 2008-07-19  Jan Hubicka  <jh@suse.cz>
807
808         * cgraph.c (cgraph_add_new_function): Do early local passes.
809         * tree-nrv.c (gate_pass_return_slot): New gate.
810         (pass_nrv): Add the gate.
811         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
812         functions.
813         (coalesce_ssa_name): Coalesce SSA names.
814         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
815         not optimizing so unused user vars remains visible.
816         * common.opt (flag_tree_ter): Always enable by default.
817         * tree-ssa-ter.c: Include flags.h
818         (is_replaceable_p): Check that locations match; when aliasing is missing
819         be conservative about loads.
820         * tree-optimize.c (gate_init_datastructures): Remove.
821         (pass_init_datastructures): New.
822         * passes.c: Reorder passes so we always go into SSA.
823
824 2008-07-19  Jan Hubicka  <jh@suse.cz>
825
826         * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
827         * doc/invoke.texi (--combine): Likewise.
828         (-finline-functions-called-once): Update levels when enabled.
829         (-funit-at-a-time): Document new behaviour.
830         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
831         -fno-section-anchors when disabled explicitly.
832         (inline params): They are not ignored now.
833         (precompiled headers): Remove unit-at-a-time as being incompatible.
834         * opts.c (decode_options): Handle unit-at-a-time as alias;
835         imply -fno-section-anchors when toplevel reorder is disabled
836         explicitly.
837         * common.opt (ftoplevel-reorder): Set default value to 2.
838         (funit-at-a-time): Set default value to 1.
839         * config/rs6000/rs6000.c (optimization_options): Set section anchors
840         to 2.
841
842 2008-07-19  Jan Hubicka  <jh@suse.cz>
843
844         * builtins.c (expand_builtin_int_roundingfn,
845         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
846         it is not useful.
847
848 2008-07-19  Richard Guenther  <rguenther@suse.de>
849
850         PR bootstrap/36864
851         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
852         * tree-ssa-sccvn.c (get_constant_value_id): New function.
853         * tree-ssa-pre.c (get_expr_value_id): For newly created
854         constant value-ids make sure to add the expression to its
855         expression-set.
856
857 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
858
859         PR middle-end/36877
860         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
861         return value of the builtin is ignored.
862
863 2008-07-19  Olivier Hainque  <hainque@adacore.com>
864
865         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
866         bits, a C conformant malloc implementation has to provide.
867         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
868
869 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
870
871         PR target/36780
872         PR target/36827
873         * reload.c (find_reloads_subreg_address): Only reload address if
874         reloaded == 0, not for reloaded != 1.
875
876         Revert:
877         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
878         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
879         (m32c_legitimate_address_p): Handle "++rii" addresses created by
880         m32c_legitimize_reload_address.
881
882         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
883         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
884         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
885
886 2008-07-19  Olivier Hainque  <hainque@adacore.com>
887
888         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
889         argument, saying whether nested array are to be collapsed
890         into a single array type DIE with multiple subscripts.
891         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
892         issues, centralize the nested array types collapsing control and
893         disable the transformation for Ada.
894         
895 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
896
897         PR target/36786
898         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
899         x86_64_shift_adj.
900         (x86_64_shift_adj_2): New expander.
901         (x86_64_shift_adj_3): Ditto.
902         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
903         to split TImode operands.
904         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
905         (ix86_split_lshr): Ditto.
906
907 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
908
909         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
910         and __CHAR32_TYPE__.
911         * c-typeck.c (digest_init): Support char16_t and char32_t.
912         (set_nonincremental_init_from_string): Idem.
913
914 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
915
916         PR middle-end/36859
917         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
918         PREFERRED_STACK_BOUNDARY.
919         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
920
921 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
922
923         PR middle-end/36858
924         * function.c (locate_and_pad_parm): Cap boundary earlier.
925
926 2008-07-17  Julian Brown  <julian@codesourcery.com>
927
928         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
929         no-op for targets which don't use DLLs.
930
931 2008-07-17  Martin Jambor  <mjambor@suse.cz>
932
933         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
934         that nodes are relevant by examining the node->analyzed flag.
935         (ipcp_init_stage): Check which nodes are relevant, assert that the
936         relevant ones are also required.
937         (ipcp_propagate_stage): Check on the side arrays are properly
938         allocated.
939         (ipcp_print_all_jump_functions): Make sure not to touch any node
940         that is not analyzed or an edge that does not have a corresponding
941         entry in the on-the-side vectors.
942         (ipcp_function_scale_print): Likewise.
943         (ipcp_update_callgraph): Check that the node is relevant.
944         (ipcp_insert_stage): Check that the node is relevant.  Check there is
945         an info for every node and edge.
946         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
947         (ipa_print_all_tree_maps): Likewise and a new variable info.
948         (ipa_print_all_params_modified): Likewise.
949         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
950
951 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
952
953         PR target/25343
954         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
955
956 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
957
958         PR rtl-optimization/36753
959         * fwprop.c (use_killed_between): Don't shortcut
960         single-definition global registers.
961
962 2008-07-16  Jan Hubicka  <jh@suse.cz>
963
964         * cgraph.h (varpool_empty_needed_queue): Declare.
965         * cgraphunit.c (output_in_order): Mark all variables as needed;
966         empty the queue.
967         * varpool.c (varpool_assemble_node): Update debug queue.
968         (varpool_assemble_pending_decls): Don't do it here.
969         (varpool_empty_needed_queue):  New function.
970
971 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
972
973         * recog.c (peephole2_optimize): Fix formatting.
974
975 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
976
977         * c-pch.c (get_ident): Avoid C++ keywords.
978         * combine-stack-adj.c (single_set_for_csa): Likewise.
979         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
980         output_asm_insn): Likewise.
981         * reload.c (push_secondary_reload, find_reusable_reload,
982         push_reload, combine_reloads, find_reloads,
983         debug_reload_to_stream): Likewise.
984         * reload.h (struct reload): Likewise.
985         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
986         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
987         emit_output_reload_insns): Likewise.
988         * targhooks.c (default_secondary_reload): Likewise.
989         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
990
991 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
992
993         * recog.c (validate_change_1, validate_change,
994         validate_unshare_change, validate_replace_rtx_1, struct
995         funny_match, constrain_operands, peephole2_optimize): Avoid C++
996         keywords.
997         * reload.c (push_secondary_reload, secondary_reload_class,
998         scratch_reload_class, find_valid_class, find_reusable_reload,
999         push_reload, find_dummy_reload, find_reloads_address_1,
1000         find_reloads_address_part, find_equiv_reg): Likewise.
1001         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
1002         choose_reload_regs): Likewise.
1003         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
1004         Likewise.
1005         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
1006         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
1007         * sched-rgn.c (concat_INSN_LIST): Likewise.
1008         * stor-layout.c (mode_for_size, mode_for_size_tree,
1009         smallest_mode_for_size): Likewise.
1010
1011 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1012
1013         * cfg.c (dump_reg_info): Avoid C++ keywords.
1014         * dwarf2asm.c (dw2_force_const_mem,
1015         dw2_asm_output_encoded_addr_rtx): Likewise.
1016         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
1017         * expmed.c (expand_shift): Likewise.
1018         * global.c (find_reg): Likewise.
1019         * graph.c (draw_edge): Likewise.
1020         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
1021         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
1022         widen_clz, widen_bswap, expand_parity, expand_unop,
1023         emit_cmp_and_jump_insn_1): Likewise.
1024         * postreload.c (reload_cse_simplify_operands): Likewise.
1025         * ra.h (add_neighbor): Likewise.
1026         * reg-stack.c (remove_regno_note, change_stack): Likewise.
1027         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
1028         record_reg_classes, copy_cost, record_address_regs,
1029         invalid_mode_change_p): Likewise.
1030         * regrename.c (regrename_optimize, scan_rtx_reg,
1031         dump_def_use_chain, find_oldest_value_reg,
1032         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
1033
1034 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
1035
1036         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
1037         MASK_POWERPC64 for power4 in previous commit.
1038
1039 2008-07-16  Olivier Hainque  <hainque@adacore.com>
1040
1041         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
1042         instead of bare conversion to cast const-ness away.
1043
1044 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
1045
1046         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
1047         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
1048         * config/xtensa/xtensa.c (xtensa_function_value): New function.
1049         (TARGET_FUNCTION_VALUE): Define.
1050
1051 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
1052
1053         * config/rs6000/rs6000.c (processor_target_table): Add
1054         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
1055
1056 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
1057
1058         PR target/36827
1059         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
1060         (m32c_legitimate_address_p): Handle "++rii" addresses created by
1061         m32c_legitimize_reload_address.
1062
1063 2007-07-16  Rafael Avila de Espindola  <espindola@google.com>
1064
1065        * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
1066        DECL_IN_SYSTEM_HEADER in sync.
1067
1068 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
1069
1070         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
1071         * tree-ssa-pre.c (pre_expr_eq): Ditto
1072         (get_constant_for_value_id): Take a type as an argument.
1073         (fully_constant_expression): Pass in type.
1074         (find_or_generate_expression): Short circuit constant case.
1075         (create_expression_by_pieces): Remove special casing of
1076         pointer_plus.
1077         (do_regular_insertion): Short circuit constant case.
1078         (do_partial_partial_insertion): Ditto.
1079
1080 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1081
1082         PR target/36782
1083         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
1084
1085 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
1086         
1087         * config/xtensa/libgcc-xtensa.ver: New file.
1088         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
1089         
1090 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1091
1092         * df-problems.c (df_set_note): Avoid C++ keywords.
1093         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
1094         * dse.c (record_store, remove_useless_values): Likewise.
1095         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
1096         gen_reg_rtx_offset, operand_subword, change_address_1,
1097         change_address, adjust_address_1, offset_address,
1098         widen_memory_access, emit_copy_of_insn_after): Likewise.
1099         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
1100         * fwprop.c (should_replace_address, propagate_rtx_1,
1101         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
1102         Likewise.
1103         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
1104         gcse_emit_move_after, update_ld_motion_stores): Likewise.
1105         * lcm.c (compute_insert_delete, pre_edge_lcm,
1106         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
1107         * lower-subreg.c (resolve_reg_notes): Likewise.
1108         * mode-switching.c (optimize_mode_switching): Likewise.
1109
1110 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1111
1112         * bt-load.c (add_btr_def, migrate_btr_def,
1113         branch_target_load_optimize): Avoid C++ keywords.
1114         * caller-save.c (insert_restore, insert_save, insert_one_insn):
1115         Likewise.
1116         * combine.c (subst, simplify_set, make_extraction,
1117         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
1118         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
1119         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
1120
1121 2008-07-15  Richard Guenther  <rguenther@suse.de>
1122
1123         PR middle-end/36369
1124         * c-common.c (strict_aliasing_warning): Do not warn for
1125         TYPE_REF_CAN_ALIAS_ALL pointers.
1126         (c_common_get_alias_set): may_alias types are not special.
1127         * tree.c (build_pointer_type_for_mode): Look up the may_alias
1128         attribute and set can_ref_all accordingly.
1129         (build_reference_type_for_mode): Likewise.
1130         * doc/extend.texi (may_alias): Clarify.
1131
1132 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1133
1134         PR target/36780
1135         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
1136         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
1137
1138 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1139
1140         PR target/31568
1141         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
1142         gcc_assert, instead call output_operand_lossage.
1143
1144 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
1145
1146         * builtins.c (std_canonical_va_list): Treat structure based
1147         va_list types.
1148
1149 2008-07-15  Ben Elliston  <bje@au.ibm.com>
1150
1151         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
1152
1153 2007-07-14  Rafael Avila de Espindola  <espindola@google.com>
1154
1155         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
1156         is set.
1157
1158 2008-07-14  Jan Hubicka  <jh@suse.cz>
1159
1160         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
1161         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
1162         fix predicates and constraints.
1163         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
1164         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
1165
1166 2008-07-14  Doug Kwan  <dougkwan@google.com>
1167
1168         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
1169         additional option file arm/eabi.opt.
1170         * config/arm/eabi.h (File): New configuration file for EABI targets.
1171         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
1172         SUBSUBTARGET_EXTRA_SPECS.
1173         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
1174         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
1175         from STARTFILE_SPEC so that it can be referenced in an override.
1176         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
1177         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
1178         can be referenced in an override.
1179         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
1180         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
1181         so that it can be referenced in an override.
1182         (LINK_SPEC): Use BPABI_LINK_SPEC.
1183         * config/arm/eabi.opt (File): New.
1184
1185 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1186
1187         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
1188         (FIXED_VALUE_H): New variable.
1189         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
1190         input.h, fixed-value.h.
1191         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
1192         (BASIC_BLOCK_H): Use $(BITMAP_H).
1193         (FUNCTION_H): Add varray.h.
1194         (IPA_REFERENCE_H): Use $(BITMAP_H).
1195         (CGRAPH_H): Add $(BASIC_BLOCK_H).
1196         (DF_H): Use $(BITMAP_H).
1197         (GGC_H): Add statistics.h.
1198         (INSN_ADDR_H): New.
1199         (INSN_ATTR_H): Use it.
1200         (SYSTEM_H): Add safe-ctype.h, filenames.h.
1201         (INPUT_H): New.
1202         (SYMTAB_H): Add $(OBSTACK_H).
1203         (CPP_INTERNAL_H): New.
1204         (TREE_DUMP_H): Add tree-pass.h.
1205         (TREE_FLOW_H): Use $(BITMAP_H)
1206         (PRETTY_PRINT_H): Use $(INPUT_H).
1207         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
1208         (GSTAB_H): New.
1209         (BITMAP_H): New.
1210         (many object files): Fix lots of header dependencies throughout.
1211
1212 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1213
1214         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
1215         New macros.
1216         (s-gtyp-input): Use them to write tmp-gi.list.
1217         (echo_to_gi.list): Remove.
1218
1219 2008-07-14  Richard Guenther  <rguenther@suse.de>
1220
1221         * tree-ssa-sccvn.c (pre_info): Remove.
1222         (switch_to_PRE_table): Likewise.
1223         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
1224         (set_hashtable_value_ids): Do not create value-ids for the
1225         optimistic tables.
1226         (run_scc_vn): Remove double test.  Remove bogus special-case
1227         in value-number printing.
1228         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
1229         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
1230         SSA_NAME_VALUE.
1231         * tree-flow-inline.h (get_value_handle): Remove.
1232         * tree-flow.h (get_value_handle): Remove.
1233
1234 2008-07-14  Martin Jambor  <mjambor@suse.cz>
1235
1236         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
1237         in which we generate arithmetics is not a subrange.
1238
1239 2008-07-14  Martin Jambor  <mjambor@suse.cz>
1240
1241         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
1242
1243 2008-07-14  Richard Guenther  <rguenther@suse.de>
1244
1245         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
1246
1247 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1248
1249         PR target/36745
1250         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
1251         reload for symbol refs moved to r0 with -fPIC.
1252         (legitimize_pic_address): Use the target register as temporary
1253         reg if possible.
1254         (emit_symbolic_move): Adjust comment.
1255         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
1256         New expanders.
1257
1258 2008-07-14  Ben Elliston  <bje@au.ibm.com>
1259
1260         * c-common.h (C_CPP_HASHNODE): New macro.
1261         * coretypes.h (struct cpp_token): Forward declare.
1262         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
1263         the context-sensitive keyword method.
1264         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
1265         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
1266         expand_bool_pixel): New.
1267         (altivec_categorize_keyword): New function.
1268         (init_vector_keywords): New function.
1269         (rs6000_macro_to_expand): Likewise.
1270         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
1271         compiling an ISO C dialect.
1272
1273 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
1274
1275         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
1276         (create_expression_by_pieces): Fix typo.
1277         (do_regular_insertion): Use debug counter here too.
1278
1279 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
1280
1281         PR target/35492.
1282         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
1283         CONST_OK_FOR_LETTER_P.  All port-local users changed.
1284         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
1285         implement Kp matching power-of-two.
1286         (CONSTRAINT_LEN): Define to match.
1287         * config/cris/cris.md: Replace all use of constraint K with Kc.
1288         ("*btst*): Use Kp for operand 0 of last alternative.
1289
1290 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1291
1292         PR testsuite/36440
1293         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
1294         and quad formats.
1295
1296 2008-07-13  Jan Hubicka  <jh@suse.cz>
1297
1298         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
1299         to be mangled too.
1300
1301 2008-07-13  Richard Guenther  <rguenther@suse.de>
1302
1303         PR middle-end/36811
1304         * langhooks.c (lhd_print_error_function): Deal with recursive
1305         BLOCK trees.
1306
1307 2008-07-12  Jan Hubicka  <jh@suse.cz>
1308
1309         * cgraph.c (assembler_name_hash): New static var.
1310         (hash_node_by_assembler_name, eq_assembler_name): New.
1311         (cgraph_node_for_asm): Use hashtable.
1312         (cgraph_remove_node): Maintain hashtable.
1313         (change_decl_assembler_name): Sanity check that names are not changing
1314         after aliasing was processed.
1315         * cgraph.h (varpoon_node): Add next GGC marker.
1316         * tree.c (decl_assembler_name_equal): Constify.
1317         (decl_assembler_name_hash): New.
1318         * tree.h (decl_assembler_name_equal): Constify.
1319         (decl_assembler_name_hash): Update.
1320
1321 2008-07-12  David Daney  <ddaney@avtrex.com>
1322
1323         * config/mips/driver-native.c (host_detect_local_cpu): Handle
1324         sb1 and r5000 cpus.
1325
1326 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1327
1328         * doc/md.texi: Document the MIPS "v" constraint.
1329         * config/mips/mips.h (reg_class): Revert last change.
1330         (REG_CLASS_NAMES): Likewise.
1331         (REG_CLASS_CONTENTS): Likewise.
1332         * config/mips/mips.c (mips_regno_to_class): Likewise.
1333         * config/mips/constraints.md (v): Likewise, but add documentation.
1334         Add a comment to say that this constraint should not be used in
1335         gcc code.
1336
1337 2008-07-11  DJ Delorie  <dj@redhat.com>
1338
1339         * config/h8300/h8300.md (length): Fix branch offset limit.
1340
1341 2008-07-11  Anatoly Sokolov  <aesok@post.ru>    
1342
1343         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
1344         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
1345         (avr_hard_regno_scratch_ok): New function.
1346         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
1347         * config/avr/avr.md (all peepholes that request a scratch register):
1348         Remove avr_peep2_scratch_safe use.
1349
1350 2008-07-11  Tom Tromey  <tromey@redhat.com>
1351             Ian Lance Taylor  <iant@google.com>
1352
1353         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
1354         (struct c_common_resword): Define.
1355         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
1356         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
1357         (c_common_reswords, num_c_common_reswords): Declare.
1358         * c-common.c (c_common_reswords): New global const array.
1359         (num_c_common_reswords): New const int.
1360         * c-parser.c (struct resword, reswords): Don't define.
1361         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
1362         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
1363         than reswords.  If warning about C++ keywords, give them a special
1364         RID code.
1365         (c_lex_one_token): Warn about C++ keywords.  Call
1366         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
1367         (c_parser_external_declaration): Look for RID_xxx rather than
1368         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
1369         (c_parser_statement_after_labels): Likewise.
1370         (c_parser_objc_class_instance_variables): Likewise.
1371         (c_parser_objc_class_declaration): Likewise.
1372         (c_parser_objc_try_catch_statement): Likewise.
1373         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
1374         (declspecs_add_type): Likewise.
1375
1376 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
1377
1378         * ggc-page.c (alloc_page):
1379         Substituting xmalloc, xcalloc with
1380         XNEWVEC and XCNEWVAR macros which add the
1381         needed casts.
1382
1383 2008-07-11  Richard Guenther  <rguenther@suse.de>
1384
1385         PR tree-optimization/36765
1386         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
1387         aliases from HEAP vars to SMTs.
1388
1389 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1390
1391         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
1392         * configure.ac (loose_warn): Move -Wc++-compat from here...
1393         (strict_warn): ...to here.
1394         * configure: Regenerate.
1395
1396 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
1397
1398         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
1399         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
1400         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
1401         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
1402         excluding more specific h8300-*-* and sh-*-* targets.
1403
1404 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
1405
1406         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
1407         (eliminate): Ditto.
1408         (execute_pre): Call loop_optimizer_finalize in early exit.
1409
1410 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
1411
1412         PR middle-end/36790
1413         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
1414         uids in the bitmap, not just VAR_DECL uids.
1415
1416         PR rtl-optimization/36419
1417         * combine-stack-adj.c (adjust_frame_related_expr): New function.
1418         (combine_stack_adjustments_for_block): Call it if needed.  Delete
1419         correct insn.
1420         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
1421         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
1422         prologue sp adjustment.
1423
1424 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
1425
1426         PR other/28322
1427         * opts.c (print_ignored_options): Report postponed diagnostics for
1428         unknown -Wno-* options as warnings, not errors.
1429         (postpone_unknown_option_error): Renamed to...
1430         (postpone_unknown_option_warning): ... this.
1431
1432 2008-07-09  Doug Kwan  <dougkwan@google.com>
1433
1434         Revert:
1435         2008-07-08  Doug Kwan  <dougkwan@google.com>
1436
1437         * config/arm/arm.opt (mandroid): New option.
1438         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
1439         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
1440         (CC1_SPEC): Same.
1441         (CC1PLUS_SPEC): Same.
1442         (LIB_SPEC): Same.
1443         (STARTFILE_SPEC): Same.
1444         (ENDFILE_SPEC): Same.
1445         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
1446         used.
1447
1448 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
1449
1450         PR target/35802
1451         * config/mips/mips.h (reg_class): Remove V1_REG.
1452         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
1453         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
1454         instead of V1_REGS.
1455         (mips_get_tp): New function.
1456         (mips_legitimize_tls_address): Use it.
1457         * config/mips/constraints.md (v): Delete.
1458         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
1459         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
1460         After reload, split into a move and ...
1461         (*tls_get_tp_<mode>_split): ...this new instruction.
1462
1463 2008-07-09  David Daney  <ddaney@avtrex.com>
1464
1465         * config/mips/driver-native.c: Include coretypes.h and tm.h.
1466
1467 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
1468
1469         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
1470         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
1471         Add c argument.
1472         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
1473         htab_delete should be called.  Don't free c.
1474         (lookup_tmp_var): Create temp_htab lazily.
1475         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
1476         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
1477         callers.
1478         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
1479         lower_omp_ordered, lower_omp_critical, lower_omp_for,
1480         create_task_copyfn, lower_omp_taskreg, execute_lower_omp): 
1481         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
1482         * tree-sra.c (generate_element_init): Likewise.
1483         * tree-mudflap.c (execute_mudflap_function_ops,
1484         execute_mudflap_function_decls): Likewise.
1485         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
1486         * tree-gimple.h (struct gimplify_ctx): New type.
1487         (push_gimplify_context): Adjust prototype.
1488
1489 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
1490
1491         * tree-ssa-pre.c (phi_translate_1): Update placement of
1492         add_to_value calls.
1493
1494 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
1495
1496         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
1497         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
1498         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
1499         * targhooks.c (default_hard_regno_scratch_ok): New function.
1500         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
1501         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
1502         * recog.c:  Include "target.h".
1503         (peep2_find_free_register): Add check for global regs. Add target
1504         specific check.
1505         * Makefile.in (recog.o): Depend on target.h.
1506
1507 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
1508
1509         * config/sh/sh.c (sh_canonical_va_list_type): New.
1510         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
1511
1512 2008-07-09  Raksit Ashok <raksit@google.com>
1513
1514         * doc/invoke.texi (Option Summary): Mention new option
1515         -Wdisallowed-function-list=...
1516         (Warning Options): Document -Wdisallowed-function-list=...
1517         * common.opt (Wdisallowed-function-list=): New flag.
1518         * flags.h (warn_disallowed_functions): External definition of new
1519         boolean warning flag.
1520         (warn_if_disallowed_function_p): Declare new function.
1521         * opts.c (warning_disallowed_functions): New static variable.
1522         (warn_disallowed_functions): New boolean warning flag.
1523         (warn_if_disallowed_function_p): New function.
1524         (add_comma_separated_to_vector): Rename
1525         add_instrument_functions_exclude_list to this.
1526         (common_handle_option): Handle new option. Rename calls to
1527         add_instrument_functions_exclude_list into calls to
1528         add_comma_separated_to_vector.
1529         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
1530         based on flag warn_disallowed_functions.
1531
1532 2008-07-09  Christian Bruel  <christian.bruel@st.com>
1533
1534         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
1535          instead of get_attr_length.
1536
1537 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1538
1539         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
1540         keywords.
1541         * genemit.c (gen_insn): Likewise.
1542         * gengtype.c (note_def_vec): Likewise.
1543         * gengtype.h (note_def_vec): Likewise.
1544         * genoutput.c (struct data, output_insn_data, process_template,
1545         gen_expand, gen_split, note_constraint): Likewise.
1546         * genrecog.c (new_decision, add_to_sequence, factor_tests,
1547         make_insn_sequence): Likewise.
1548         * gensupport.c (record_insn_name): Likewise.
1549
1550 2008-07-08  Doug Kwan  <dougkwan@google.com>
1551
1552         * config/arm/arm.opt (mandroid): New option.
1553         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
1554         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
1555         (CC1_SPEC): Same.
1556         (CC1PLUS_SPEC): Same.
1557         (LIB_SPEC): Same.
1558         (STARTFILE_SPEC): Same.
1559         (ENDFILE_SPEC): Same.
1560         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
1561         used.
1562
1563 2008-07-08  Raksit Ashok  <raksit@google.com>
1564
1565         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
1566         (set_storage_via_setmem): Fix expected_align parameter.
1567         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
1568         missing from the list.
1569         * doc/md.texi (movmem): Explicitly state that expected alignment is
1570         to be expressed in bytes.
1571         (setmem): Explicitly state that expected alignment is to be expressed
1572         in bytes.
1573
1574 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
1575
1576         * reload.c (find_reloads_subreg_address): Do not require validity
1577         of address in original mode before reloading address.
1578
1579 2008-07-07  Tianwei Sheng  <tianweis@google.com>
1580
1581         * df-core.c (df_remove_problem): Adjust the access to avoid out of
1582         bounds array access.
1583
1584 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
1585
1586         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
1587
1588 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
1589         
1590         Fix PR tree-optimization/23455
1591         Fix PR tree-optimization/35286
1592         Fix PR tree-optimization/35287
1593         * Makefile.in (OBJS-common): Remove tree-vn.o.
1594         (tree-vn.o): Remove.
1595         * dbgcnt.def: Add treepre_insert debug counter.
1596         * gcc/tree-flow.h (add_to_value): Updated for other changes.
1597         (debug_value_expressions): Ditto.
1598         (print_value_expressions): Ditto.
1599         * tree-pretty-print.c (dump_generic_node): Updated for
1600         VALUE_HANDLE removal.
1601         * tree-ssa-dom.c (record_equality): Ditto.
1602         (cprop_operand): Ditto.
1603         (lookup_avail_expr): Ditto.
1604         * tree-ssa-threadedge.c
1605         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
1606         (simplify_control_stmt_condition): Ditto.
1607         * tree.c (tree_code_size): Ditto.
1608         (tree_node_structure): Ditto.
1609         (iterative_hash_expr): Ditto.
1610         * tree.def: Ditto.
1611         * tree.h (VALUE_HANDLE_ID): Ditto.
1612         (VALUE_HANDLE_EXPR_SET): Ditto.
1613         (struct tree_value_handle): Ditto.
1614         (union tree_node): Ditto.
1615         * treestruct.def: Ditto.
1616         * tree-vn.c: Removed.
1617         * tree-ssa-pre.c: Rewritten entirely.
1618         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
1619         (constant_value_ids): Ditto.
1620         (vn_nary_op_t): Moved to header.
1621         (vn_phi_t): Ditto.
1622         (vn_reference_op_t): Ditto
1623         (vn_reference_t): Ditto.
1624         (next_value_id): New variable.
1625         (VN_INFO): Add an assert.
1626         (vn_constant_eq): New function.
1627         (vn_constant_hash): Ditto.
1628         (get_or_alloc_constant_value_id): Ditto.
1629         (value_id_constant_p): Ditto.
1630         (vn_reference_compute_hash): De-staticify.
1631         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
1632         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
1633         (valueize_refs): Update opcode if it changes from ssa name to constant.
1634         (vn_reference_lookup_1): Add new argument.
1635         (vn_reference_lookup):  Ditto.
1636         (vn_reference_lookup_pieces): New function.
1637         (vn_reference_insert): Add return type. Modify to deal with value ids.
1638         (vn_reference_insert_pieces):  New function.
1639         (vn_nary_op_compute_hash): De-staticify.
1640         (vn_nary_op_eq): Ditto.
1641         (vn_nary_op_lookup_pieces): New function.
1642         (vn_nary_op_lookup): Add new argument.  
1643         (vn_nary_op_insert_pieces): New function.
1644         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
1645         (vn_phi_insert): Ditto.
1646         (visit_unary_op): Update for callee changes.
1647         (visit_binary_op): Ditto.
1648         (visit_reference_op_load): Ditto.
1649         (visit_reference_op_store): Ditto.
1650         (init_scc_vn): Init next_value_id, constant_to_value_id and
1651         constant_value_ids. 
1652         (free_scc_vn): Free them.
1653         (set_hashtable_value_ids): New function.
1654         (run_scc_vn): Use it.
1655         (get_max_value_id): New function.
1656         (get_next_value_id): Ditto.
1657         (expressions_equal_p): Moved from tree-vn.c
1658         (sort_vuses): Ditto.
1659         (sort_vuses_heap): Ditto.
1660         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
1661         above).
1662         * tree.c (iterative_hash_hashval_t): Made non-static
1663         * tree.h (iterative_hash_hashval_t): Declare it.
1664         
1665 2008-07-08  Martin Jambor  <mjambor@suse.cz>
1666
1667         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
1668         instead of ipa_create_node_params.
1669         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
1670         ipa_check_create_edge_args, free them with
1671         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
1672
1673         * ipa-prop.c: Include flags.h and tree-inline.h.
1674         (ipa_node_params_vector): New variable.
1675         (ipa_edge_args_vector): New variable.
1676         (edge_removal_hook_holder): New variable.
1677         (node_removal_hook_holder): New variable.
1678         (edge_duplication_hook_holder): New variable.
1679         (node_duplication_hook_holder): New variable.
1680         (ipa_detect_param_modifications): Check for presence of modified flags.
1681         (ipa_compute_jump_functions): Check for presence of jump functions.
1682         (ipa_free_edge_args_substructures): New function.
1683         (ipa_create_node_params): Removed.
1684         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
1685         (ipa_free_node_params_substructures): New function.
1686         (ipa_free_all_node_params): Changed to deallocate the on-the-side
1687         vector.
1688         (ipa_edge_removal_hook): New function.
1689         (ipa_node_removal_hook): New function.
1690         (duplicate_array): New function.
1691         (ipa_edge_duplication_hook): New function.
1692         (ipa_node_duplication_hook): New function.
1693         (ipa_register_cgraph_hooks): New function.
1694         (ipa_unregister_cgraph_hooks): New function.
1695         (free_all_ipa_structures_after_ipa_cp): New function.
1696         
1697         * ipa-prop.h: Include vec.h.
1698         (ipa_node_params_t): New typedef with vector types for it.
1699         (ipa_edge_args_t):  New typedef with vector types for it.
1700         (IPA_NODE_REF): Changed to access an on-the-side vector.
1701         (IPA_EDGE_REF): Changed to access an on-the-side vector.
1702         (ipa_check_create_node_params): New function.
1703         (ipa_check_create_edge_args): New function.
1704         
1705         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
1706         all users.
1707         
1708 2008-07-07  Tom Tromey  <tromey@redhat.com>
1709
1710         * configure, config.in: Rebuilt.
1711         * configure.ac: Don't check for scandir or alphasort.
1712
1713 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
1714
1715         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
1716         types immediately after creating them.
1717
1718 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
1719
1720         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
1721
1722 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
1723
1724         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
1725         dump_constraint_graph.
1726         (dump_constraint_edge): New function.
1727         (dump_constraint_graph): New function.
1728         (debug_constraint_graph): New function.
1729         (dump_constraint): Removed useless comparison.
1730         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
1731         (dump_constraint_graph): Declare.
1732         (debug_constraint_graph): Declare.
1733         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
1734
1735 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
1736
1737         * config/i386/i386.c (is_va_list_char_pointer): New.
1738         (ix86_va_start): Replace compare with ms_va_list_type_node
1739         by is_va_list_char_pointer.
1740         (ix86_gimplify_va_arg): Likewise.
1741
1742 2008-07-07  Martin Jambor  <mjambor@suse.cz>
1743
1744         * cgraph.c (cgraph_edge_max_uid): New variable.
1745         (struct cgraph_edge_hook_list): New type.
1746         (struct cgraph_node_hook_list): New type.
1747         (struct cgraph_2edge_hook_list): New type.
1748         (struct cgraph_2node_hook_list): New type.
1749         (first_cgraph_edge_removal_hook): New variable.
1750         (first_cgraph_node_removal_hook): New variable.
1751         (first_cgraph_edge_duplicated_hook): New variable.
1752         (first_cgraph_node_duplicated_hook): New variable.
1753         (cgraph_add_edge_removal_hook): New function.
1754         (cgraph_remove_edge_removal_hook): New function.
1755         (cgraph_call_edge_removal_hooks):  New function.
1756         (cgraph_add_node_removal_hook):  New function.
1757         (cgraph_remove_node_removal_hook):  New function.
1758         (cgraph_call_node_removal_hooks):  New function.
1759         (cgraph_add_edge_duplication_hook):  New function.
1760         (cgraph_remove_edge_duplication_hook):  New function.
1761         (cgraph_call_edge_duplication_hooks):  New function.
1762         (cgraph_add_node_duplication_hook):  New function.
1763         (cgraph_remove_node_duplication_hook):  New function.
1764         (cgraph_call_node_duplication_hooks):  New function.
1765         (cgraph_create_edge): Assign to edge uid.
1766         (cgraph_remove_edge): Call edge removal hooks.
1767         (cgraph_node_remove_callees): Call edge removal hooks.
1768         (cgraph_node_remove_callers): Call edge removal hooks.
1769         (cgraph_remove_node): Call node removal hooks.
1770         (cgraph_clone_edge): Call edge duplication hooks.
1771         (cgraph_clone_node): Call node duplication hooks.
1772
1773         * cgraph.h (cgraph_edge): New field uid.
1774         (cgraph_edge_hook): New type.
1775         (cgraph_node_hook): New type.
1776         (cgraph_2edge_hook): New type.
1777         (cgraph_2node_hook): New type.
1778
1779 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
1780
1781         * config.in: Regenerate.
1782
1783 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
1784
1785         * gcc.c (print_sysroot): New.
1786         (option_map, display_help, process_command): Handle the
1787         -print-sysroot option.
1788         (main): Print the sysroot if requested.
1789         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
1790         
1791 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1792
1793         PR target/34780
1794         * unwind-pe.h (size_of_encoded_value): add attribute unused.
1795
1796 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
1797
1798         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
1799         (assign_parm_setup_block_p): Also check mode of entry_parm.
1800
1801 2008-07-07  Richard Guenther  <rguenther@suse.de>
1802
1803         * tree-ssa-structalias.h (set_used_smts): Remove.
1804         * tree-ssa-structalias.c (used_smts): Likewise.
1805         (set_used_smts): Likewise.
1806         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
1807         call to set_used_smts.
1808
1809 2008-07-07  Richard Guenther  <rguenther@suse.de>
1810
1811         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
1812         (new_var_info): Set it to false.
1813         (solution_set_add): Correctly handle pointers outside a var and
1814         inside a field.
1815         (type_safe): Treat variables with is_full_var properly.
1816         (do_sd_constraint): Likewise.
1817         (do_ds_constraint): Likewise.
1818         (process_constraint): Remove zeroing offset for !use_field_sensitive.
1819         (get_constraint_for_ptr_offset): New function.
1820         (get_constraint_for_component_ref): For addresses at least include
1821         the last field of the variable.  Handle is_full_vars properly.
1822         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
1823         (handle_ptr_arith): Remove.
1824         (find_func_aliases): Simplify assignment handling.
1825         (create_function_info_for): For parameter and result varinfos set
1826         is_full_var flag.
1827         (create_variable_info_for): Set is_full_var flag whenever we
1828         just created a single varinfo for a decl.
1829         (init_alias_vars): Initialize use_field_sensitive from
1830         max-fields-for-field-sensitive parameter.
1831
1832 2008-07-07  Richard Guenther  <rguenther@suse.de>
1833
1834         PR tree-optimization/36713
1835         * tree-flow-inline.h (is_call_used): New function.
1836         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
1837         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
1838         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
1839
1840 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
1841
1842         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
1843         
1844 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
1845
1846         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
1847
1848 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
1849             Nathan Sidwell  <nathan@codesourcery.com>
1850
1851         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
1852         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
1853         tmake_file.
1854         * config/m68k/t-linux: New.
1855         * doc/install.texi: Document m68k-*-linux is now multilibbed by
1856         default.
1857
1858 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
1859
1860         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
1861         * config/m68k/m68k-devices.def: Remove multilibs that only differ
1862         by MAC/EMAC.
1863
1864 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1865
1866         * gcc.c (execute): Fix -Wc++-compat warning.
1867
1868 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
1869
1870         PR target/36720
1871         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
1872         constant for little endian.
1873
1874 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
1875
1876         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
1877         mips_base_mips16 instead of TARGET_MIPS16.
1878         (mips_base_mips16): Declare.
1879         * config/mips/mips.c (mips_base_mips16): Make global.
1880         (was_mips16_p): Remove GTY marker.
1881         (was_mips16_pch_p): New variable.
1882         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
1883         (mips_override_options): Force to non-MIPS16 mode initially.
1884         Do not complain about MIPS16 PIC incompatibilities here.
1885         Only allow -mgpopt if -mexplicit-relocs is in force for
1886         non-MIPS16 code.
1887
1888 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
1889
1890         * configure.ac: Check for caddr_t, define to char * if not defined.
1891         * configure: Regenerate.
1892         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
1893         (mmap_gt_pch_use_address): Likewise.
1894         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
1895
1896 2008-07-06  Richard Guenther  <rguenther@suse.de>
1897
1898         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
1899         (new_var_info): Deal with it.
1900         (solution_set_add): Likewise.
1901         (bitpos_of_field): Make signed, fix.
1902         (struct fieldoff): Remove type and decl fields.  Make size field
1903         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
1904         flags.
1905         (fieldoff_compare): Deal with it.
1906         (push_fields_onto_fieldstack): Remove has_union argument, glob
1907         adjacent non-pointer fields together.
1908         (create_function_info_for): Do not set has_union.
1909         (create_variable_info_for): Simplify.
1910
1911 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
1912
1913         * config.gcc (extra_headers): Add cross-stdarg.h for target
1914         x86_64-*-* and i?86-*-*.
1915         * config/i386/cross-stdarg.h: New.
1916         * builtins.c (std_fn_abi_va_list): New.
1917         (std_canonical_va_list_type): New.
1918         (stabilize_va_list): Replace va_list_type_node use by
1919         mtarget.canonical_va_list_type.
1920         (gimplify_va_arg_expr): Likewise.
1921         (expand_builtin_va_copy): Replace va_list_type_node use by
1922         mtarget.fn_abi_va_list.
1923         * tree-sra.c (is_va_list_type): New helper.
1924         (decl_can_be_decomposed_p): Replace
1925         va_list_type_node use by is_va_list_type.
1926         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
1927         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
1928         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
1929         * config/i386/i386-protos.h (ix86_get_valist_type): New.
1930         (ix86_enum_va_list): New.
1931         * config/i386/i386.c (sysv_va_list_type_node): New.
1932         (ms_va_list_type_node): New.
1933         (ix86_function_type_abi): Remove sorry.
1934         (ix86_build_builtin_va_list_abi): New.
1935         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
1936         for 64-bit targets.
1937         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
1938         (ix86_init_builtins_va_builtins_abi): New.
1939         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
1940         for 64-bit targets.
1941         (ix86_handle_abi_attribute): New.
1942         (attribute_spec): Add sysv_abi and ms_abi.
1943         (ix86_fn_abi_va_list): New.
1944         (ix86_canonical_va_list_type): New.
1945         (ix86_enum_va_list): New.
1946         (TARGET_FN_ABI_VA_LIST): New.
1947         (TARGET_CANONICAL_VA_LIST_TYPE): New.
1948         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
1949         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
1950         (TARGET_CANONICAL_VA_LIST_TYPE): New.
1951         (TARGET_ENUM_VA_LIST): New.
1952         * expr.h (std_fn_abi_va_list): New.
1953         (std_canonical_va_list_type): New.
1954         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
1955         (TARGET_CANONICAL_VA_LIST_TYPE): New.
1956         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
1957         TARGET_CANONICAL_VA_LIST_TYPE.
1958         * target.h (struct gcc_target): Add fn_abi_va_list hook
1959         and canonical_va_list_type hook.
1960
1961 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1962
1963         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
1964         integral and pointer types.
1965
1966 2008-07-04  Roger Sayle  <roger@eyesopen.com>
1967
1968         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
1969         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
1970
1971 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
1972
1973         PR target/36684
1974         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
1975
1976 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
1977
1978         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
1979         build_gimple_modify_stmt.
1980         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
1981         gimple operand.  Use fold_build* instead of build*.
1982
1983 2008-07-04  Richard Guenther  <rguenther@suse.de>
1984
1985         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
1986         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
1987         properly to compute the reachability set if we do field-sensitive PTA.
1988         * invoke.texi (max-fields-for-field-sensitive): Document default.
1989         * opts.c (decode_options): Set max-fields-for-field-sensitive to
1990         100 for optimize >= 2.
1991
1992 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1993
1994         * ggc-zone.c (lookup_page_table_if_allocated,
1995         set_page_table_entry, zone_find_object_size, alloc_small_page,
1996         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
1997         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
1998         -Wc++-compat and/or -Wcast-qual warnings.
1999
2000 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
2001
2002         PR target/36634
2003         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
2004         pic_offset_table_rtx to be marked as used here.
2005         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
2006         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
2007         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
2008         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
2009         !TARGET_SECURE_PLT.
2010
2011 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2012
2013         * alloc-pool.c (hash_descriptor, eq_descriptor,
2014         alloc_pool_descriptor): Fix -Wc++-compat warnings.
2015         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
2016         Likewise.
2017         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
2018         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
2019         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
2020         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
2021         Likewise.
2022
2023 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
2024
2025         * tree-flow.h (loop_only_exit_p): Declare.
2026         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
2027         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
2028         the number of iterations if it is constant.  Otherwise, if this is the
2029         only possible exit of the loop, use the conservative estimate on the
2030         number of iterations of the entire loop if available.
2031
2032 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
2033
2034         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
2035         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
2036         Add synchronization functions.
2037         * config/sync.c: New file.
2038         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
2039         (LIBGCC_SYNC_CFLAGS): Likewise.
2040
2041 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
2042
2043         PR target/36710
2044         * config/i386/i386.md (mode): Add TF to "mode" attribute.
2045         (*pushtf_sse): New insn pattern.
2046         (pushtf splitters): New splitters.
2047
2048 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
2049
2050         PR middle-end/35736
2051         * predict.c (build_predict_expr): Use void_type_node for the tree
2052         type, instead of NULL_TREE.
2053
2054 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
2055
2056         * config/i386/i386.c (contains_aligned_value_p): Return true
2057         for TCmode.
2058         (ix86_data_alignment): Align TCmode to 128bits.
2059         (ix86_local_alignment): Likewise.
2060
2061 2008-07-03  Andrew Haley  <aph@redhat.com>
2062
2063         PR bootstrap/33304
2064         * vec.h (VEC_TA): New.
2065         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
2066         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
2067         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
2068         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
2069         (C_COMMON_FIXED_TYPES): Remove first arg.
2070         (C_COMMON_FIXED_MODE_TYPES): Likewise.
2071         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
2072         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
2073         not to use empty macro arguments.
2074
2075 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
2076
2077         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
2078         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
2079         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
2080         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
2081         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
2082         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
2083         config/ia64/crtn.asm, config/m68hc11/larith.asm,
2084         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
2085         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
2086         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
2087         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
2088         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
2089         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
2090         config/rs6000/e500crtres64gpr.asm,
2091         config/rs6000/e500crtres64gprctr.asm,
2092         config/rs6000/e500crtrest32gpr.asm,
2093         config/rs6000/e500crtrest64gpr.asm,
2094         config/rs6000/e500crtresx32gpr.asm,
2095         config/rs6000/e500crtresx64gpr.asm,
2096         config/rs6000/e500crtsav32gpr.asm,
2097         config/rs6000/e500crtsav64gpr.asm,
2098         config/rs6000/e500crtsav64gprctr.asm,
2099         config/rs6000/e500crtsavg32gpr.asm,
2100         config/rs6000/e500crtsavg64gpr.asm,
2101         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
2102         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
2103         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
2104         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
2105         config/sparc/sol2-cn.asm: Remove .file directives.
2106
2107 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
2108
2109         * resource.c (mark_referenced_resources): Look inside
2110         UNSPEC_VOLATILEs and ASM_INPUTs.
2111
2112 2008-07-02  Ian Lance Taylor  <iant@google.com>
2113
2114         * rtlanal.c (add_reg_note): New function.
2115         * rtl.h (add_reg_note): Declare.
2116         * auto-inc-dec.c (attempt_change): Use add_reg_note.
2117         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
2118         * builtins.c (expand_builtin_longjmp): Likewise.
2119         (expand_builtin_nonlocal_goto): Likewise.
2120         * calls.c (emit_call_1, expand_call): Likewise.
2121         * cfgexpand.c (add_reg_br_prob_note): Likewise.
2122         * cfglayout.c (fixup_reorder_chain): Likewise.
2123         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
2124         (commit_one_edge_insertion): Likewise.
2125         * combine.c (move_deaths, distribute_notes): Likewise.
2126         * df-problems.c (df_set_note): Likewise.
2127         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
2128         (set_unique_reg_note): Likewise.
2129         (emit_copy_of_insn_after): Likewise.
2130         * expr.c (expand_expr_real): Likewise.
2131         * gcse.c (add_label_notes): Likewise.
2132         * haifa-sched.c (create_check_block_twin): Likewise.
2133         * jump.c (mark_jump_label_1): Likewise.
2134         * loop-doloop.c (add_test, doloop_modify): Likewise.
2135         * loop-unswitch.c (compare_and_jump_seq): Likewise.
2136         * lower-subreg.c (move_eh_region_note): Likewise.
2137         * optabs.c (emit_libcall_block): Likewise.
2138         * predict.c (predict_insn): Likewise.
2139         (combine_predictions_for_insn): Likewise.
2140         * recog.c (peephole2_optimize): Likewise.
2141         * regmove.c (try_auto_increment): Likewise.
2142         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
2143         * reload.c (find_reloads): Likewise.
2144         * reload1.c (fixup_eh_region_note): Likewise.
2145         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
2146         * reorg.c (delete_prior_computation): Likewise.
2147         (delete_computation, dbr_schedule): Likewise.
2148         * config/pa/pa.c (legitimize_pic_address): Likewise.
2149         * config/sh/sh.c (sh_reorg): Likewise.
2150
2151 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
2152
2153         PR target/36669
2154         * config/libgcc-glibc.ver: Add %exclude.
2155         * config/m32r/libgcc-glibc.ver: Likwise.
2156         * config/s390/libgcc-glibc.ver: Likwise.
2157         * config/sh/libgcc-glibc.ver: Likwise.
2158         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
2159
2160         * config/i386/libgcc-glibc.ver: New.
2161
2162         * config/i386/libgcc-x86_64-glibc.ver: Removed.
2163
2164 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
2165
2166         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
2167         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
2168         i[34567]86-*-linux*, x86_64-*-linux*.  Add
2169         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
2170         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
2171         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
2172         i[34567]86-*-linux*, x86_64-*-linux*.
2173
2174         * libgcc-std.ver: Add empty GCC_4.4.0.
2175
2176         * mkmap-symver.awk: Support multiple versions per symbol.
2177
2178         * config/i386/i386.c (ix86_init_builtins): Always define
2179         __builtin_fabsq and __builtin_copysignq with fallbacks.
2180         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
2181         and __builtin_copysignq if SSE2 isn't available.
2182
2183         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
2184         (LIBGCC2_TF_CEXT): Likwise.
2185         (TF_SIZE): Likwise.
2186
2187         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
2188
2189         * config/i386/sfp-machine.h: Moved to libgcc.
2190
2191         * config/i386/sfp-machine.h: New.
2192         * config/i386/t-linux: Likwise.
2193
2194         * config/i386/t-darwin: Remove softfp_wrap_start and
2195         softfp_wrap_end.
2196         * config/i386/t-darwin64: Likewise.
2197
2198         * config/i386/t-fprules-softfp64: Renamed to ...
2199         * config/i386/t-fprules-softfp: This.
2200
2201         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
2202         and softfp_wrap_end.
2203
2204 2008-07-02  Jason Merrill  <jason@redhat.com>
2205
2206         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
2207
2208         * tree.c (ctor_to_list): New fn.
2209         * tree.h: Declare it.
2210         (CONSTRUCTOR_ELT): New macro.
2211         (CONSTRUCTOR_NELTS): New macro.
2212
2213 2008-07-02  Richard Guenther  <rguenther@suse.de>
2214
2215         * tree-ssa-structalias.c (struct variable_info): Reorder
2216         to fill padding on 64bit hosts.  Make collapsed_to an int.
2217         (get_varinfo_fc): Deal with that.
2218         (new_var_info): Likewise.
2219         (collapse_rest_of_var): Likewise.
2220
2221 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
2222
2223         * doc/install.texi (--enable-java-home): Document.
2224         (--enable-aot-compile-rpm): Likewise.
2225         (--with-arch-directory): Likewise.
2226         (--with-os-directory): Likewise.
2227         (--with-origin-name): Likewise.
2228         (--with-arch-suffix): Likewise.
2229         (--with-jvm-root-dir): Likewise.
2230         (--with-jvm-jar-dir): Likewise.
2231         (--with-python-dir): Likewise.
2232
2233 2008-07-02  Richard Guenther  <rguenther@suse.de>
2234
2235         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
2236         from decls explicitly.  Merge operand checking from tuples.
2237
2238 2008-07-02  Martin Jambor  <mjambor@suse.cz>
2239
2240         * tree-switch-conversion.c: Included timevar.h which I forgot before.
2241         
2242 2008-07-02  Martin Jambor  <mjambor@suse.cz>
2243
2244         * tree-switch-conversion.c: Included timevar.h
2245         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
2246
2247         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
2248
2249 2008-07-02  Martin Jambor  <mjambor@suse.cz>
2250
2251         * tree-switch-conversion.c: Corrected various comments and
2252         whitespace issues
2253         (build_constructors): Fixed minor formatting mistakes.
2254
2255         * invoke.texi (Optimize Options): Corrected the
2256         switch-conversion-max-branch-ratio parameter.
2257
2258 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
2259
2260         * final.c (asm_insn_count): Return zero for an empty asm body.
2261
2262 2008-07-02  Richard Guenther  <rguenther@suse.de>
2263
2264         * bitmap.h (bitmap_set_bit): Return bool.
2265         (bitmap_clear_bit): Likewise.
2266         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
2267         write to the bitmap if it would.
2268         (bitmap_clear_bit): Likewise.
2269         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
2270         bitmap_set_bit return value.
2271         (add_pred_graph_edge): Likewise.
2272         (add_graph_edge): Likewise.
2273         (do_sd_constraint): Likewise.
2274         (do_ds_constraint): Likewise.
2275
2276 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2277
2278         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
2279         Fix -Wc++-compat and/or -Wcast-qual warnings.
2280         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
2281         gen_regparm_prefix): Likewise.
2282         * vmsdbgout.c (write_modbeg, lookup_filename,
2283         vmsdbgout_source_line, vmsdbgout_init): Likewise.
2284
2285 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
2286
2287         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
2288         defaults.h definition apply.
2289
2290 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
2291
2292         * function.c (assign_parm_remove_parallels): New.
2293         (assign_parm_setup_block_p): Do not return true for non-BLKmode
2294         PARALLELs.
2295         (assign_parm_setup_block): Do not handle them.
2296         (assign_parm_setup_reg, assign_parm_setup_stack): Call
2297         assign_parm_remove_parallels.
2298
2299 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
2300
2301         * c-typeck.c (convert_for_assignment): Use
2302         vector_targets_convertible_p.
2303         * c-common.c (vector_targets_convertible_p): New.
2304         * c-common.h (vector_targets_convertible_p): New prototype.
2305         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
2306         opaque_p_V2SI_type_node.
2307
2308 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
2309
2310         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
2311         RFmode constants.
2312
2313 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
2314
2315         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
2316         TFmode constants via two element DImode vector for hosts with
2317         HOST_BITS_PER_WIDE_INT < 64.
2318         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
2319         also for HOST_BITS_PER_WIDE_INT < 64.
2320
2321 2008-07-01  Richard Guenther  <rguenther@suse.de>
2322
2323         PR tree-optimization/36666
2324         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
2325         (get_constraint_exp_from_ssa_var): Split into ...
2326         (get_constraint_exp_for_temp): ... this ...
2327         (get_constraint_for_ssa_var): ... and that.
2328         Return constraint expressions for all touched sub-fields
2329         if the results address is not taken.
2330         (process_constraint): Remove assertion that aggregate
2331         assignments do not happen at this place.
2332         (get_constraint_for_component_ref): Add address_p argument.
2333         Return constraint expressions for all touched sub-fields
2334         if the results address is not taken.
2335         (do_deref): Use get_constraint_exp_for_temp.
2336         (get_constraint_for_1): Rename from ...
2337         (get_constraint_for): ... this.  Add the old function as wrapper.
2338         (do_structure_copy): Use get_constraint_for_1.
2339
2340 2008-07-01  Martin Jambor  <mjambor@suse.cz>
2341
2342         * Makefile.in (tree-switch-conversion.o): Add.
2343         (OBJS-common): Add tree-swtch-conversion.o.
2344         * passes.c (init_optimization_passes): Add pass_convert_switch.
2345         * tree-pass.h: (pass_convert_switch): Add.
2346         * tree-switch-conversion.c: New file.
2347         * gcc.dg/tree-ssa/cswtch.c: New testcase.
2348         * common.opt (ftree-cswtch): New option.
2349         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
2350         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
2351         * opts.c (decode_options): Set flag_tree_switch_conversion when
2352         optimization level is >= 2.
2353         * doc/invoke.texi (Optimize Options): Added description of
2354         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
2355
2356 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2357
2358         * config/darwin-driver.c (darwin_default_min_version): Fix
2359         -Wc++-compat warnings.
2360
2361 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
2362
2363         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
2364         of operand 0.
2365
2366 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
2367
2368         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
2369         
2370 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
2371
2372         PR rtl-optimization/34744
2373         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
2374         (df_scan_free_internal): Free data structures not
2375         allocated in storage pools.
2376         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
2377         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
2378         df_scan_free_mws_vec.
2379         * dse.c (dse_step6): Free offset_map_p and offset_map_n
2380         unconditionally.
2381
2382 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
2383
2384         * config/i386/i386.c (contains_aligned_value_p): Return true
2385         for __float128.
2386         (ix86_function_arg_boundary): Return its natural boundary
2387         for __float128.
2388         (return_in_memory_32): Don't check TDmode.
2389         (ix86_split_to_parts): Support splitting into 4 parts and
2390         support TFmode for 32bit target.
2391         (ix86_split_long_move): Support splitting into 4 parts.
2392         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
2393         for SSE2.
2394         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
2395         (ix86_init_builtins): Here.
2396         (ix86_scalar_mode_supported_p): Always return true for TFmode.
2397         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
2398         'q' and 'w', respectively. 
2399
2400         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
2401         TARGET_64BIT.
2402         (movtf_internal): Likewise.
2403         (<code>tf2): Likewise.
2404         (*absnegtf2_sse): Likewise.
2405         (copysign<mode>3): Likewise.
2406         (copysign<mode>3_const): Likewise.
2407         (copysign<mode>3_var): Likewise.
2408         (define_split UNSPEC_COPYSIGN): Likewise.
2409         * config/i386/sse.md (*nandtf3): Likewise.
2410         (<code>tf3): Likewise.
2411         (*<code>tf3): Likewise.
2412
2413 2008-06-30  Joey Ye  <joey.ye@intel.com>
2414             H.J. Lu  <hongjiu.lu@intel.com>
2415
2416         * global.c (compute_regsets): Set frame_pointer_needed here.
2417         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
2418
2419 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2420
2421         * doc/install.texi (specific): Expand Windows build notes.
2422
2423 2008-06-30  Ira Rosen  <irar@il.ibm.com>
2424
2425         PR tree-optimization/36648
2426         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
2427         number of prolog iterations by step. Fix the comment.
2428
2429 2008-06-30  Richard Guenther  <rguenther@suse.de>
2430
2431         PR middle-end/36671
2432         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
2433         handle calls from ECF_MALLOC functions.
2434         (handle_pure_call): ECF_MALLOC functions do not return
2435         call-used memory.
2436         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
2437
2438 2008-06-29  Andreas Schwab  <schwab@suse.de>
2439
2440         * config/m68k/m68k.c (print_operand): Always print a float
2441         constant in hex.
2442         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
2443         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
2444         Remove macros.
2445
2446         * config/rs6000/x-linux64: Remove never used file.
2447
2448 2008-06-29  Richard Guenther  <rguenther@suse.de>
2449
2450         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
2451         prototype.
2452         (struct alias_info): Move ...
2453         * tree-ssa-alias.c: ... here.
2454         (update_alias_info): Declare.
2455         (compute_may_aliases): Call it.
2456         (update_alias_info): New function.
2457         * tree-ssa-structalias.c (update_alias_info): Move ...
2458         * tree-ssa-alias.c (update_alias_info_1): ... here.
2459         * tree-ssa-structalias.c (process_constraint_1): Remove
2460         unused from_call argument.  Rename to ...
2461         (process_constraint): ... this.  Delete old wrapper.
2462         (make_constraint_to): Adjust callers.
2463         (handle_const_call): Likewise.
2464         (handle_pure_call): Likewise.
2465         (init_base_vars): Likewise.
2466         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
2467         (find_func_aliases): We don't need structure copies for
2468         complex types.
2469         (make_constraint_from_anything): Remove.
2470         (create_variable_info_for): For globals make constraints
2471         from escaped, not from anything.
2472         (compute_points_to_sets): Do not call update_alias_info.
2473         (ipa_pta_execute): Use make_constraint_from.
2474
2475 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2476
2477         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
2478         (bitmap.o-warn, dominance.o-warn): New.
2479         * configure.ac (cxx_compat_warn): Delete.
2480         (loose_warn): Add -Wcast-qual and -Wc++-compat.
2481         * system.h: Remove #pragma diagnostic for -Wcast-qual and
2482         -Wc++-compat.
2483         * configure: Regenerate.
2484
2485         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
2486         warnings.
2487
2488 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2489
2490         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
2491         * df-scan.c (df_notes_rescan): Likewise.
2492         * ggc-page.c (set_page_table_entry): Likewise.
2493         * intl.c (gcc_gettext_width): Likewise.
2494         * varasm.c (get_unnamed_section, get_noswitch_section,
2495         get_section): Likewise.
2496
2497 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
2498
2499         * regrename.c (build_def_use): Don't copy RTX.
2500
2501 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
2502
2503         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
2504         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
2505         punctuation.  Use @ref instead of @xref.
2506         (Function Names): Remove stray @display/@end display.
2507         (C++ Attributes): Use @ref instead of @xref.
2508         (Deprecated Features): Fix punctuation around @xref.
2509         (Backwards Compatibility): Likewise.
2510         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
2511
2512 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
2513
2514         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
2515         constants for E500 double.
2516
2517 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2518
2519         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
2520         element type of const_vector.
2521
2522 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
2523
2524         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
2525         Remove FLAGS_REG clobber from expander pattern.
2526         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
2527         (anddi3, andsi3, andhi3, andqi3): Ditto.
2528         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
2529         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
2530         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
2531         (ashlsi3, ashlhi3, ashlqi3): Ditto.
2532         (ashrsi3, ashrhi3, ashrqi3): Ditto.
2533         (lshrsi3, lshrhi3, lshrqi3): Ditto.
2534         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
2535         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
2536
2537 2008-06-28  Richard Guenther  <rguenther@suse.de>
2538
2539         * tree-ssa-structalias.c (callused_id, var_callused,
2540         callused_tree): Add.
2541         (handle_pure_call): New function.
2542         (find_func_aliases): Call it.
2543         (find_what_p_points_to): Handle the call-used set.
2544         (clobber_what_escaped): Likewise.
2545         (compute_call_used_vars): New function.
2546         (init_base_vars): Init the call-used variable.
2547         (do_sd_constraint): Do not propagate the solution from CALLUSED
2548         but use CALLUSED as a placeholder.
2549         (solve_graph): Likewise.
2550         * tree-flow-inline.h (gimple_call_used_vars): New function.
2551         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
2552         (compute_call_used_vars): Declare.
2553         * tree-ssa-alias.c (set_initial_properties): Call
2554         compute_call_used_vars.
2555         (reset_alias_info): Clear call-used variables.
2556         (add_call_clobber_ops): Assert we are not called for const/pure
2557         functions.  Remove handling of them.
2558         (add_call_read_ops): Handle pure functions by adding the
2559         call-used set of variables as VUSEs.
2560         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
2561         (delete_tree_ssa): Free it.
2562         * tree-dfa.c (remove_referenced_var): Clear the var from the
2563         call-used bitmap.
2564
2565 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
2566
2567         * tree.c (build_varargs_function_type_list): New.
2568         (build_function_type_list_1): New.
2569         (build_function_type_list): Use build_function_type_list_1.
2570         * tree.h (build_varargs_function_type_list): New.
2571
2572 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2573
2574         PR target/34856
2575         * config/spu/spu.c (spu_builtin_splats): Do not generate
2576         invalid CONST_VECTOR expressions.
2577         (spu_expand_vector_init): Likewise.
2578
2579 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
2580
2581         * optabs.c (libfunc_decls): New variable.
2582         (libfunc_decl_hash, libfunc_decl_eq): New functions.
2583         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
2584         for the same function twice.
2585
2586 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
2587
2588         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
2589         ix86_expand_binary_operator directly.
2590         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
2591         for operand 2.
2592         (*ashrti3_1): Ditto.
2593         (*lshrti3_1): Ditto.
2594         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
2595         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
2596         using only one splitter.  Conditionaly execute splitter before or
2597         after peephole2 pass.
2598         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
2599         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
2600         Use only one alternative in asm template.
2601         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
2602         in asm template.
2603         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
2604         "J" operand constraint for operand 2.
2605         (*ashldi3_cconly_rex64): Ditto.
2606         (*ashrdi3_cmp_rex64): Ditto.
2607         (*ashrdi3_cconly_rex64): Ditto.
2608         (*lshrdi3_cmp_rex64): Ditto.
2609         (*lshrdi3_cconly_rex64): Ditto.
2610         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
2611         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
2612         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
2613         gen_x86_shrd_1.
2614
2615 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
2616
2617         * gimplify.c (omp_is_private): Don't return true if decl is not
2618         already private on #pragma omp for or #pragma omp parallel for.
2619
2620         PR debug/36617
2621         * tree-cfg.c (struct move_stmt_d): Replace block field with
2622         orig_block and new_block fields.
2623         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
2624         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
2625         (move_block_to_fn): Replace vars_map and new_label_map arguments
2626         with struct move_stmt_d pointer.
2627         (replace_block_vars_by_duplicates): New function.
2628         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
2629         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
2630         all subblocks of ORIG_BLOCK to the new function.  Call
2631         replace_block_vars_by_duplicates.
2632         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
2633         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
2634         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
2635         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
2636         (expand_omp): Temporarily set input_location to the location of
2637         region's controlling stmt.
2638         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
2639         BIND_EXPR, push ctx->block_vars and gimplification vars into
2640         the BIND_EXPR and its block's BLOCK_VARS instead of directly
2641         into dest function.
2642         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
2643         there are any BLOCK_VARS.
2644         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
2645         OMP_PARALLEL or OMP_TASK stmt.
2646         (lower_omp): Save and restore input_location around the lower_omp_1
2647         call.
2648
2649 2008-06-27  Richard Guenther  <rguenther@suse.de>
2650
2651         PR tree-optimization/36400
2652         PR tree-optimization/36373
2653         PR tree-optimization/36344
2654         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
2655         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
2656         (update_alias_info): Remove call clobbering code.
2657         (make_constraint_to): New helper function.
2658         (make_escape_constraint): Likewise.
2659         (handle_rhs_call): Use it on all pointer containing arguments.
2660         Also mark the static chain escaped.
2661         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
2662         instead of ANYTHING.
2663         (make_constraint_from): New helper split out from ...
2664         (make_constraint_from_anything): ... here.
2665         (find_func_aliases): Add constraints for escape sites.
2666         (intra_create_variable_infos): Make constraints from NONLOCAL
2667         for parameters.
2668         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
2669         as ANYTHING.
2670         (clobber_what_p_points_to): Remove.
2671         (clobber_what_escaped): New function.
2672         (init_base_vars): Init NONLOCAL and ESCAPED.
2673         (do_sd_constraint): Do not propagate the solution from ESCAPED
2674         but use ESCAPED as a placeholder.
2675         (solve_graph): Likewise.
2676         * tree-flow.h (clobber_what_p_points_to): Remove.
2677         (clobber_what_escaped): Declare.
2678         * tree-ssa-alias.c (set_initial_properties): Call it.
2679         Remove code clobbering escaped pointers.
2680
2681 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
2682
2683         * function.c (allocate_struct_function): Only allocate a unique
2684         funcdef_no if the decl is nonzero.
2685
2686 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
2687
2688         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
2689         * config/mips/mips.c (mips_split_const_insns): New function.
2690         * config/mips/mips.md (move_type): New attribute.
2691         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
2692         (dword_mode): New attribute.
2693         (type): Avoid long line.  Map "move_type"s to "type"s,
2694         choosing "multi" for doubleword moves if appropriate.
2695         Swap MTC/MFC comments to match their declaration order.
2696         (extended_mips16): Default to "yes" if "move_type" is "sll0",
2697         "type" is "branch" or "jal" is "direct".
2698         (length): Handle "extended_mips16" first.  Make the default
2699         "0" for "ghost" instructions.  Set the length from "move_type".
2700         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
2701         of "type", with "sll0" for the register alternative.  Remove the
2702         "extended_mips16" attribute.
2703         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
2704         of "type", with "shift_shift" for the register alternative.
2705         Remove the "length" attribute.
2706         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
2707         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
2708         of "type", with "andi" for the register alternative.
2709         (*zero_extendqihi2): Likewise.
2710         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
2711         of "andi" instead of a "type" of "arith".
2712         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
2713         instead of "type".
2714         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
2715         (mov_<store>r, *mov<mode>_ra): Likewise.
2716         (extendsidi2): Use "move_type" instead of "type", with "move"
2717         for the register alternative.
2718         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
2719         of "type", with "signext" for the register alternative.
2720         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
2721         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
2722         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
2723         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
2724         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
2725         (unnamed branch insn): Likewise.
2726         (*movdi_gp32_fp64): Fold into...
2727         (*movdi_32bit): ...here.
2728         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
2729         (*movdf_hardfloat): ...this new pattern.
2730         (*movdf_softfloat): Remove redundant FPR alternatives.
2731         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
2732         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
2733         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
2734         the "move" attribute.
2735         (*movdi_32bit): Use "move_type" instead of "type" and remove the
2736         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
2737         and "store" for COP loads and stores.
2738         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
2739         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
2740         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
2741         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
2742         (*movtf_mips16, *movv2sf): Likewise.
2743         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
2744         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
2745         (mfhc1<mode>): Use "move_type" instead of "move".
2746         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
2747         (loadgp_blockage): Remove the "length" attribute.
2748         (blockage, set_got_version, update_got_version): Likewise.
2749         (call_internal): Remove the "extended_mips16" attribute.
2750         (call_value_internal, call_value_multiple_internal): Likewise.
2751         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
2752         instead of "move".
2753         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
2754         the "length" attribute.
2755
2756 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2757
2758         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
2759         -Wcast-qual warnings.
2760         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
2761         handle_pragma_pop_macro): Likewise.
2762         * collect2.c (resolve_lib_name): Likewise.
2763         * config/arc/arc.c (arc_init): Likewise.
2764         * config/arm/arm.c (neon_builtin_compare,
2765         locate_neon_builtin_icode): Likewise.
2766         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
2767         * config/bfin/bfin.c (bfin_init_machine_status,
2768         bfin_optimize_loop): Likewise.
2769         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
2770         * config/cris/cris.c (cris_init_expanders): Likewise.
2771         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
2772         * config/darwin.c (machopic_indirection_eq,
2773         machopic_indirection_name, machopic_output_indirection): Likewise.
2774         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
2775         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
2776         frv_optimize_membar): Likewise.
2777         * config/i386/cygwin.h (mingw_scan,
2778         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
2779         * config/i386/cygwin1.c (mingw_scan): Likewise.
2780         * config/i386/i386.c (machopic_output_stub): Likewise.
2781         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
2782         i386_pe_unique_section): Likewise.
2783         * config/ia64/ia64.c (ia64_init_machine_status,
2784         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
2785         Likewise.
2786         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
2787         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
2788         * config/m68k/m68k.c (m68k_handle_option,
2789         m68k_sched_md_init_global): Likewise.
2790         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
2791         mcore_unique_section): Likewise.
2792         * config/mips/mips.c (mips_block_move_straight,
2793         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
2794         Likewise.
2795         * config/mmix/mmix.c (mmix_init_machine_status,
2796         mmix_encode_section_info): Likewise.
2797         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
2798         * config/rs6000/rs6000.c (rs6000_init_machine_status,
2799         print_operand_address, output_toc, redefine_groups,
2800         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
2801         * config/s390/s390.c (s390_init_machine_status): Likewise.
2802         * config/score/score.c (score_block_move_straight,
2803         score_block_move_loop_body): Likewise.
2804         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
2805         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
2806         * emit-rtl.c (find_auto_inc): Likewise.
2807         * gcc.c (translate_options, process_command): Likewise.
2808         * reorg.c (dbr_schedule): Likewise.
2809         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
2810         * xcoffout.c (xcoffout_declare_function): Likewise.
2811
2812 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
2813
2814         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
2815         ipa-pta working again.
2816
2817 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
2818
2819         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
2820         genautomata.
2821
2822 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
2823
2824         * config.gcc (powerpc*-*-*): Add new core e500mc.
2825         * config/rs6000/e500mc.md: New file.
2826         * config/rs6000/rs6000.c (processor_costs): Add new costs for
2827         e500mc.
2828         (rs6000_override_options): Add e500mc case to
2829         processor_target_table. Altivec and Spe options not allowed
2830         with e500mc. Add isel instruction to e500mc by
2831         default. Initialize rs6000_cost for e500mc.
2832         (rs6000_issue_rate): Set issue rate for e500mc.
2833         * config/rs6000/rs6000.h (processor_type): Add
2834         PROCESSOR_PPCE500MC.
2835         (ASM_CPU_SPEC): Add e500mc.
2836         Set TARGET_ISEL to rs6000_isel.
2837         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
2838         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
2839         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
2840         Include e500mc.md.
2841         * doc/invoke.texi: Add e500mc to list of cpus.
2842
2843 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2844
2845         PR c/34867
2846         * c-lex.c (lex_charconst): Initialize unsignedp.
2847
2848 2008-06-27  Olivier Hainque  <hainque@adacore.com>
2849
2850         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
2851         documented assumptions.
2852
2853 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
2854
2855         * dwarf2out.c: Remove trailing white spaces.  Break long line
2856         in comments.
2857
2858 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
2859
2860         * libfuncs.h (LTI_synchronize): New libfunc_index.
2861         (synchronize_libfunc): Declare.
2862         * builtins.c (expand_builtin_synchronize): Consider using
2863         synchronize_libfunc before falling back on an asm blockage.
2864         * config/mips/mips.c: Include libfuncs.h
2865         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
2866
2867 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
2868
2869         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
2870         parameter.  Copy stack_reg to r11 where appropriate.
2871         (no_global_regs_above): Add gpr parameter.
2872         (rs6000_stack_info): Only add padding for SPE save area if we
2873         are saving SPE GPRs and CR.
2874         (saveres_routine_syms): New variable.
2875         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
2876         Define.
2877         (rs6000_savres_routine_sym): New function.
2878         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
2879         split out of...
2880         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
2881         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
2882         Tweak FPR out-of-line saving.
2883         (rs6000_make_savres_rtx): New function.
2884         (rs6000_use_multiple_p): New function.
2885         (rs6000_savres_strategy): New function.
2886         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
2887         out-of-line if appropriate.
2888         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
2889         if we are optimizing for size.
2890         (GP_SAVE_INLINE): Define.
2891         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
2892         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
2893         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
2894         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
2895         (*save_fpregs_<mode>): Add use of r11.
2896         (*restore_gpregs_<mode>): New insn.
2897         (*return_and_restore_gpregs_<mode>): New insn.
2898         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
2899         use r11.
2900         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
2901         (*restore_gpregs_spe): New insn.
2902         (*return_and_restore_gpregs_spe): New insn.
2903         * config/rs6000/predicates.md (save_world_operation): Fix check.
2904
2905 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
2906
2907         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
2908         this point, so assert that.
2909
2910 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
2911
2912         * cfganal.c: Include vec.h and vecprim.h.
2913         (compute_idf): Import from...
2914         * tree-into-ssa (compute_idf): ...here.
2915         * basic-block.h (compute_idf): Export.
2916
2917 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
2918
2919         * c-decl.c (merge_decls): Use !current_function_decl to check for
2920         extern declaration of C99 inline function being at file scope.
2921
2922 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
2923
2924         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
2925
2926 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2927
2928         * alias.c (record_alias_subset, init_alias_analysis): Fix
2929         -Wc++-compat and/or -Wcast-qual warnings.
2930         * attribs.c (lookup_attribute_spec): Likewise.
2931         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
2932         copy_bb, connect_traces,
2933         find_rarely_executed_basic_blocks_and_cr): Likewise.
2934         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
2935         note_btr_set, migrate_btr_defs): Likewise.
2936         * builtins.c (result_vector, expand_builtin_memcpy,
2937         expand_builtin_mempcpy_args, expand_builtin_strncpy,
2938         builtin_memset_read_str, expand_builtin_printf,
2939         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
2940         Likewise.
2941         * caller-save.c (mark_set_regs): Likewise.
2942         * calls.c (expand_call, emit_library_call_value_1): Likewise.
2943         * cgraph.c (cgraph_edge): Likewise.
2944         * combine.c (likely_spilled_retval_1): Likewise.
2945         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
2946         htab_counts_entry_del, get_coverage_counts): Likewise.
2947         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
2948         new_cselib_val): Likewise.
2949         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
2950         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
2951         Likewise.
2952         * df-core.c (df_compact_blocks): Likewise.
2953         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
2954         * df-scan.c (df_grow_reg_info, df_ref_create,
2955         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
2956         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
2957         df_record_entry_block_defs, df_record_exit_block_uses,
2958         df_bb_verify): Likewise.
2959         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
2960         DF_REF_EXTRACT_MODE_CONST): New.
2961         * dominance.c (get_immediate_dominator, get_dominated_by,
2962         nearest_common_dominator, root_of_dom_tree,
2963         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
2964         -Wc++-compat and/or -Wcast-qual warnings.
2965         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
2966         record_store, replace_read, check_mem_read_rtx, scan_insn,
2967         dse_step1, dse_record_singleton_alias_set): Likewise.
2968         * dwarf2asm.c (dw2_force_const_mem): Likewise.
2969
2970 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2971
2972         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
2973         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
2974         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
2975         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
2976         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
2977         add_ranges_num, add_ranges_by_labels, file_info_cmp,
2978         file_name_acquire, output_file_names, add_const_value_attribute,
2979         premark_used_types_helper, file_table_eq, file_table_hash,
2980         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
2981         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
2982         -Wcast-qual warnings.
2983         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
2984         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
2985         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
2986         gen_reg_rtx, start_sequence, init_emit): Likewise.
2987         * et-forest.c (et_new_occ, et_new_tree): Likewise.
2988         * except.c (init_eh_for_function, gen_eh_region,
2989         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
2990         arh_to_landing_pad, arh_to_label, add_action_record,
2991         add_call_site, switch_to_exception_section): Likewise.
2992         * expmed.c (synth_mult): Likewise.
2993         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
2994         store_expr): Likewise.
2995         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
2996         Likewise.
2997         * function.c (assign_stack_temp_for_type,
2998         allocate_struct_function, match_asm_constraints_1): Likewise.
2999         * gcov-io.c (gcov_allocate): Likewise.
3000         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
3001         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
3002         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
3003         record_one_set, insert_expr_in_table, insert_set_in_table,
3004         dump_hash_table, compute_hash_table_work, alloc_hash_table,
3005         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
3006         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
3007         -Wcast-qual warnings.
3008
3009 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3010
3011         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
3012         -Wcast-qual warnings.
3013         * gcc.c (process_command): Likewise.
3014         * genattrtab.c (oballoc): Use XOBNEW.
3015         (oballocvec): Define.
3016         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
3017         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
3018         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
3019         -Wc++-compat and/or -Wcast-qual warnings.
3020         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
3021         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
3022         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
3023         gen_presence_absence_set, gen_automaton, gen_regexp_el,
3024         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
3025         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
3026         add_excls, process_presence_absence_names,
3027         process_presence_absence_patterns, add_presence_absence,
3028         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
3029         get_free_state, add_arc, get_free_automata_list_el,
3030         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
3031         transform_3, cache_presence, create_ainsns, create_automata,
3032         create_state_ainsn_table, dfa_insn_code_enlarge,
3033         output_trans_func, output_min_issue_delay_func,
3034         output_dead_lock_func, output_reset_func,
3035         output_get_cpu_unit_code_func, output_dfa_start_func,
3036         expand_automata): Likewise.
3037         * genextract.c (gen_insn): Likewise.
3038         * gengtype-lex.l: Likewise.
3039         * gengtype.c (read_input_list, adjust_field_type,
3040         process_gc_options): Likewise.
3041         * genoutput.c (note_constraint): Likewise.
3042         * genpreds.c (mangle, add_constraint): Likewise.
3043         * genrecog.c (process_define_predicate, new_decision,
3044         add_to_sequence): Likewise.
3045         * gensupport.c (record_insn_name): Likewise.
3046
3047 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3048
3049         * config/i386/driver-i386.c (detect_caches_amd,
3050         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
3051         and/or -Wcast-qual warnings.
3052         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
3053         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
3054         gt_pch_save): Likewise.
3055         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
3056         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
3057         * global.c (compute_regsets): Likewise.
3058         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
3059         finish_graph_dump_file): Likewise.
3060         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
3061         unlink_bb_notes): Likewise.
3062         * integrate.c (get_hard_reg_initial_val): Likewise.
3063         * ipa-prop.c (ipa_push_func_to_list): Likewise.
3064         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
3065         * local-alloc.c (update_equiv_regs): Likewise.
3066         * loop-invariant.c (check_invariant_table_size,
3067         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
3068         Likewise.
3069         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
3070         altered_reg_used, mark_altered): Likewise.
3071         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
3072         insert_var_expansion_initialization,
3073         combine_var_copies_in_loop_exit, apply_opt_in_copies,
3074         release_var_copies): Likewise.
3075         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
3076         analyze_matrix_decl, add_allocation_site, analyze_transpose,
3077         analyze_accesses_for_phi_node, check_var_notmodified_p,
3078         check_allocation_function, find_sites_in_func,
3079         record_all_accesses_in_func, transform_access_sites,
3080         transform_allocation_sites): Likewise.
3081         * omp-low.c (new_omp_region, create_omp_child_function_name,
3082         check_omp_nesting_restrictions, check_combined_parallel,
3083         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
3084         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
3085         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
3086         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
3087         Likewise.
3088         * opts-common.c (prune_options): Likewise.
3089         * opts.c (add_input_filename, print_filtered_help,
3090         get_option_state): Likewise.
3091         * params.c (add_params): Likewise.
3092         * passes.c (set_pass_for_id, next_pass_1,
3093         do_per_function_toporder, pass_fini_dump_file): Likewise.
3094         * postreload.c (reload_cse_simplify_operands): Likewise.
3095         * predict.c (tree_predicted_by_p, tree_predict_edge,
3096         clear_bb_predictions, combine_predictions_for_bb): Likewise.
3097
3098 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3099
3100         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
3101         warnings.
3102         * recog.c (check_asm_operands, validate_change_1): Likewise.
3103         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
3104         subst_asm_stack_regs): Likewise.
3105         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
3106         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
3107         * regmove.c (reg_is_remote_constant_p): Likewise.
3108         * regrename.c (regrename_optimize, scan_rtx_reg,
3109         kill_clobbered_value, kill_set_value, kill_autoinc_value):
3110         Likewise.
3111         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
3112         regstat_compute_calls_crossed): Likewise.
3113         * reload1.c (init_reload, new_insn_chain,
3114         has_nonexceptional_receiver, reload, copy_reloads,
3115         calculate_needs_all_insns, init_elim_table): Likewise.
3116         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
3117         * rtl.c (shallow_copy_rtx_stat): Likewise.
3118         * rtlanal.c (parms_set): Likewise.
3119         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
3120         sbitmap_resize, sbitmap_vector_alloc): Likewise.
3121         * sched-ebb.c (earliest_block_with_similiar_load,
3122         add_deps_for_risky_insns): Likewise.
3123         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
3124         schedule_region): Likewise.
3125         * see.c (eq_descriptor_pre_extension,
3126         hash_descriptor_pre_extension, hash_del_pre_extension,
3127         eq_descriptor_properties, hash_descriptor_properties,
3128         hash_del_properties, see_seek_pre_extension_expr,
3129         see_initialize_data_structures, see_print_register_properties,
3130         see_print_pre_extension_expr, see_delete_merged_def_extension,
3131         see_delete_unmerged_def_extension, see_emit_use_extension,
3132         see_pre_delete_extension, see_map_extension, see_commit_changes,
3133         see_analyze_merged_def_local_prop,
3134         see_analyze_merged_def_local_prop,
3135         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
3136         see_set_prop_merged_def, see_set_prop_unmerged_def,
3137         see_set_prop_unmerged_use, see_print_one_extension,
3138         see_merge_one_use_extension, see_merge_one_def_extension,
3139         see_store_reference_and_extension, see_update_uses_relevancy,
3140         see_update_defs_relevancy): Likewise.
3141         * statistics.c (hash_statistics_hash, hash_statistics_eq,
3142         hash_statistics_free, curr_statistics_hash): Likewise.
3143         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
3144         expand_asm_operands, expand_return, case_bit_test_cmp,
3145         expand_case): Likewise.
3146         * stor-layout.c (start_record_layout): Likewise.
3147         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
3148         gt_pch_save_stringpool): Likewise.
3149         * tree-data-ref.c (hash_stmt_vertex_info,
3150         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
3151         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
3152
3153 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
3154
3155         PR target/36627
3156         * config/i386/i386.md : Change constraints of HImode and QImode
3157         immediate operands from "i" to "n".  Change SImode "ni" constraint to
3158         "i" and SImode "rmi" constraint to "g".  Remove all constraints
3159         from const0_operand and const1_operand predicated operands.
3160         (i): Change QImode and HImode attribute from "i" to "n".
3161         (*subqi_2): Change HImode operands to QImode.
3162         (*subqi_3): Ditto.
3163
3164 2008-06-25  Olivier Hainque  <hainque@adacore.com>
3165
3166         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
3167         sed substitutions.
3168
3169 2008-06-25  Richard Guenther  <rguenther@suse.de>
3170
3171         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
3172         not overflow the result type.
3173
3174 2008-06-25  Richard Guenther  <rguenther@suse.de>
3175
3176         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
3177         (vn_lookup): Likewise.
3178
3179 2008-06-25  Richard Guenther  <rguenther@suse.de>
3180
3181         PR tree-optimization/35518
3182         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
3183         * tree-sra.c (instantiate_element): Use fold_build3 to build
3184         BIT_FIELD_REFs.
3185         (try_instantiate_multiple_fields): Likewise.
3186
3187 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3188
3189         * config/rs6000/rs6000.md: Change all string instruction's clobber to
3190         be early clobbers.
3191
3192 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3193
3194         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
3195         use_backchain_to_restore_sp to true
3196         if the offset of the link register save area would go over the 32k - 1
3197         offset limit of the load
3198         instructions.
3199
3200 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
3201
3202         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
3203         anchor for the type-punning blurb.  Cross-reference "Structures
3204         unions enumerations and bit-fields implementation".  Provide a
3205         cast-through-pointer example.  Make final sentence self-contained.
3206         * doc/implement-c.texi (Structures unions enumerations and
3207         bit-fields implementation): Cross-reference the type-punning blurb
3208         in the -fstrict-aliasing documentation.
3209
3210 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3211
3212         PR middle-end/36594
3213         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
3214         the memory instead of the memory itself for the save area.
3215
3216 2008-06-24  Olivier Hainque  <hainque@adacore.com>
3217             Nicolas Roche  <roche@adacore.com>
3218
3219         * gengtype.c (srcdir_len): size_t instead of int.
3220         (get_file_realbasename): New function.  For F a filename, the real
3221         basename of F, with all the path components stripped.
3222         (get_file_srcdir_relative_path): New function.  For F a filename, the
3223         relative path to F from $(srcdir).
3224         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
3225         get_file_realbasename.  Adjust the head comment.
3226         (get_prefix_langdir_index): New function. For F a filename, return the
3227         lang_dir_names[] relative index of the language directory that is
3228         a prefix in F.
3229         (get_file_langdir): For F a filename, return the name of the language
3230         directory where F is located.
3231         (get_file_gtfilename): New function. The gt- output file name for an
3232         input filename F.
3233         (get_output_file_with_visibility): Replace in-line computations with
3234         uses of get_file_gtfilename and get_prefix_langdir_index.
3235         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
3236
3237 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
3238
3239         PR tree-optimization/36504
3240         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
3241         references without base address.
3242
3243 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
3244
3245         PR middle-end/36584
3246         * calls.c (expand_call): Increase alignment for recursive functions.
3247
3248 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
3249
3250         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
3251         (TARGET_FUNCTION_VALUE): New define.
3252         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
3253         * config/avr/avr.h (FUNCTION_VALUE): Remove.
3254
3255 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
3256
3257         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
3258         (fmod<mode>3): Ditto.
3259         (remainderxf3): Ditto.
3260         (remainder<mode>3): Ditto.
3261
3262 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
3263
3264         PR target/36533
3265         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
3266         REG is a hard register.
3267
3268         PR tree-optimization/36508
3269         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
3270         499, don't check it at all in release compilers.
3271
3272 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
3273
3274         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
3275         together with SSE_TARGET_MATH to disable insn pattern.
3276         (*fop_<MODEF:mode>_2_i387): Ditto.
3277         (*fop_<MODEF:mode>_3_i387): Ditto.
3278
3279 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
3280
3281         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
3282         
3283 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3284
3285         PR middle-end/34906
3286         * gimplify.c (gimplify_asm_expr): Check the return code of
3287         parse_output_constraint call, set function return and is_inout
3288         value if it failed.
3289
3290 2008-06-22  Ian Lance Taylor  <iant@google.com>
3291
3292         * c-lex.c (narrowest_unsigned_type): Change itk to int.
3293         (narrowest_signed_type): Likewise.
3294         * c-typeck.c (c_common_type): Change local variable mclass to enum
3295         mode_class, twice.
3296         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
3297         tcc_comparison, not the tree code itself.
3298         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
3299         (c_expand_expr): Cast modifier to enum expand_modifier.
3300         * c-common.h (C_RID_CODE): Add casts.
3301         (C_SET_RID_CODE): Define.
3302         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
3303         (c_lex_one_token): Add cast to avoid warning.
3304         (c_parser_objc_type_name): Rename local typename to type_name.
3305         (check_no_duplicate_clause): Change code parameter to enum
3306         omp_clause_code.
3307         (c_parser_omp_var_list_parens): Change kind parameter to enum
3308         omp_clause_code.
3309         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
3310         c_parser_omp_list_var_parens.
3311         (c_parser_omp_threadprivate): Likewise.
3312         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
3313         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
3314         * c-format.c (NO_FMT): Define.
3315         (printf_length_specs): Use NO_FMT.
3316         (asm_fprintf_length_specs): Likewise.
3317         (gcc_diag_length_specs): Likewise.
3318         (scanf_length_specs): Likewise.
3319         (strfmon_length_specs): Likewise.
3320         (gcc_gfc_length_specs): Likewise.
3321         (printf_flag_specs): Change 0 to STD_C89.
3322         (asm_fprintf_flag_specs): Likewise.
3323         (gcc_diag_flag_specs): Likewise.
3324         (gcc_cxxdiag_flag_specs): Likewise.
3325         (scanf_flag_specs): Likewise.
3326         (strftime_flag_specs): Likewise.
3327         (strfmon_flag_specs): Likewise.
3328         (print_char_table): Likewise.
3329         (asm_fprintf_char_table): Likewise.
3330         (gcc_diag_char_table): Likewise.
3331         (gcc_tdiag_char_table): Likewise.
3332         (gcc_cdiag_char_table): Likewise.
3333         (gcc_cxxdiag_char_table): Likewise.
3334         (gcc_gfc_char_table): Likewise.
3335         (scan_char_table): Likewise.
3336         (time_char_table): Likewis.
3337         (monetary_char_table): Likewise.
3338         * c-format.h (BADLEN): Likewise.
3339
3340 2008-06-21  Ian Lance Taylor  <iant@google.com>
3341
3342         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
3343         Define END_OF_BASE_TREE_CODES around inclusion.
3344         * tree.c (tree_code_type): New global array.
3345         (tree_code_length, tree_code_name): Likewise.
3346         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
3347         $(lang_tree_files).
3348         (all-tree.def, s-alltree): New targets.
3349         (gencheck.h, s-gencheck): Remove.
3350         (tree.o): Depend upon all-tree.def.
3351         (build/gencheck.o): Remove gencheck.h dependency.
3352         (mostlyclean): Don't remove gencheck.h.
3353         * c-common.h (enum c_tree_code): Remove.
3354         * c-lang.c (tree_code_type): Remove.
3355         (tree_code_length, tree_code_name): Remove.
3356         * gencheck.c (tree_codes): Include all-tree.def, rather than
3357         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
3358         after it is used.
3359         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
3360         than tree.def.
3361         * cp/cp-tree.h (enum cplus_tree_code): Remove.
3362         (operator_name_info): Size to MAX_TREE_CODES.
3363         (assignment_operator_name_info): Likewise.
3364         * cp/cp-lang.c (tree_code_type): Remove.
3365         (tree_code_length, tree_code_name): Remove.
3366         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
3367         (assignment_operator_name_info): Likewise.
3368         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
3369         MAX_TREE_CODES.
3370         * cp/mangle.c (write_expression): Likewise.
3371         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
3372         * fortran/f95-lang.c (tree_code_type): Remove.
3373         (tree_code_length, tree_code_name): Remove.
3374         * java/java-tree.h (enum java_tree_code): Remove.
3375         * java/lang.c (tree_code_type): Remove.
3376         (tree_code_length, tree_code_name): Remove.
3377         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
3378         * objc/objc-act.h (enum objc_tree_code): Remove.
3379         * objc/objc-lang.c (tree_code_type): Remove.
3380         (tree_code_length, tree_code_name): Remove.
3381         * objcp/objcp-lang.c (tree_code_type): Remove.
3382         (tree_code_length, tree_code_name): Remove.
3383         * ada/ada-tree.h (enum gnat_tree_code): Remove.
3384         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
3385         * ada/misc.c (tree_code_type): Remove.
3386         (tree_code_length, tree_code_name): Remove.
3387
3388 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
3389
3390         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
3391         the grand_bitmap_obstack.
3392
3393 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3394
3395         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
3396         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
3397         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
3398         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
3399         move_stmt_r, new_label_mapper): Likewise.
3400         * tree-complex.c (cvc_lookup): Likewise.
3401         * tree-dfa.c (create_function_ann): Likewise.
3402         * tree-dump.c (dump_register): Likewise.
3403         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
3404         find_phi_replacement_condition): Likewise.
3405         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
3406         tree_function_versioning): Likewise.
3407         * tree-into-ssa.c (cmp_dfsnum): Likewise.
3408         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
3409         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
3410         get_nonlocal_debug_decl, convert_nonlocal_reference,
3411         convert_nonlocal_omp_clauses, get_local_debug_decl,
3412         convert_local_reference, convert_local_omp_clauses,
3413         convert_nl_goto_reference, convert_nl_goto_receiver,
3414         convert_tramp_reference, convert_call_expr): Likewise.
3415         * tree-outof-ssa.c (contains_tree_r): Likewise.
3416         * tree-parloops.c (reduction_phi, initialize_reductions,
3417         eliminate_local_variables_1, add_field_for_reduction,
3418         add_field_for_name, create_phi_for_local_result,
3419         create_call_for_reduction_1, create_loads_for_reductions,
3420         create_stores_for_reduction, create_loads_and_stores_for_name):
3421         Likewise.
3422         * tree-phinodes.c (allocate_phi_node): Likewise.
3423         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
3424         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
3425         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
3426         * tree-ssa-coalesce.c (compare_pairs): Likewise.
3427         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
3428         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
3429         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
3430         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
3431         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
3432         vn_nary_op_insert): Likewise.
3433         * tree-ssa.c (redirect_edge_var_map_add,
3434         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
3435         * tree-vectorizer.c (vectorize_loops): Likewise.
3436         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
3437         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
3438         tree_cons_stat, build1_stat, build_variant_type_copy,
3439         decl_init_priority_lookup, decl_fini_priority_lookup,
3440         decl_priority_info, decl_restrict_base_lookup,
3441         decl_restrict_base_insert, decl_debug_expr_lookup,
3442         decl_debug_expr_insert, decl_value_expr_lookup,
3443         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
3444         type_hash_add, get_file_function_name, tree_check_failed,
3445         tree_not_check_failed, tree_range_check_failed,
3446         omp_clause_range_check_failed, build_omp_clause,
3447         build_vl_exp_stat): Likewise.
3448         * value-prof.c (gimple_histogram_value,
3449         gimple_duplicate_stmt_histograms): Likewise.
3450         * var-tracking.c (attrs_list_insert, attrs_list_copy,
3451         unshare_variable, variable_union_info_cmp_pos, variable_union,
3452         dataflow_set_different_1, dataflow_set_different_2,
3453         vt_find_locations, variable_was_changed, set_variable_part,
3454         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
3455         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
3456         section_entry_hash, object_block_entry_eq,
3457         object_block_entry_hash, create_block_symbol,
3458         initialize_cold_section_name, default_function_rodata_section,
3459         strip_reg_name, set_user_assembler_name, const_desc_eq,
3460         build_constant_desc, output_constant_def, lookup_constant_def,
3461         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
3462         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
3463         default_internal_label): Likewise.
3464         * varray.c (varray_init, varray_grow): Likewise.
3465         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
3466
3467 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
3468
3469         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
3470         operators for "test" insn.  Macroize insn using SWI mode macro.
3471         (*jcc_fused_2): Ditto.
3472         (*jcc_fused_3): Macroize insn using SWI mode macro.
3473         (*jcc_fused_4): Ditto.
3474
3475 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
3476
3477         * tree-ssa-pre.c: Fix typo in comment.
3478         (init_antic, fini_antic): Add explicit funtions for
3479         initializing and deinitializing ANTIC and AVAIL sets.
3480         (create_expression_by_pieces): Fix typo in comment.
3481         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
3482         (execute_pre): Eventually dump details about ANTIC_IN.
3483
3484 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3485
3486         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
3487         * gcc.c (translate_options, init_spec, store_arg, read_specs,
3488         add_to_obstack, file_at_path, find_a_file, execute,
3489         add_preprocessor_option, add_assembler_option, add_linker_option,
3490         process_command, insert_wrapper, do_option_spec, do_self_spec,
3491         spec_path, do_spec_1, is_directory, main, used_arg,
3492         getenv_spec_function): Likewise.
3493         * tlink.c (symbol_hash_lookup, file_hash_lookup,
3494         demangled_hash_lookup, symbol_push, file_push, frob_extension):
3495         Likewise.
3496
3497 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
3498
3499         * doc/rtl.texi: Updated subreg section.
3500
3501 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
3502
3503         PR c++/36523
3504         * cgraphunit.c (cgraph_process_new_functions): Don't clear
3505         node->needed and node->reachable.
3506         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
3507         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
3508         (expand_task_call): Don't call expand_task_copyfn.
3509         (expand_task_copyfn): Renamed to...
3510         (finalize_task_copyfn): ... this.
3511
3512 2008-06-19  Jan Hubicka  <jh@suse.cz>
3513
3514         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
3515         clobbering framepointer.
3516
3517 2008-06-19  Jan Hubicka  <jh@suse.cz>
3518
3519         * tree-optimize.c (execute_early_local_optimizations): Set
3520         cgraph_state only at first invocation.
3521
3522 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3523
3524         * system.h (-Wc++-compat): Activate as a warning, no an error.
3525
3526 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
3527
3528         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
3529         instead of "#" in insn asm template.
3530         (*jcc_fused_2): Ditto.
3531
3532 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
3533
3534         * config/i386/i386.h (ix86_tune_indices)
3535         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
3536         (TARGET_FUSE_CMP_AND_BRANCH): New define.
3537         * config/i386/i386.md (*jcc_fused_1): New insn pattern
3538         (*jcc_fused_2): Ditto.
3539         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
3540         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
3541         (print operand): Handle 'E' and 'e' code.
3542
3543 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
3544
3545         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
3546         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3547         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3548
3549 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
3550
3551         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
3552         node->decl.
3553         (cgraph_expand_function): Use local copy of decl.
3554         (cgraph_expand_all_functions): Remove redundant initialization of
3555         order_pos.
3556         (cgraph_optimize): Reword internal_error message.
3557
3558 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
3559
3560         * arm-protos.h (arm_return_in_memory): Remove public
3561         arm_return_in_memory() prototype.
3562         * arm.c (arm_return_in_memory): Add static prototype, add target
3563         hook macro, change definition and comments.
3564         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
3565
3566 2008-06-19  Ben Elliston  <bje@au.ibm.com>
3567
3568         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
3569         real.c: Remove references to IEEE 754R.
3570         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
3571         * doc/libgcc.texi (Decimal float library routines): Likewise.
3572
3573 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3574
3575         * targhooks.h (struct gcc_target): New member unwind_word_mode.
3576         (default_unwind_word_mode): Add prototype.
3577         * targhooks.c (default_unwind_word_mode): New function.
3578         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
3579         instead of word_mode.
3580         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
3581         (TARGET_INITIALIZER): Use it.
3582
3583         * c-common.c (handle_mode_attribute): Support "unwind_word"
3584         mode attribute.
3585         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
3586
3587         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
3588         word_mode to access SjLj_Function_Context member "data".
3589         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
3590         conversion from targetm.eh_return_filter_mode () to
3591         targetm.unwind_word_mode () if they differ.
3592
3593         * builtin-types.def (BT_UNWINDWORD): New primitive type.
3594         (BT_FN_UNWINDWORD_PTR): New function type.
3595         (BT_FN_WORD_PTR): Remove.
3596         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
3597         * except.c (expand_builtin_extend_pointer): Convert pointer to
3598         targetm.unwind_word_mode () instead of word_mode.
3599
3600         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
3601         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
3602         (spu_unwind_word_mode): New function.
3603         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
3604         (TARGET_UNWIND_WORD_MODE): Define.
3605         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
3606
3607 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3608
3609         * config/spu/spu.c (reg_align): Remove.
3610         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
3611         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
3612         (spu_split_store): Likewise.
3613
3614 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
3615
3616         * gcc/tree-vn.c: Fix typo in comment.
3617
3618 2008-06-18  Jan Hubicka  <jh@suse.cz>
3619
3620         * cgraphunit.c (cgraph_optimize): Output debug info when doing
3621         toplevel reorder too.
3622
3623 2008-06-18  Jan Hubicka  <jh@suse.cz>
3624
3625         * c-opts.c (c_common_post_options): PCH is not compatible with
3626         no-unit-at-a-time.
3627         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
3628         -fno-toplevel-reorder by default now.
3629
3630 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3631
3632         PR documentation/30739
3633         * doc/install.texi (Prerequisites): Document dependency on awk.
3634
3635 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
3636             Ian Lance Taylor  <iant@google.com>
3637
3638         PR rtl-optimization/35604
3639         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
3640         only want to change jump destinations, not eventual label comparisons.
3641
3642 2008-06-16  Jan Hubicka  <jh@suse.cz>
3643
3644         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
3645         syntax errors.
3646         (cgraph_analyze_function): Likewise.
3647
3648 2008-06-16  Jan Hubicka  <jh@suse.cz>
3649
3650         * cgraph.h (cgraph_mark_if_needed): New function.
3651         * cgraphunit.c (cgraph_mark_if_needed): New function.
3652         * c-decl.c (duplicate_decl): Use it.
3653
3654 2008-06-16  Jan Hubicka  <jh@suse.cz>
3655
3656         * cgraph.c (cgraph_add_new_function): When in expansion state, do
3657         lowering.
3658
3659 2008-06-16  Jan Hubicka  <jh@suse.cz>
3660
3661         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
3662
3663 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
3664             Kazu Hirata  <kazu@codesourcery.com>
3665             Maxim Kuvyrkov  <maxim@codesourcery.com
3666
3667         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
3668         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
3669         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
3670         EXTRA_SPEC_FUNCTIONS.
3671         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
3672         (DRIVER_SELF_SPECS): Adjust.
3673         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
3674         * config/mips/st.h, config/mips/t-st: New.
3675         * config/mips/driver-native.c, config/mips/x-native: New.
3676         * doc/invoke.texi (MIPS): Document 'native' value for -march and
3677         -mtune options.
3678
3679 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
3680
3681         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
3682         from it.
3683         (ISA_HAS_FP_CONDMOVE): New macro.
3684         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
3685         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
3686         (ISA_HAS_NMADD3_NMSUB3): New macro.
3687         * config/mips/mips.c (mips_rtx_costs): Update.
3688         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
3689         compiling for ST Loongson 2E/2F.
3690         (madd<mode>): Rename to madd4<mode>.  Update.
3691         (madd3<mode>): New pattern.
3692         (msub<mode>): Rename to msub4<mode>.  Update.
3693         (msub3<mode>): New pattern.
3694         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
3695         (nmadd3<mode>): New pattern.
3696         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
3697         (nmadd3<mode>_fastmath): New pattern.
3698         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
3699         (nmsub3<mode>): New pattern.
3700         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
3701         (nmsub3<mode>_fastmath): New pattern.
3702         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
3703
3704 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
3705
3706         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
3707         (DF_REF_INSN_INFO): New.
3708         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
3709         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
3710         with a NULL DF_REF_INSN_INFO.
3711         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
3712         DF_INSN_SET.
3713         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
3714         DF_INSN_INFO_EQ_USES): New.
3715         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
3716         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
3717         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
3718         * df-core.c: Update comment for above changes.
3719         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
3720         DF_INSN_UID_* macros.
3721         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
3722         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
3723         insn rtx.  Update all callers.
3724         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
3725         df_ref_create_structure, df_insn_refs_collect): Likewise.
3726         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
3727         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
3728         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
3729         macros to access the insn refs.
3730         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
3731         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
3732         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
3733         for accessing the refs.
3734         (try_fwprop_subst): Likewise.
3735         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
3736         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
3737         for accessing the refs.
3738         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
3739         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
3740         to look at the insn refs.
3741         (record_uses): Likewise.
3742         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
3743         function anymore.
3744         (mark_artificial_uses): Don't mark_insn for artificial refs.
3745         (mark_reg_rependencies): Likewise.
3746
3747         * doc/rtl.texi: Remove documentation of ADDRESSOF.
3748
3749 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3750
3751         * configure: Regenerate.
3752
3753 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
3754
3755         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
3756         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
3757         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
3758
3759 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
3760
3761         * config/avr/avr.c (avr_mcu_t): Add attiny167.
3762         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
3763         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
3764
3765 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
3766
3767         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
3768         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
3769         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
3770
3771 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
3772
3773         * tree-ssa-sccvn.c: Fix format of comments.
3774
3775 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
3776
3777         * cgraph.c: Remove unneeded forward declarations of eq_node()
3778         and hash_node().
3779
3780 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
3781
3782         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
3783         REG_RETVAL notes.
3784         (see_update_relevancy): Likewise.
3785         * fwprop.c (try_fwprop_subst): Likewise.
3786         * rtlanal.c (noop_move_p): Likewise.
3787         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
3788         notes to non-existing libcall blocks.
3789         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
3790         Remove orig_set.
3791         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
3792         (dead_libcall_p): Remove.
3793         (delete_trivially_dead_insns): Don't use it.
3794         * web.c (union_defs): Remove comment about keeping nops.
3795         * gcse.c (hash_scan_insn): Don't take libcall pointers.
3796         (compute_hash_table_work): Don't track libcall notes.
3797         (do_local_cprop): Don't take libcall pointers.  Don't update
3798         libcall notes.
3799         (adjust_libcall_notes): Deleted.
3800         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
3801         ever have existed in the first place).
3802         (replace_store_insn): Don't try to remove libcall notes.
3803         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
3804         (resolve_reg_notes): Don't call them.
3805         (resolve_simple_move): Likewise.
3806         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
3807         Don't remove REG_RETVAL notes.
3808         * emit-rtl.c (try_split): Don't update libcall notes.
3809         (emit_copy_of_insn_after): Dito.
3810         * cselib.c (cselib_current_insn_in_libcall): Remove.
3811         (cselib_process_insn): Don't set/clear it.
3812         (new_elt_loc_list): Don't record it.
3813         (cselib_init): Don't initialize it.
3814         * cselib.c (struct elt_loc_list): Remove in_libcall field.
3815         * loop-invariant.c (find_invariant_insn): Don't look for libcall
3816         notes.
3817         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
3818         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
3819         (init_deps): Don't initialize it.
3820         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
3821         * combine.c (delete_noop_moves): Don't update libcall notes.
3822         (can_combine_p): Remove now pointless #if 0 block.
3823         (try_combine): Remove another obsolete #if 0 block.
3824         (distribute_notes): Don't distribute libcall notes.
3825         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
3826         * dce.c (libcall_dead_p): Remove.
3827         (delete_unmarked_insns): Don't handle libcall blocks.
3828         (preserve_libcall_for_dce): Remove.
3829         (prescan_insns_for_dce): Don't special-case libcall block insns.
3830         * reload1 (reload): Don't handle libcall notes. 
3831         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
3832         documentation.
3833
3834 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
3835
3836         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
3837         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
3838         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3839
3840 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
3841
3842         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
3843         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
3844         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
3845
3846 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3847
3848         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
3849
3850 2008-06-16  Ira Rosen  <irar@il.ibm.com>
3851
3852         PR tree-optimization/36493
3853         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
3854         the arguments list. Use VECTYPE to create vector pointer.
3855         (vectorizable_store): Fail if accesses through a pointer to vectype
3856         do not alias the original memory reference operands.
3857         Call vect_create_data_ref_ptr without the removed argument.
3858         (vectorizable_load): Likewise.
3859         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
3860         removed argument.
3861
3862 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
3863
3864         PR target/36336
3865         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
3866         reg_equiv_constant.
3867
3868 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
3869
3870         * config/mips/loongson2ef.md: New file.
3871         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
3872         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
3873         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
3874         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
3875         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
3876         and loongson_2f.
3877         (loongson2ef.md): New include.
3878         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
3879         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
3880         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
3881         (loongson_gt_<mode>, loongson_extract_halfword)
3882         (loongson_insert_halfword_0, loongson_insert_halfword_2)
3883         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
3884         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
3885         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
3886         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
3887         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
3888         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
3889         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
3890         (vec_interleave_low<mode>): Define type attribute.
3891         * config/mips/mips.c (mips_ls2): New static variable.
3892         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
3893         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
3894         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
3895         Implement target scheduling hooks.
3896         (mips_multipass_dfa_lookahead): Update to handle tuning for
3897         Loongson 2E/2F.
3898         (mips_sched_init): Initialize data for Loongson scheduling.
3899         (mips_ls2_variable_issue): New static function.
3900         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
3901         Add sanity check.
3902         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
3903         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
3904         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
3905         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
3906         Handle ST Loongson 2E/2F cores.
3907         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
3908
3909 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3910
3911         * omp-low.c (extract_omp_for_data): Fix comment typo.
3912         * c.opt: Fix typo.
3913
3914 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3915
3916         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
3917         FIXME note about gcc/config.guess.
3918         * doc/options.texi (Option file format): Remove non-ASCII bytes.
3919         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
3920         * doc/cppopts.texi: Likewise.
3921         * doc/extend.texi: Likewise.
3922         * doc/gcc.texi: Likewise.
3923         * doc/gccint.texi: Likewise.
3924         * doc/gcov.texi: Likewise.
3925         * doc/gty.texi: Likewise.
3926         * doc/hostconfig.texi: Likewise.
3927         * doc/install.texi: Likewise.
3928         * doc/invoke.texi: Likewise.
3929         * doc/loop.texi: Likewise.
3930         * doc/makefile.texi: Likewise.
3931         * doc/md.texi: Likewise.
3932         * doc/passes.texi: Likewise.
3933         * doc/tm.texi: Likewise.
3934         * doc/tree-ssa.texi: Likewise.
3935         * doc/trouble.texi: Likewise.
3936
3937 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
3938             Nathan Sidwell  <nathan@codesourcery.com>
3939             Maxim Kuvyrkov  <maxim@codesourcery.com>
3940             Richard Sandiford  <rdsandiford@googlemail.com>
3941         
3942         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
3943         * config/mips/mips-protos.h (mips_expand_vector_init): New.
3944         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
3945         builtins.
3946         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
3947         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
3948         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
3949         V8QImode cases.
3950         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
3951         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
3952         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
3953         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
3954         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
3955         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
3956         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
3957         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
3958         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
3959         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
3960         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
3961         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
3962         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
3963         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
3964         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
3965         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
3966         (mips_builtins): Add Loongson builtins.
3967         (mips_loongson_2ef_bdesc): New.
3968         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
3969         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
3970         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
3971         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
3972         New.
3973         (mips_expand_vector_init): New.
3974         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
3975         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
3976         if appropriate.
3977         * config/mips/mips.md: Add unspec numbers for Loongson
3978         builtins.  Include loongson.md.
3979         (MOVE64): Include Loongson vector modes.
3980         (SPLITF): Include Loongson vector modes.
3981         (HALFMODE): Handle Loongson vector modes.
3982         * config/mips/loongson.md: New.
3983         * config/mips/loongson.h: New.
3984         * config.gcc: Add loongson.h header for mips*-*-* targets.
3985         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
3986
3987 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
3988
3989         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
3990         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
3991         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
3992         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
3993         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
3994         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
3995         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
3996         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
3997         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
3998         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
3999         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
4000         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
4001         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
4002         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
4003         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
4004         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
4005         Remove use_fixproto=yes.
4006         (ia64*-*-hpux*): Remove comment about using fixproto.
4007         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
4008
4009 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4010
4011         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
4012         library rebuilds.
4013         * configure: Regenerate.
4014
4015 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
4016
4017         PR middle-end/36520
4018         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
4019         before evaluating it.
4020
4021 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
4022
4023         PR c/36507
4024         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
4025         nested inline functions.
4026         (start_decl, start_function): Don't invert DECL_EXTERNAL
4027         for nested inline functions.
4028
4029 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
4030
4031         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
4032         splits that must be made for correctness.
4033
4034 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
4035
4036         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
4037         (AVAIL_NON_MIPS16): Likewise.
4038         (mips_builtin_description): Replace target_flags with a predicate.
4039         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
4040         (dspr2_32): New availability predicates.
4041         (MIPS_BUILTIN): New macro.
4042         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
4043         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
4044         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
4045         Replace the TARGET_FLAGS parameters with AVAIL parameters.
4046         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
4047         (mips_dsp_32only_bdesc): Merge into...
4048         (mips_builtins): ...this new array.
4049         (mips_bdesc_map, mips_bdesc_arrays): Delete.
4050         (mips_init_builtins): Update after above changes.
4051         (mips_expand_builtin_1): Merge into...
4052         (mips_expand_builtin): ...here and update after above changes.
4053
4054 2008-06-12  Paul Brook  <paul@codesourcery.com>
4055
4056         * longlong.h (__arm__): Define count_leading_zeros.
4057         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
4058         (clzsi2, clzdi2): New functions.
4059         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
4060         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
4061         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
4062         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
4063         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
4064         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
4065         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
4066         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
4067         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
4068         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
4069
4070 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
4071
4072         * config/m68k/m68k.c (m68k_tune_flags): New.
4073         (override_options): Compute m68k_tune_flags.
4074         (MULL_COST, MULW_COST): Update for various variants of CFV2.
4075         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
4076
4077 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
4078
4079         PR middle-end/36506
4080         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
4081
4082 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
4083
4084         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
4085         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
4086
4087 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
4088
4089         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
4090         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
4091
4092 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
4093
4094         PR middle-end/36506
4095         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
4096         reductions.
4097
4098 2008-06-12  Richard Guenther  <rguenther@suse.de>
4099
4100         PR tree-optimization/36345
4101         * tree-flow.h (struct ptr_info_def): Align escape_mask,
4102         add memory_tag_needed flag.
4103         (may_alias_p): Declare.
4104         * tree-ssa-alias.c (may_alias_p): Export.
4105         (set_initial_properties): Use memory_tag_needed flag.
4106         (update_reference_counts): Likewise.
4107         (reset_alias_info): Reset memory_tag_needed flag.
4108         (create_name_tags): Check memory_tag_needed flag.
4109         (dump_points_to_info_for): Dump it.
4110         * tree-ssa-structalias.c (struct variable_info): Remove
4111         directly_dereferenced flag.
4112         (new_var_info): Do not initialize it.
4113         (process_constraint_1): Do not set it.
4114         (update_alias_info): Set is_dereferenced flag.
4115         (set_uids_in_ptset): Use may_alias_p.
4116         (set_used_smts): Check memory_tag_needed flag.
4117         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
4118         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
4119         memory_tag_needed flag.
4120         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
4121         from broken design.
4122
4123 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
4124
4125         * config/i386/i386.c (ix86_compute_frame_layout): Disable
4126         red zone for w64 abi.
4127         (ix86_expand_prologue): Likewise.
4128         (ix86_force_to_memory): Likewise.
4129         (ix86_free_from_memory): Likewise.
4130
4131 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
4132
4133         PR target/36425
4134         * config/rs6000/rs6000.c (rs6000_override_options): Set
4135         rs6000_isel conditionally to the absence of comand line override.
4136         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
4137         Remove duplicate rs6000_isel setting.
4138         * config/rs6000/eabispe.h: Ditto.
4139
4140 2008-06-11  Richard Guenther  <rguenther@suse.de>
4141
4142         * alias.c (get_alias_set): Use the element alias-set for arrays.
4143         (record_component_aliases): For arrays and vectors do nothing.
4144         * c-common.c (strict_aliasing_warning): Handle the cases
4145         of alias set zero explicitly.
4146         * Makefile.in (dfp.o-warn): Add -Wno-error.
4147
4148 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
4149
4150         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
4151         tune_32 tune_64.
4152         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
4153         tune_32 tune_64 to supported_defaults.  Allow values not
4154         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
4155         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
4156         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
4157         with_cpu_64 to generic for 64-bit-supporting configurations, not
4158         with_cpu.  Remove FIXMEs.
4159         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
4160         --with-arch-64, --with-tune-32, --with-tune-64): Document.
4161         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
4162         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
4163         arch_32 and arch_64.
4164
4165 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
4166             Olivier Hainque  <hainque@adacore.com>
4167
4168         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
4169         Use DECL_SIZE_UNIT to retrieve the size of the field.
4170
4171 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
4172
4173         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
4174         with function calls after declarations.  Lay out
4175         neon_float_type_node before further use.
4176
4177 2008-06-11  Richard Guenther  <rguenther@suse.de>
4178
4179         * tree-flow.h (may_point_to_global_var): Declare.
4180         * tree-ssa-alias.c (may_point_to_global_var): New function.
4181         * tree-ssa-sink.c (is_hidden_global_store): Use it.
4182
4183 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
4184
4185         * configure.ac: Teach that fido supports .debug_line.
4186         * configure: Regenerate.
4187
4188 2008-06-10  Tom Tromey  <tromey@redhat.com>
4189
4190         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
4191         debug hook.
4192
4193 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
4194
4195         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
4196         (encode_decimal64, decode_decimal64, encode_decimal128,
4197         decode_decimal128): Reverse order of 32-bit parts of value if host
4198         and target endianness differ.
4199
4200 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
4201
4202         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
4203         Avoid division by 0.
4204         (tree_mod_pow2_value_transform): Likewise.
4205         (tree_ic_transform): Likewise.
4206         (tree_stringops_transform): Likewise.
4207         (tree_mod_subtract_transform): Likewise.
4208         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
4209         (copy_edges_for_bb): Likewise.
4210         (initialize_cfun): Likewise.
4211
4212 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
4213
4214         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
4215         nonmemory_operand. Add "N" operand constraint.
4216         (*btsi): Ditto.
4217         (*jcc_btdi_mask_rex64): New instruction and split pattern.
4218         (*jcc_btsi_mask): Ditto.
4219         (*jcc_btsi_mask_1): Ditto.
4220
4221 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
4222
4223         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
4224         TYPE_CANONICAL for copied element type.
4225
4226 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
4227
4228         PR target/36473
4229         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
4230         Add m_CORE2 and m_GENERIC.
4231         * config/i386/predicates.md (bt_comparison_operator): New predicate.
4232         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
4233         (*btsi): Ditto.
4234         (*jcc_btdi_rex64): New instruction and split pattern.
4235         (*jcc_btsi): Ditto.
4236         (*jcc_btsi_1): Ditto.
4237         (*btsq): Fix Intel asm dialect operand order.
4238         (*btrq): Ditto.
4239         (*btcq): Ditto.
4240
4241 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
4242
4243         PR middle-end/36447
4244         * simplify-rtx.c (simplify_subreg): Add check for shift count 
4245         greater than size.
4246
4247 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
4248
4249         * doc/md.texi: Synchronize with later constraints.md change.
4250         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
4251         with a C implementation.
4252         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
4253         MFLO handling.
4254         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
4255         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
4256         when moving to and from MD_REGNUM.
4257         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
4258         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
4259         Handle byte and halfword moves.
4260         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
4261         separately.
4262         * config/mips/constraints.md (h): Turn into NO_REGS.
4263         (l, x): Update documentation.
4264         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
4265         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
4266         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
4267         (HILO): New mode iterator.
4268         (MOVE128): Add TI.
4269         (any_div): New code iterator.
4270         (u): Extend code attribute to div and udiv.
4271         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
4272         d_operand in the splitters.  Remove redundant CONST_INT checks.
4273         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
4274         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
4275         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
4276         accordingly, using normal moves instead of unspecs to move LO into
4277         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
4278         (<u>mulsidi3): Handle expansion in C code.
4279         (<u>mulsidi3_32bit_internal): Rename to...
4280         (<u>mulsidi3_32bit): ...this.
4281         (<u>mulsidi3_32bit_r4000): Fix insn separator.
4282         (*<u>mulsidi3_64bit): Rename to...
4283         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
4284         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
4285         to set LO and HI to the multiplication result.  Use a normal move
4286         for MFLO and an unspec for MFHI.
4287         (*<u>mulsidi3_64bit_parts): Replace with...
4288         (<u>mulsidi3_64bit_hilo): ...this new instruction.
4289         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
4290         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
4291         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
4292         instead of HI.  Split the instruction into a separate multiplication
4293         and MFHI if !TARGET_FIX_R4000.
4294         (<su>muldi3_highpart): Likewise.
4295         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
4296         and the "=h" clobber.
4297         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
4298         (<u>mulditi3): New expander.
4299         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
4300         (madsi): Remove "=h" clobber.
4301         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
4302         Force the modulus result to be a GPR and split the instruction into
4303         a division followed by an MFHI after reload.
4304         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
4305         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
4306         the MIPS16 HIGH define_split.
4307         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
4308         of acc<->gpr moves to "multi".
4309         (*movdi_64bit): Replace the single "x" alternative with
4310         alternatives for moving into and out of "a".
4311         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
4312         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
4313         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
4314         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
4315         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
4316         (movti): New expander.
4317         (*movti, *movti_mips16): New insns.
4318         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
4319         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
4320         (mthi<GPR:mode>_<HILO:mode>): Likewise.
4321         * config/mips/predicates.md (fpr_operand): Delete.
4322         (d_operand): New predicate.
4323
4324 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
4325
4326         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
4327         failure on some Bourne shells.
4328         (x86_64-*-*): Ditto.
4329
4330 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
4331
4332         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
4333
4334 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
4335
4336         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
4337         (sparc-sun-solaris2*): Likewise.
4338
4339 2008-06-09  Arnaud Charlet  <charlet@adacore.com
4340
4341         * doc/install.texi: Update requirements to build the Ada compiler.
4342
4343 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
4344
4345         * df-scan.c (struct df_scan_problem_data): Remove the
4346         mw_link_pool alloc pool.
4347         (df_scan_free_internal): Don't free it.
4348         (df_scan_alloc): Don't allocate it.
4349         * df.h (struct df_link): Update comment.
4350
4351 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
4352
4353         * except.h: Correct checks for when SJLJ exceptions must be used.
4354
4355 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4356
4357         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
4358         default.
4359         
4360 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
4361
4362         PR tree-optimization/36218
4363         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
4364         configure for the build system.
4365         (BUILD_LDFLAGS): Define.
4366         * configure: Regenerate.
4367         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
4368
4369 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
4370
4371         PR target/36424
4372         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
4373         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
4374         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
4375
4376 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
4377
4378         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
4379
4380 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
4381
4382         * config.gcc (Obsolete configurations): Remove list of
4383         configurations.
4384         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
4385         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
4386         targets matched by those patterns.
4387         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
4388         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
4389         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
4390         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
4391         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
4392         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
4393         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
4394         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
4395         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
4396         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
4397         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
4398         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
4399         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
4400         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
4401         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
4402         Make code for Solaris 7 and greater unconditional for Solaris.
4403         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
4404         Remove --with-* handling.
4405         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
4406         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
4407         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
4408         LINK_OS_WINDISS_SPEC): Remove.
4409         * config/rs6000/sysv4.opt (mwindiss): Remove.
4410         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
4411         * configure: Regenerate.
4412         * doc/cpp.texi: Don't mention BeOS.
4413         * doc/extend.texi (interrupt): Don't mention MS1.
4414         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
4415         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
4416         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
4417         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
4418         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
4419         Remove.
4420         * doc/invoke.texi (MT Options): Remove.
4421         (-mwindiss): Remove.
4422         (CRIS Options): Remove cris-axis-aout references.
4423         (HPPA Options): Don't mention hppa1.1-*-pro.
4424         * doc/md.texi: (MorphoTech family): Remove.
4425         * libgcc2.c: Don't handle UWIN.
4426         * config/alpha/t-unicosmk: Remove.
4427         * config/alpha/unicosmk.h: Remove.
4428         * config/arm/kaos-arm.h: Remove.
4429         * config/arm/kaos-strongarm.h: Remove.
4430         * config/arm/strongarm-coff.h: Remove.
4431         * config/arm/strongarm-elf.h: Remove.
4432         * config/arm/strongarm-pe.h: Remove.
4433         * config/arm/t-strongarm-pe: Remove.
4434         * config/arm/t-xscale-coff: Remove.
4435         * config/arm/t-xscale-elf: Remove.
4436         * config/arm/xscale-coff.h: Remove.
4437         * config/arm/xscale-elf.h: Remove.
4438         * config/chorus.h: Remove.
4439         * config/cris/aout.h: Remove.
4440         * config/cris/aout.opt: Remove.
4441         * config/cris/t-aout: Remove.
4442         * config/i386/beos-elf.h: Remove.
4443         * config/i386/kaos-i386.h: Remove.
4444         * config/i386/ptx4-i.h: Remove.
4445         * config/i386/sco5.h: Remove.
4446         * config/i386/sco5.opt: Remove.
4447         * config/i386/sysv4-cpp.h: Remove.
4448         * config/i386/sysv5.h: Remove.
4449         * config/i386/t-beos: Remove.
4450         * config/i386/t-sco5: Remove.
4451         * config/i386/t-uwin: Remove.
4452         * config/i386/uwin.asm: Remove.
4453         * config/i386/uwin.h: Remove.
4454         * config/kaos.h: Remove.
4455         * config/mips/windiss.h: Remove.
4456         * config/mt: Remove directory.
4457         * config/pa/pa-osf.h: Remove.
4458         * config/pa/pa-pro-end.h: Remove.
4459         * config/pa/t-pro: Remove.
4460         * config/ptx4.h: Remove.
4461         * config/rs6000/beos.h: Remove.
4462         * config/rs6000/kaos-ppc.h: Remove.
4463         * config/rs6000/t-beos: Remove.
4464         * config/rs6000/windiss.h: Remove.
4465         * config/sh/kaos-sh.h: Remove.
4466         * config/sol2-6.h: Remove.
4467         * config/sparc/sol26-sld.h: Remove.
4468         * config/sparc/sysv4-only.h: Remove.
4469         * config/vax/bsd.h: Remove.
4470         * config/vax/t-memfuncs: Remove.
4471         * config/vax/ultrix.h: Remove.
4472         * config/vax/vaxv.h: Remove.
4473         * config/windiss.h: Remove.
4474
4475 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
4476
4477         PR rtl-optimization/36438
4478         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
4479         for vector shifts with constant scalar shift operands.
4480
4481 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
4482
4483         * doc/invoke.texi: Document -march=xlr.
4484         * config/mips/xlr.md: New file.
4485         * config/mips/mips.md: Include it.
4486         (cpu): Add "xlr".
4487         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
4488         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
4489         (mips_rtx_cost_data): Likewise.
4490
4491 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
4492
4493         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
4494         PRE_INC and PRE_DEC cases.
4495
4496 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
4497
4498         PR rtl-optimization/36419
4499         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
4500         the emitting jump insn.
4501
4502         PR target/36362
4503         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
4504         is not bool, boolify the whole *expr_p and convert to the desired type.
4505
4506 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
4507
4508         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
4509         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
4510         Add omp_private_outer_ref hook, add another argument to
4511         omp_clause_default_ctor hook.
4512         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
4513         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
4514         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
4515         hook_tree_tree_tree_tree_null.
4516         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
4517         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
4518         * hooks.c (hook_tree_tree_tree_tree_null): New function.
4519         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
4520         * tree.def (OMP_TASK): New tree code.
4521         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
4522         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
4523         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
4524         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
4525         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
4526         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
4527         OMP_CLAUSE_COLLAPSE_EXPR): Define.
4528         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
4529         (OMP_DIRECTIVE_P): Add OMP_TASK.
4530         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
4531         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
4532         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
4533         and OMP_CLAUSE_UNTIED entries.
4534         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
4535         num_ops to 2.
4536         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
4537         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
4538         * tree-pretty-print.c (dump_omp_clause): Handle
4539         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
4540         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
4541         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
4542         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
4543         warning about unsigned iterators.  Change decl/init/cond/incr
4544         arguments to TREE_VECs, check arguments for all collapsed loops.
4545         (c_finish_omp_taskwait): New function.
4546         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
4547         ws_clauses.
4548         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
4549         default_function_array_conversion on init.  Add par_clauses argument.
4550         If decl is present in parallel's lastprivate clause, change it to
4551         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
4552         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
4553         collapse count in clauses.
4554         (c_parser_omp_for, c_parser_omp_parallel): Adjust
4555         c_parser_omp_for_loop callers.
4556         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
4557         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
4558         (c_parser_omp_clause_name): Handle collapse and untied clauses.
4559         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
4560         functions.
4561         (c_parser_omp_clause_schedule): Handle schedule(auto).
4562         Include correct location in the error message.
4563         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
4564         and PRAGMA_OMP_CLAUSE_UNTIED.
4565         (OMP_TASK_CLAUSE_MASK): Define.
4566         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
4567         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
4568         * tree-nested.c (convert_nonlocal_omp_clauses,
4569         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
4570         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
4571         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
4572         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
4573         OMP_CLAUSE_DECL.
4574         (conver_nonlocal_reference, convert_local_reference,
4575         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
4576         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
4577         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
4578         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
4579         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
4580         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
4581         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
4582         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
4583         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
4584         OMP_CLAUSE_UNTIED.
4585         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
4586         * c-common.h (c_finish_omp_taskwait): New prototype.
4587         * gimple-low.c (lower_stmt): Handle OMP_TASK.
4588         * tree-parloops.c (create_parallel_loop): Create 1 entry
4589         vectors for OMP_FOR_{INIT,COND,INCR}.
4590         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
4591         (make_edges): Handle OMP_TASK.
4592         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
4593         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
4594         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
4595         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
4596         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
4597         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
4598         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
4599         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
4600         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
4601         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
4602         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
4603         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
4604         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
4605         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
4606         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
4607         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
4608         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
4609         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
4610         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
4611         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
4612         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
4613         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
4614         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
4615         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
4616         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
4617         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
4618         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
4619         original iterator is present in lastprivate clause or if
4620         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
4621         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
4622         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
4623         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
4624         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
4625         if it is set, lookup var in outer contexts too.  Handle
4626         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
4627         to be implicitly determined firstprivate for task regions.
4628         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
4629         if it is set, lookup var in outer contexts too.  Set
4630         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
4631         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
4632         OMP_CLAUSE_UNTIED.  Take region_type as last argument
4633         instead of in_parallel and in_combined_parallel.
4634         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
4635         Adjust callers.
4636         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
4637         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
4638         (new_omp_context): Set default_kind to
4639         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
4640         (omp_region_type): New enum.
4641         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
4642         fields, add region_type.
4643         (new_omp_context): Take region_type as argument instead of is_parallel
4644         and is_combined_parallel.
4645         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
4646         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
4647         ctx->is_combined_parallel checks.
4648         (gimplify_omp_task): New function.
4649         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
4650         OMP_CLAUSE_UNTIED.
4651         * omp-low.c (extract_omp_for_data): Use schedule(static)
4652         for schedule(auto).  Handle pointer and unsigned iterators.
4653         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
4654         Add loops argument.  Extract data for collapsed OMP_FOR loops.
4655         (expand_parallel_call): Assert sched_kind isn't auto,
4656         map runtime schedule to index 3.
4657         (struct omp_for_data_loop): New type.
4658         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
4659         Add loop, loops, collapse and iter_type fields.
4660         (workshare_safe_to_combine_p): Disallow combined for if
4661         iter_type is unsigned long long.  Don't combine collapse > 1 loops
4662         unless all bounds and steps are constant.  Adjust extract_omp_for_data
4663         caller.
4664         (expand_omp_for_generic): Handle pointer, unsigned and long long
4665         iterators.  Handle collapsed OMP_FOR loops.  Adjust
4666         for struct omp_for_data changes.  If libgomp function doesn't return
4667         boolean_type_node, add comparison of the return value with 0.
4668         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
4669         pointer, unsigned and long long iterators.  Adjust for struct
4670         omp_for_data changes.
4671         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
4672         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
4673         unsigned long long.  Allocate loops array, pass it to
4674         extract_omp_for_data.  For collapse > 1 loops use always
4675         expand_omp_for_generic.
4676         (omp_context): Add sfield_map and srecord_type fields.
4677         (is_task_ctx, lookup_sfield): New functions.
4678         (use_pointer_for_field): Use is_task_ctx helper.  Change first
4679         argument's type from const_tree to tree.  Clarify comment.
4680         In OMP_TASK disallow copy-in/out sharing.
4681         (build_sender_ref): Call lookup_sfield instead of lookup_field.
4682         (install_var_field): Add mask argument.  Populate both record_type
4683         and srecord_type if needed.
4684         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
4685         in srecord_type.
4686         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
4687         and DECL_FIELD_OFFSET.
4688         (scan_sharing_clauses): Adjust install_var_field callers.  For
4689         firstprivate clauses on explicit tasks allocate the var by value in
4690         record_type unconditionally, rather than by reference.
4691         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
4692         Use is_taskreg_ctx instead of is_parallel_ctx.
4693         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
4694         (create_omp_child_function_name): Add task_copy argument, use
4695         *_omp_cpyfn* names if it is true.
4696         (create_omp_child_function): Add task_copy argument, if true create
4697         *_omp_cpyfn* helper function.
4698         (scan_omp_parallel): Adjust create_omp_child_function callers.
4699         Rename parallel_nesting_level to taskreg_nesting_level.
4700         (scan_omp_task): New function.
4701         (lower_rec_input_clauses): Don't run constructors for firstprivate
4702         explicit task vars which are initialized by *_omp_cpyfn*.  
4703         Pass outer var ref to omp_clause_default_ctor hook if
4704         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
4705         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
4706         OMP_CLAUSE_REDUCTION_INIT.
4707         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
4708         avoid duplicate setting of fields.  Handle
4709         OMP_CLAUSE_PRIVATE_OUTER_REF.
4710         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
4711         copy-out if TREE_READONLY, only copy-in.
4712         (expand_task_copyfn): New function.
4713         (expand_task_call): New function.
4714         (struct omp_taskcopy_context): New type.
4715         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
4716         New functions.
4717         (lower_omp_parallel): Rename to...
4718         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
4719         Call create_task_copyfn if srecord_type is needed.  Adjust
4720         sender_decl type.
4721         (task_shared_vars): New variable.
4722         (check_omp_nesting_restrictions): Warn if work-sharing,
4723         barrier, master or ordered region is closely nested inside OMP_TASK.
4724         Add warnings for barrier if closely nested inside of work-sharing,
4725         ordered, or master region.
4726         (scan_omp_1): Call check_omp_nesting_restrictions even for
4727         GOMP_barrier calls.  Rename parallel_nesting_level to
4728         taskreg_nesting_level.  Handle OMP_TASK.
4729         (lower_lastprivate_clauses): Even if some lastprivate is found on a
4730         work-sharing construct, continue looking for them on parent parallel
4731         construct.
4732         (lower_omp_for_lastprivate): Add lastprivate clauses
4733         to the beginning of dlist rather than end.  Adjust for struct
4734         omp_for_data changes.
4735         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
4736         not after it.  Handle collapsed OMP_FOR loops, adjust for
4737         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
4738         (get_ws_args_for): Adjust extract_omp_for_data caller.
4739         (scan_omp_for): Handle collapsed OMP_FOR
4740         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
4741         (lower_omp_single_simple): If libgomp function doesn't return
4742         boolean_type_node, add comparison of the return value with 0.
4743         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
4744         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
4745         (parallel_nesting_level): Rename to...
4746         (taskreg_nesting_level): ... this.
4747         (is_taskreg_ctx): New function.
4748         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
4749         of is_parallel_ctx.
4750         (execute_lower_omp): Rename parallel_nesting_level to
4751         taskreg_nesting_level.
4752         (expand_omp_parallel): Rename to...
4753         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
4754         Call omp_task_call for OMP_TASK regions.
4755         (expand_omp): Adjust caller, handle OMP_TASK.
4756         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
4757
4758         * bitmap.c (bitmap_default_obstack_depth): New variable.
4759         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
4760         if argument is NULL and bitmap_default_obstack is already initialized.
4761         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
4762         at the end.
4763         * matrix-reorg.c (matrix_reorg): Likewise.
4764
4765 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
4766
4767         * config/i386/i386.md (*indirect_jump): Macroize using P
4768         mode iterator.  Remove !TARGET_64BIT from insn constraints.
4769         (*tablejump_1): Ditto.
4770         (*indirect_jump_rex64): Remove insn pattern.
4771         (*tablejump_1_rex64): Ditto.
4772         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
4773         and eh_return_si insn patterns.
4774
4775 2008-06-06  Richard Guenther  <rguenther@suse.de>
4776
4777         * tree-ssa-structalias.c (merge_smts_into): Remove.
4778         (find_what_p_points_to): Do not bother to compute the
4779         points-to set for pt_anything pointers.
4780         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
4781         for pt_anything pointers is ok.
4782
4783 2008-06-06  Jan Hubicka  <jh@suse.cz>
4784
4785         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
4786
4787 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4788
4789         * cgraph.c: Fix typos in comments.
4790         (cgraph_availability_names): Fix string typo.
4791         * fold-const.c: Fix typos in comments.
4792         (fold_binary): Fix typo in warning.
4793         * genautomata.c: Fix typos in comments.
4794         (check_presence_pattern_sets): Fix typo in local variable.
4795         (output_description): Fix typo in output.
4796         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
4797         * hwint.h: Likewise.
4798         * matrix-reorg.c (check_allocation_function): Likewise.
4799         * omega.c (smooth_weird_equations): Likewise.
4800         * auto-inc-dec.c: Fix typos in comments.
4801         * bb-reorder.c: Likewise.
4802         * builtins.c: Likewise.
4803         * c-common.c: Likewise.
4804         * c-cppbuiltin.c: Likewise.
4805         * c-parser.c: Likewise.
4806         * c-pretty-print.c: Likewise.
4807         * cfgcleanup.c: Likewise.
4808         * cfgexpand.c: Likewise.
4809         * cfghooks.c: Likewise.
4810         * cfglayout.c: Likewise.
4811         * cfgloopmanip.c: Likewise.
4812         * cgraphunit.c: Likewise.
4813         * coverage.c: Likewise.
4814         * dbxout.c: Likewise.
4815         * df-byte-scan.c: Likewise.
4816         * df-core.c: Likewise.
4817         * df-problems.c: Likewise.
4818         * df-scan.c: Likewise.
4819         * dfp.c: Likewise.
4820         * dominance.c: Likewise.
4821         * domwalk.c: Likewise.
4822         * dse.c: Likewise.
4823         * dwarf2out.c: Likewise.
4824         * emit-rtl.c: Likewise.
4825         * et-forest.c: Likewise.
4826         * function.c: Likewise.
4827         * function.h: Likewise.
4828         * gcc.c: Likewise.
4829         * gcov-io.c: Likewise.
4830         * gcov.c: Likewise.
4831         * gcse.c: Likewise.
4832         * genattrtab.c: Likewise.
4833         * ggc-page.c: Likewise.
4834         * gimplify.c: Likewise.
4835         * gthr-lynx.h: Likewise.
4836         * haifa-sched.c: Likewise.
4837         * ipa-cp.c: Likewise.
4838         * ipa-inline.c: Likewise.
4839         * ipa-prop.h: Likewise.
4840         * ipa-pure-const.c: Likewise.
4841         * ipa-struct-reorg.c: Likewise.
4842         * ipa-struct-reorg.h: Likewise.
4843         * ipa-type-escape.c: Likewise.
4844         * ipa.c: Likewise.
4845         * loop-doloop.c: Likewise.
4846         * mips-tfile.c: Likewise.
4847         * mkmap-flat.awk: Likewise.
4848         * mkmap-symver.awk: Likewise.
4849         * modulo-sched.c: Likewise.
4850         * omp-low.c: Likewise.
4851         * optabs.c: Likewise.
4852         * optabs.h: Likewise.
4853         * opts.c: Likewise.
4854         * passes.c: Likewise.
4855         * postreload-gcse.c: Likewise.
4856         * postreload.c: Likewise.
4857         * predict.c: Likewise.
4858         * pretty-print.h: Likewise.
4859         * profile.c: Likewise.
4860         * protoize.c: Likewise.
4861         * ra-conflict.c: Likewise.
4862         * real.c: Likewise.
4863         * recog.c: Likewise.
4864         * regclass.c: Likewise.
4865         * regs.h: Likewise.
4866         * reload.c: Likewise.
4867         * rtl-error.c: Likewise.
4868         * rtlanal.c: Likewise.
4869         * scan.h: Likewise.
4870         * sched-rgn.c: Likewise.
4871         * see.c: Likewise.
4872         * stmt.c: Likewise.
4873         * target.h: Likewise.
4874         * tree-dfa.c: Likewise.
4875         * tree-eh.c: Likewise.
4876         * tree-flow-inline.h: Likewise.
4877         * tree-inline.c: Likewise.
4878         * tree-into-ssa.c: Likewise.
4879         * tree-loop-distribution.c: Likewise.
4880         * tree-nested.c: Likewise.
4881         * tree-parloops.c: Likewise.
4882         * tree-pass.h: Likewise.
4883         * tree-pretty-print.c: Likewise.
4884         * tree-profile.c: Likewise.
4885         * tree-scalar-evolution.c: Likewise.
4886         * tree-sra.c: Likewise.
4887         * tree-ssa-alias-warnings.c: Likewise.
4888         * tree-ssa-ccp.c: Likewise.
4889         * tree-ssa-coalesce.c: Likewise.
4890         * tree-ssa-dom.c: Likewise.
4891         * tree-ssa-dse.c: Likewise.
4892         * tree-ssa-forwprop.c: Likewise.
4893         * tree-ssa-live.c: Likewise.
4894         * tree-ssa-live.h: Likewise.
4895         * tree-ssa-loop-im.c: Likewise.
4896         * tree-ssa-loop-ivopts.c: Likewise.
4897         * tree-ssa-loop-niter.c: Likewise.
4898         * tree-ssa-loop-prefetch.c: Likewise.
4899         * tree-ssa-phiopt.c: Likewise.
4900         * tree-ssa-phiprop.c: Likewise.
4901         * tree-ssa-sccvn.c: Likewise.
4902         * tree-ssa-ter.c: Likewise.
4903         * tree-ssa-threadupdate.c: Likewise.
4904         * tree-ssa.c: Likewise.
4905         * tree-vect-analyze.c: Likewise.
4906         * tree-vect-transform.c: Likewise.
4907         * tree-vectorizer.c: Likewise.
4908         * tree-vn.c: Likewise.
4909         * tree-vrp.c: Likewise.
4910         * tree.c: Likewise.
4911         * tree.def: Likewise.
4912         * tree.h: Likewise.
4913         * unwind-dw2-fde.c: Likewise.
4914         * unwind.inc: Likewise.
4915         * value-prof.c: Likewise.
4916         * vmsdbgout.c: Likewise.
4917
4918 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
4919
4920         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
4921         always place FP constants in the TOC for TARGET_POWERPC64.
4922         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
4923
4924 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
4925
4926         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
4927         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
4928         enable for TARGET_E500_DOUBLE.
4929         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
4930         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
4931         floating-point modes like integer modes for E500 double.
4932         (rs6000_legitimate_offset_address_p): Likewise.
4933         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
4934         addressing for DDmode for E500 double.
4935         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
4936         modes as using 64-bits of registers for E500 double.
4937         (spe_build_register_parallel): Do not handle DDmode or TDmode.
4938         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
4939         specially for E500 double.
4940         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
4941         TDmode for E500 double.
4942         (rs6000_gimplify_va_arg): Only handle SDmode in registers
4943         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
4944         (rs6000_split_multireg_move): Do not handle TDmode specially for
4945         E500 double.
4946         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
4947         using 64-bit registers for E500 double.
4948         (emit_frame_save): Do not handle DDmode specially for E500 double.
4949         (gen_frame_mem_offset): Likewise.
4950         (rs6000_function_value): Do not call spe_build_register_parallel
4951         for DDmode or TDmode.
4952         (rs6000_libcall_value): Likewise.
4953         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
4954         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
4955         for E500 double.
4956
4957 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
4958
4959         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
4960         in comments.
4961
4962 2008-06-04  Junjie Gu <jgu@tensilica.com>
4963
4964         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
4965         comparison for frame pointers.
4966
4967 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
4968
4969         PR target/27386
4970         * config/avr/avr.h (PUSH_ROUNDING): Remove.
4971
4972 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
4973
4974         PR target/30243
4975         * builtins.c (expand_builtin_signbit): Don't take lowpart when
4976         register is already smaller or equal to required mode. 
4977
4978 2008-06-04  Xinliang David Li  <davidxl@google.com>
4979
4980         * tree-call-cdce.c: New file. 
4981         (cond_dead_built_in_calls): New static variable.
4982         (input_domain): New struct.
4983         (check_pow): New function.
4984         (check_builtin_call): Ditto.
4985         (check_target_format): Ditto.
4986         (is_call_dce_candidate): Ditto.
4987         (gen_one_condition): Ditto.
4988         (gen_conditions_for_domain): Ditto.
4989         (get_domain): Ditto.
4990         (gen_conditions_for_pow_cst_base): Ditto.
4991         (gen_conditions_for_pow_int_base): Ditto.
4992         (gen_conditions_for_pow): Ditto.
4993         (get_no_error_domain): Ditto.
4994         (gen_shrink_wrap_conditions): Ditto.
4995         (shrink_wrap_one_built_in_call): Ditto.
4996         (shink_wrap_conditional_dead_built_in_calls): Ditto.
4997         (tree_call_cdce): Ditto.
4998         (gate_call_cdce): Ditto.
4999         (pass_call_cdce): New gimple pass.
5000         * passes.c: (init_optimization_passes): New pass.
5001         * tree-pass.h: New pass declaration.
5002         * opts.c (decode_options): New flag setting.
5003         * common.opt: Add -ftree-builtin-call-dce flag.
5004         * Makefile.in: Add new source file.
5005         * tempvar.def: New tv_id.
5006         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
5007
5008 2008-06-04  Richard Guenther  <rguenther@suse.de>
5009
5010         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
5011         (is_call_clobbered): Always check var_ann->call_clobbered.
5012         (mark_call_clobbered): Always set var_ann->call_clobbered.
5013         (clear_call_clobbered): Always clear var_ann->call_clobbered.
5014         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
5015         (reset_alias_info): Clear call clobbering info on MTAGs and
5016         globals as well.
5017         (set_pt_anything): Set pt_global_mem.
5018         (create_tag_raw): Adjust comment.
5019         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
5020
5021 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
5022             Maxim Kuvyrkov  <maxim@codesourcery.com>
5023
5024         * config/m68k/m68k.opt (mxgot): New option.
5025         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
5026         (m68k_output_addr_const_extra): New.
5027         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
5028         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
5029         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
5030         * doc/invoke.texi (M680x0 Options): Document -mxgot.
5031
5032 2008-06-04  Richard Guenther  <rguenther@suse.de>
5033
5034         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
5035         negative or non-representable offsets.
5036
5037 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
5038
5039         * config/i386/i386.c (ix86_gen_leave): New.
5040         (ix86_gen_pop1): Likewise.
5041         (ix86_gen_add3): Likewise.
5042         (ix86_gen_sub3): Likewise.
5043         (ix86_gen_sub3_carry): Likewise.
5044         (ix86_gen_one_cmpl2): Likewise.
5045         (ix86_gen_monitor): Likewise.
5046         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
5047         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
5048         ix86_gen_one_cmpl2 and ix86_gen_monitor.
5049         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
5050         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
5051         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
5052         (ix86_expand_epilogue): Updated.
5053         (print_operand): Handle integer register operand for 'z'.
5054         (ix86_expand_strlensi_unroll_1): Likewise.
5055         (ix86_expand_strlen): Likewise.
5056         (ix86_expand_builtin): Likewise.
5057         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
5058         mov{q}/mov{l} and add{q}/add{l}.
5059
5060 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
5061
5062         * config/i386/i386.md (P): New mode iterator.
5063         (SFmode push_operand splitter): Macroize DImode and SImode pushes
5064         using P mode iterator.
5065         (DFmode push_operand splitter): Ditto.
5066         (XFmode push_operand splitter): Ditto.
5067         (DFmode float_extend SFmode push_operand splitter): Ditto.
5068         (XFmode float_extend SFmode push_operand splitter): Do not generate
5069         SImode pushes for 64bit target.  Macroize Dimode and SImode
5070         pushes using P mode iterator.
5071         (XFmode float_extend DFmode push_operand splitter): Ditto.
5072
5073 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
5074
5075         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
5076         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
5077         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
5078         return type to int.
5079         (ix86_call_abi_override): Remove check for call_used_regs.
5080
5081 2008-06-03  Richard Guenther  <rguenther@suse.de>
5082
5083         * tree-ssa-structalias.c (find_func_aliases): Add constraints
5084         for the lhs of calls if the return type contains pointers.
5085
5086 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
5087
5088         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
5089         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
5090         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
5091         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
5092         of cfun and DEFAULT_ABI to deceide abi mode.
5093         (DEFAULT_ABI): New.
5094         (REG_PARM_STACK_SPACE): Removed.
5095         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
5096         (STACK_BOUNDARY): Use default target to deceide stack boundary.
5097         * config/i386/i386-protos.h (ix86_cfun_abi): New.
5098         (ix86_function_abi): Likewise.
5099         (ix86_function_type_abi): Likewise.
5100         (ix86_call_abi_override): Likewise.
5101         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
5102         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
5103         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
5104         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
5105         specific defines.
5106         (X86_64_REGPARM_MAX): New.
5107         (X86_64_SSE_REGPARM_MAX): New.
5108         (X64_REGPARM_MAX): New.
5109         (X64_SSE_REGPARM_MAX): New.
5110         (X86_32_REGPARM_MAX): New.
5111         (X86_32_SSE_REGPARM_MAX): New.
5112         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
5113         (ix86_function_regparm): Handle user calling abi.
5114         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
5115         by DEFAULT_ABI versus SYSV_ABI check.
5116         (ix86_reg_parm_stack_space): New.
5117         (ix86_function_type_abi): New.
5118         (ix86_call_abi_override): New.
5119         (ix86_function_abi): New.
5120         (ix86_cfun_abi): New.
5121         (init_cumulative_args): Call abi specific initialization.
5122         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
5123         (function_arg_64): Extend SSE_REGPARM_MAX check.
5124         (function_arg (): Remove TARGET_64BIT_MS_ABI.
5125         (ix86_pass_by_reference): Likewise.
5126         (ix86_function_value_regno_p): Likewise.
5127         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
5128         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
5129         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
5130         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
5131         (setup_incoming_varargs_64): Adjust regparm for call abi.
5132         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
5133         (ix86_va_start): Likewise.
5134         (ix86_gimplify_va_arg): Likewise.
5135         (ix86_expand_prologue): Likewise.
5136         (output_pic_addr_const): Likewise.
5137         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
5138         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
5139         (x86_output_mi_thunk): Likewise.
5140         (x86_function_profiler): Likewise.
5141         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
5142         (SYSV_ABI, MS_ABI): New constants.
5143         (DEFAULT_ABI): New.
5144         (init_regs): Add prototype of function in regclass.c file.
5145         (OVERRIDE_ABI_FORMAT): New.
5146         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
5147         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
5148         (OUTGOING_REG_PARM_STACK_SPACE): New.
5149         (ix86_reg_parm_stack_space): New prototype.
5150         (CUMULATIVE_ARGS): Add call_abi member.
5151         (machine_function): Add call_abi member.
5152         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
5153         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
5154
5155 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
5156
5157         PR target/34879
5158         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
5159         (avr_builtin_setjmp_frame_value): New function.
5160         * config/avr/avr.md (nonlocal_goto_receiver): Define.
5161         (nonlocal_goto): Define.
5162
5163 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
5164
5165         * config/mips/mips.c (mips_emit_loadgp): Return early if
5166         there is nothing do to, otherwise emit a blockage if
5167         !TARGET_EXPLICIT_RELOCS || crtl->profile.
5168         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
5169
5170 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5171
5172         * configure.ac: Drop unneeded backslash ending up in config.in.
5173         * acinclude.m4: Likewise.
5174         * config.in: Regenerate.
5175
5176 2008-05-26  Jan Hubicka  <jh@suse.cz>
5177
5178         * predict.c (maybe_hot_frequency_p): Break out of...
5179         (maybe_hot_bb_p): ... here.
5180         (maybe_hot_edge_p): New.
5181         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
5182         * basic-block.h (maybe_hot_edge_p): Declare.
5183
5184 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
5185
5186         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
5187         (*cmpfp_<mode>_cc): Ditto.
5188         (*fp_jcc_8<mode>_387): Ditto.
5189         (*fop_<MODEF:mode>_2_i387): Ditto.
5190         (*fop_<MODEF:mode>_3_i387): Ditto.
5191         (*fop_xf_2_i387): Ditto.
5192         (*fop_xf_3_i387): Ditto.
5193
5194 2008-06-02  Tomas Bily  <tbily@suse.cz>
5195
5196         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
5197
5198 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5199
5200         * config/mips/mips.c (mips_valid_offset_p): New function.
5201         (mips_valid_lo_sum_p): Likewise.
5202         (mips_classify_address): Use them.
5203         (mips_force_address): New function.
5204         (mips_legitimize_address): Use it.
5205         * config/mips/mips.md (MOVE128): New mode iterator.
5206         (movtf): Require TARGET_64BIT.  Remove empty strings.
5207         (*movtf_internal): Rename to...
5208         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
5209         of "R" and use {,fp}{load,store} attributes instead of "multi".
5210         Use a separate define_split.
5211         (*movtf_mips16): New pattern.
5212
5213 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5214
5215         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
5216         * config/mips/mips.c (mips_expand_before_return): New function.
5217         (mips_expand_epilogue): Call it.
5218         * config/mips/mips.md (return): Turn into a define_expand.
5219         (*return): New insn.
5220
5221 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5222
5223         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
5224         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
5225         functions.  Do not emit uses and clobbers of CONCATs; individually
5226         use and clobber their operands.
5227         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
5228         gen_clobber, emit_use and gen_use.
5229         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
5230         (expand_builtin_return): Likewise.
5231         * cfgbuild.c (count_basic_blocks): Likewise.
5232         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
5233         * explow.c (emit_stack_restore): Likewise.
5234         * expmed.c (extract_bit_field_1): Likewise.
5235         * expr.c (convert_move, emit_move_complex_parts): Likewise.
5236         (emit_move_multi_word, store_constructor): Likewise.
5237         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
5238         (thread_prologue_and_epilogue_insns): Likewise.
5239         * lower-subreg.c (resolve_simple_move): Likewise.
5240         * optabs.c (widen_operand, expand_binop): Likewise.
5241         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
5242         * reload.c (find_reloads): Likewise.
5243         * reload1.c (eliminate_regs_in_insn): Likewise.
5244         * stmt.c (expand_nl_goto_receiver): Likewise.
5245         * config/alpha/alpha.md (builtin_longjmp): Likewise.
5246         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
5247         * config/arm/arm.c (arm_load_pic_register): Likewise.
5248         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
5249         * config/arm/arm.md (untyped_return): Likewise.
5250         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
5251         * config/avr/avr.c (expand_prologue): Likewise.
5252         * config/bfin/bfin.c (do_unlink): Likewise.
5253         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
5254         * config/cris/cris.c (cris_expand_prologue): Likewise.
5255         * config/darwin.c (machopic_indirect_data_reference): Likewise.
5256         (machopic_legitimize_pic_address): Likewise.
5257         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
5258         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
5259         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
5260         (ix86_expand_convert_uns_didf_sse): Likewise.
5261         (ix86_expand_vector_init_general): Likewise.
5262         * config/ia64/ia64.md (eh_epilogue): Likewise.
5263         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
5264         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
5265         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
5266         (config/iq2000/iq2000.c): Likewise.
5267         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
5268         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
5269         (builtin_longjmp): Likewise.
5270         * config/mn10300/mn10300.md (call, call_value): Likewise.
5271         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
5272         * config/pdp11/pdp11.md (abshi2): Likewise.
5273         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
5274         * config/s390/s390.c (s390_emit_prologue): Likewise.
5275         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
5276         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
5277         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
5278         * config/sh/sh.c (prepare_move_operands): Likewise.
5279         (output_stack_adjust, sh_expand_epilogue): Likewise.
5280         (sh_set_return_address, sh_expand_t_scc): Likewise.
5281         * config/sparc/sparc.c (load_pic_register): Likewise.
5282         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
5283         * config/spu/spu.c (spu_expand_epilogue): Likewise.
5284         * config/v850/v850.c (expand_epilogue): Likewise.
5285
5286 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
5287
5288         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
5289         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
5290         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
5291         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
5292         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
5293         stack pointer register.
5294         (output_movhi): Remove code for interrupt specific writing to the 
5295         stack pointer register.
5296
5297 2008-05-31  Richard Guenther  <rguenther@suse.de>
5298
5299         PR tree-optimization/34244
5300         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
5301         (tree_expr_nonzero_warnv_p): Likewise.
5302         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
5303         ssa_name_nonnegative_p.
5304         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
5305         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
5306         not tree_expr_nonzero_warnv_p.
5307
5308         PR tree-optimization/36262
5309         Revert
5310         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
5311
5312         PR tree-optimization/34244
5313         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
5314         (record_numbers_of_iterations): New function.
5315         (execute_vrp): Cache the numbers of iterations of loops.
5316         * tree-scalar-evolution.c (scev_reset_except_niters):
5317         New function.
5318         (scev_reset): Use scev_reset_except_niters.
5319         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
5320
5321 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
5322
5323         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
5324         __WORKAROUND_RETS when appropriate.
5325
5326 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
5327
5328         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
5329         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
5330         mode iterator.
5331         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
5332         *fop_df_comm_sse insn patterns using MODEF mode iterator.
5333         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
5334         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
5335         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
5336         *fop_df_1_mixed insn patterns using MODEF mode iterator.
5337         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
5338         *fop_df_1_sse insn patterns using MODEF mode iterator.
5339         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
5340         *fop_df_1_i387 insn patterns using MODEF mode iterator.
5341         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
5342         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
5343         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
5344         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
5345         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
5346         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
5347         (*fop_xf_4_i387): Use <MODE> for mode attribute.
5348         (*fop_xf_5_i387): Ditto.
5349         (*fop_xf_6_i387): Ditto.
5350
5351 2008-05-30  Richard Guenther  <rguenther@suse.de>
5352
5353         * builtins.c (build_string_literal): Avoid generating
5354         a non-gimple_val result.
5355
5356 2008-05-30  DJ Delorie  <dj@redhat.com>
5357
5358         * exec-tool.in: Use an environment variable (private) instead of a
5359         file (shared) as a semaphore, so as to not break parallel builds.
5360
5361 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
5362
5363         * optabs.c (maybe_encapsulate_block): Remove.
5364         (emit_libcall_block): Adjust accordingly.
5365         * optabs.h (maybe_encapsulate_block): Remove prototype.
5366
5367         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
5368         Don't use maybe_encapsulate_block.
5369
5370 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
5371
5372         * config/rs6000/rs6000.c (rs6000_legitimize_address,
5373         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
5374         rtx is a SYMBOL_REF before calling get_pool_constant.
5375
5376 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
5377
5378         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
5379
5380 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
5381
5382         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
5383         rather than OS names to choose INO_T_EQ definition.
5384         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
5385         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
5386
5387 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
5388
5389         PR target/36348
5390         * config/darwin-f.c: New.
5391         * config/t-darwin: Added rule to build darwin-f.o.
5392         * config.gcc: Defined new variable, fortran_target_objs.
5393         (*-*-darwin*): Set fortran_target_objs.
5394         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
5395         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
5396         * configure: Regenerated.
5397
5398 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
5399
5400         PR target/35771
5401         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
5402         canonical type if needed.
5403
5404 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
5405
5406         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
5407
5408 2008-05-29  Richard Guenther  <rguenther@suse.de>
5409
5410         PR tree-optimization/36343
5411         PR tree-optimization/36346
5412         PR tree-optimization/36347
5413         * tree-flow.h (clobber_what_p_points_to): Declare.
5414         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
5415         pointed-to variable is dereferenced is irrelevant to whether
5416         the pointer can access the pointed-to variable.
5417         (clobber_what_p_points_to): New function.
5418         * tree-ssa-alias.c (set_initial_properties): Use it.
5419         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
5420         call clobber check for NMTs.
5421
5422 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
5423         
5424         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
5425         for printing gcov_type.
5426
5427 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
5428
5429         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
5430         and the eh region information.
5431         * value-prof.c (gimple_move_stmt_histograms): New function.
5432         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
5433
5434 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
5435
5436         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
5437
5438 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
5439
5440         * value-prof.c (tree_ic_transform): Print counts.
5441         * tree-profile.c (tree_gen_ic_func_profiler):
5442         Clear __gcov_indreict_call_callee variable to avoid misattribution
5443         of the profile.
5444
5445 2008-05-28  Rafael Espindola  <espindola@google.com>
5446
5447         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
5448         invalid sharing.
5449
5450 2008-05-28  Richard Guenther  <rguenther@suse.de>
5451
5452         PR tree-optimization/36339
5453         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
5454         and clobbering code out of the loop.
5455
5456 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
5457
5458         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
5459         letters defined.
5460
5461         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
5462         s390_contiguous_bitmask_p, s390_symref_operand_p,
5463         s390_check_symref_alignment, s390_reload_larl_operand,
5464         s390_reload_symref_address): New functions.
5465         (s390_branch_condition_mnemonic): Support compare and branch
5466         instructions.
5467         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
5468         and 'W' constraints.
5469         (s390_secondary_reload): Add secondary reloads for unaligned
5470         symbol refs or symbol refs to floating point or QI/TI mode
5471         integer values.
5472         (legitimate_address_p): Accept symbol references as addresses.
5473         (s390_expand_insv): Use rotate and insert selected bits
5474         instruction for insv when building for z10.
5475         (print_operand_address): Handle symbol ref addresses.
5476         (print_operand): Output modifier 'c' added for signed byte values.
5477         (s390_encode_section_info): Mark symbol refs with
5478         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
5479
5480         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
5481         (length attribute): RRF, RRR have 4 byte length.
5482         (FPALL, INTALL): New mode iterators added.
5483         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
5484         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
5485         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
5486         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
5487         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
5488         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
5489         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
5490         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
5491         instructions.
5492         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
5493         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
5494         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
5495         reload<INTALL:mode><P:mode>_toreg_z10,
5496         reload<FPALL:mode><P:mode>_tomem_z10,
5497         reload<FPALL:mode><P:mode>_toreg_z10,
5498         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
5499         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
5500         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
5501         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
5502         definition.
5503         (movmem, clrmem, cmpmem): New splitters added.
5504
5505         * config/s390/predicates.md (larl_operand): Use
5506         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
5507         SYMBOL_REF_ALIGN1_P.
5508         (s390_signed_integer_comparison,
5509         s390_unsigned_integer_comparison): New predicates.
5510
5511         * config/s390/s390-protos.h (s390_check_symref_alignment,
5512         s390_contiguous_bitmask_p, s390_reload_larl_operand,
5513         s390_reload_symref_address,
5514         s390_compare_and_branch_condition_mask): Prototypes added.
5515
5516         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
5517         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
5518         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
5519
5520 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
5521
5522         * config/s390/s390.c (z10_cost): New cost function for z10.
5523         (s390_handle_arch_option, override_options): Support -march=z10 switch.
5524         (s390_issue_rate): Adjust issue rate for z10.
5525         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
5526         (processor_flags): Add PF_Z10.
5527         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
5528         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
5529         * gcc/config.gcc: Add z10.
5530
5531 2008-05-28  Richard Guenther  <rguenther@suse.de>
5532
5533         PR tree-optimization/36291
5534         * tree-flow. h (struct gimple_df): Remove var_anns member.
5535         * tree-flow-inline.h (gimple_var_anns): Remove.
5536         (var_ann): Simplify.
5537         * tree-dfa.c (create_var_ann): Simplify.
5538         (remove_referenced_var): Clear alias info from var_anns of globals.
5539         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
5540         (delete_tree_ssa): Clear alias info from var_anns of globals.
5541         Do not free var_anns.
5542         (var_ann_eq): Remove.
5543         (var_ann_hash): Likewise.
5544
5545 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
5546
5547         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
5548         and loongson2f entries.
5549         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
5550         * config/mips/mips.h (processor_type): Add Loongson-2E
5551         and Loongson-2F entries.
5552         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
5553         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
5554         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
5555         * doc/invoke.texi (MIPS Options): Document loongson2e
5556         and loongson2f processor names.
5557
5558 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
5559
5560         PR target/35767
5561         PR target/35771
5562         * config/i386/i386.c (ix86_function_arg_boundary): Use
5563         alignment of canonical type.
5564         (ix86_expand_vector_move): Check unaligned memory access for
5565         all SSE modes.
5566
5567 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
5568
5569         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
5570         Moved to the front of file.
5571
5572 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
5573             H.J. Lu  <hongjiu.lu@intel.com>
5574
5575         * dwarf2out.c (current_fde): New.
5576         (add_cfi): Use it.
5577         (lookup_cfa:): Likewise.
5578         (dwarf2out_end_epilogue): Likewise.
5579         (dwarf2out_note_section_used): Likewise.
5580
5581 2008-05-27  Michael Matz  <matz@suse.de>
5582
5583         PR c++/27975
5584         * c.opt (Wenum-compare): New warning option.
5585         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
5586
5587 2008-05-27  Michael Matz  <matz@suse.de>
5588
5589         PR middle-end/36326
5590         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
5591         non-BLKmode types.
5592         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
5593         into memory as tail calls.
5594
5595 2008-05-27  Richard Guenther  <rguenther@suse.de>
5596
5597         PR tree-optimization/36339
5598         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
5599         pointers cause all addressable variables to be call clobbered.
5600
5601 2008-05-27  Richard Guenther  <rguenther@suse.de>
5602
5603         PR tree-optimization/36245
5604         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
5605
5606 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5607
5608         * config/s390/s390.md: Replace all occurences of the 'm'
5609         constraint with 'RT'.
5610
5611 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5612
5613         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
5614         definitions added.
5615         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
5616         "*movdi_64".
5617         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
5618         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
5619         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
5620
5621 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5622
5623         * reload.c: (find_reloads): Skip alternatives according to the
5624         "enabled" attribute. Constify the constraint variable.
5625         * recog.c (get_attr_enabled): Add default implementation.
5626         (extract_insn): Set the alternative_enabled_p array
5627         in the recog_data struct.
5628         (preprocess_constraints, constrain_operands): Skip
5629         alternatives according to the "enabled" attribute
5630         * recog.h (struct recog_data): New field alternative_enabled_p.
5631         (skip_alternative): New inline function.
5632         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
5633         (record_reg_classes): Skip alternative according to the
5634         "enabled" attribute.
5635
5636         * doc/md.texi: Add documention for the "enabled" attribute.
5637
5638 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5639
5640         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
5641         * postreload.c (reload_cse_simplify_operands): Replace 'm'
5642         constraint with TARGET_MEM_CONSTRAINT.
5643         * recog.c (asm_operand_ok, preprocess_constraints,
5644         constrain_operands): Likewise.
5645         * regclass.c (record_reg_classes): Likewise.
5646         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
5647         * reload1.c (maybe_fix_stack_asms): Likewise.
5648         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
5649         * recog.h: Adjust comment.
5650         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
5651         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
5652         * doc/md.texi: Add a note to description of 'm' constraint.
5653         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
5654
5655 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
5656
5657         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
5658         that the bitfield is of integral type before testing its precision.
5659
5660 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
5661             Sa Liu  <saliu@de.ibm.com> 
5662
5663         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
5664         __modti3, __udivti3, __umodti3 and __udivmodti4.
5665         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
5666         that implement TImode mul and div functions.
5667         * config/spu/multi3.c: New. Implement __multi3.
5668         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
5669         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
5670         functions on SPU.
5671
5672 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
5673
5674         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
5675         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
5676         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
5677         tls_sysv_suffix): New mode and mode attribute iterators.
5678         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
5679         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
5680         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
5681         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
5682         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
5683         iterators.
5684
5685 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
5686
5687         PR tree-optimization/36329
5688         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
5689         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
5690         * cgraphbuild.c (initialize_inline_failed): Use the latter
5691         macro in lieu of the former.
5692         * ipa-inline.c (cgraph_mark_inline): Likewise.
5693         (cgraph_decide_inlining_of_small_function): Likewise.
5694         (cgraph_decide_inlining): Likewise.
5695         (cgraph_decide_inlining_incrementally): Likewise.
5696
5697 2008-05-26  Tristan Gingold  <gingold@adacore.com>
5698             Anatoly Sokolov  <aesok@post.ru>
5699
5700         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
5701         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
5702         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
5703         optimization for 'avr6' architecture.
5704
5705 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
5706
5707         PR target/34932
5708         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
5709
5710 2008-05-26  Richard Guenther  <rguenther@suse.de>
5711
5712         * tree-ssa-sccvn.c (expr_has_constants): Declare.
5713         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
5714
5715 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
5716
5717         PR middle-end/36253
5718         * caller-save.c (insert_restore): Verify alignment of spill space.
5719         (insert_save): Likewise.
5720         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
5721         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
5722         (STACK_SLOT_ALIGNMENT): Likewise.
5723         * function.c (LOCAL_ALIGNMENT): Removed.
5724         (get_stack_local_alignment): New.
5725         (assign_stack_local): Use it.  Set alignment on stack slot.
5726         (assign_stack_temp_for_type): Use get_stack_local_alignment.
5727         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
5728         (STACK_SLOT_ALIGNMENT): New.
5729         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
5730         stack slot in XFmode.
5731
5732         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
5733
5734 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
5735
5736         PR/36321
5737         * config/i386/i386.md (allocate_stack_worker_64): Make sure
5738         argument operand in rax isn't removed.
5739
5740 2008-05-26  Richard Guenther  <rguenther@suse.de>
5741
5742         PR middle-end/36300
5743         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
5744         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
5745
5746 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
5747
5748         PR bootstrap/36331
5749         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
5750
5751 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
5752
5753         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
5754         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
5755
5756 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
5757
5758         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
5759         build a trampoline if we don't want one.
5760         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
5761         return zero for nested functions if we don't want a trampoline.
5762
5763 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
5764
5765         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
5766
5767 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
5768
5769         PR fortran/18428
5770         * c.opt: Removed undocumented option '-lang-fortran'.
5771         * c-common.h: Removed global variable 'lang_fortran'.
5772         * c-opts.c (c_common_handle_option): Removed code to handle
5773         option '-lang-fortran'. Updated includes.
5774         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
5775         definition of '__GFORTRAN__'.
5776         (define__GNUC__): Reimplemented to use BASEVER and
5777         cpp_define_formatted.
5778         (builtin_define_with_value_n): Removed.
5779         * c-incpath.h: Renamed to ...
5780         * incpath.h: ... this.
5781         * c-incpath.c: Renamed to ...
5782         * incpath.c: ... this. Updated includes.
5783         * fix-header.c: Updated includes.
5784         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
5785         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
5786         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
5787
5788 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
5789
5790         * tree.h: Update the table of flags used on tree nodes.
5791         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
5792         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
5793         (FORCED_LABEL): Add access check.
5794         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
5795         (ASM_INPUT_P): Likewise.
5796         (ASM_VOLATILE_P): Likewise.
5797         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
5798         (OMP_SECTION_LAST): Access private_flag directly.
5799         (OMP_RETURN_NOWAIT): Likewise.
5800         (OMP_PARALLEL_COMBINED): Likewise.
5801         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
5802         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
5803         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
5804         deprecated_flag directly.
5805
5806 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
5807
5808         * final.c (frame_pointer_needed): Removed.
5809         * flags.h (frame_pointer_needed): Likewise.
5810
5811         * function.h (rtl_data): Add frame_pointer_needed.
5812         (frame_pointer_needed): New.
5813
5814 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
5815
5816         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
5817
5818 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
5819
5820         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
5821         SRC is a REG.
5822
5823 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
5824
5825         * c-common.c (strip_array_types): Move function to..
5826         * tree.c: ..here.
5827         (get_inner_array_type): Delete.
5828         * c-common.h (strip_array_types): Move declaration to..
5829         * tree.h: ..here.
5830         (get_inner_array_type): Delete.
5831         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
5832         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
5833         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
5834         * config/pa/pa.c (emit_move_sequence): Likewise.
5835
5836 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
5837
5838         * config/i386/i386.md (*sse_prologue_save_insn): Set length
5839         attribute to 34.
5840
5841 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
5842
5843         * function.c: Include target hook for nonlocal_goto frame value.
5844
5845 2008-05-24  Richard Guenther  <rguenther@suse.de>
5846
5847         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
5848         variable can be only accessed through a pointer or a union.
5849
5850 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5851
5852         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
5853         * doc/extend.texi: Likewise.
5854
5855 2008-05-23  DJ Delorie  <dj@redhat.com>
5856
5857         * config/m32c/jump.md (untyped_call): Add.
5858
5859         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
5860         for A24 to PSImode.
5861         (m32c_address_cost): Detail costs for indirect offsets.
5862
5863 2008-05-23  Rafael Espindola  <espindola@google.com>
5864
5865         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
5866         if a node is a SUBREG.
5867         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
5868         is a SUBREG.
5869
5870 2008-05-23  Paul Brook  <paul@codesourcery.com>
5871             Carlos O'Donell  <carlos@codesourcery.com>
5872
5873         * doc/extend.texi: Clarify use of __attribute__((naked)).
5874         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
5875         * target.h (gcc_target): Add allocate_stack_slots_for_args.
5876         * function.c (use_register_for_decl): Use
5877         targetm.calls.allocate_stack_slots_for_args.
5878         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
5879         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
5880         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
5881
5882 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
5883
5884         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
5885
5886 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
5887
5888         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
5889         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
5890         is only rounded once.
5891
5892 2008-05-23  Richard Guenther  <rguenther@suse.de>
5893
5894         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
5895
5896 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
5897             Jakub Jelinek  <jakub@redhat.com>
5898
5899         PR target/36079
5900         * configure.ac: Handle --enable-cld.
5901         * configure: Regenerated.
5902         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
5903         * config/i386/i386.h (struct machine_function): Add needs_cld field.
5904         (ix86_current_function_needs_cld): New define.
5905         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
5906         (cld): New isns pattern.
5907         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
5908         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
5909         * config/i386/i386.opt (mcld): New option.
5910         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
5911         TARGET_CLD and ix86_current_function_needs_cld.
5912         (override_options): Use -mcld by default for 32-bit code if
5913         USE_IX86_CLD.
5914
5915         * doc/install.texi (Options specification): Document --enable-cld.
5916         * doc/invoke.texi (Machine Dependent Options)
5917         [i386 and x86-64 Options]: Add -mcld option.
5918         (Intel 386 and AMD x86-64 Options): Document -mcld option.
5919
5920 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
5921         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
5922         (return_in_memory_64): Likewise.
5923         (return_in_memory_ms_64): Likewise.
5924
5925 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5926
5927         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
5928         * builtins.c (fold_builtin_fpclassify): New.
5929         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
5930         * builtins.def (BUILT_IN_FPCLASSIFY): New.
5931         * c-common.c (handle_type_generic_attribute): Adjust to accept
5932         fixed arguments before an elipsis.
5933         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
5934         * doc/extend.texi: Document __builtin_fpclassify.
5935
5936 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
5937
5938         * omp-low.c (gate_expand_omp_ssa): Remove.
5939         (pass_expand_omp_ssa): Remove.
5940         (gate_expand_omp): Do not check for flag_openmp_ssa.
5941         * common.opt (-fopenmp-ssa): Remove.
5942         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
5943
5944 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
5945
5946         * config/sh/sh.opt (mfixed-range): New option.
5947         * config/sh/sh-protos.h (sh_fix_range): Declare.
5948         * config/sh/sh.c (sh_fix_range): New function.
5949         * config/sh/sh.h (sh_fixed_range_str): Declare.
5950         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
5951         is not empty.
5952         * doc/invoke.texi (SH Options): Document -mfixed-range.
5953
5954 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
5955
5956         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
5957         it before the redeclaration.
5958
5959 2008-05-22  Anatoly Sokolov <aesok@post.ru>
5960
5961         * config/avr/avr.c (get_sequence_length): Add new function.
5962         (expand_prologue, expand_epilogue): Remove duplicate code.
5963
5964 2008-05-22  Rafael Espindola  <espindola@google.com>
5965
5966         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
5967         sharing.
5968
5969 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
5970
5971         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
5972         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
5973
5974         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
5975         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
5976         (vect_update_misalignment_for_peel): Likewise.
5977         (vector_alignment_reachable_p): Likewise.
5978         * tree-vect-transform.c (vectorizable_load): Likewise.
5979         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
5980         (get_vectype_for_scalar_type): Pass mode of scalar_type
5981         to UNITS_PER_SIMD_WORD.
5982
5983         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
5984         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
5985         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
5986         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
5987         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
5988
5989 2008-05-22  Ira Rosen  <irar@il.ibm.com>
5990
5991         PR tree-optimization/36293
5992         * tree-vect-transform.c (vect_transform_strided_load): Don't check
5993         if the first load must be skipped because of a gap.
5994
5995 2008-05-22  Richard Guenther  <rguenther@suse.de>
5996
5997         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
5998         more cases of offset disambiguation that is possible if
5999         strict-aliasing rules apply.
6000         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
6001         for basic offset and type-based disambiguation.
6002
6003 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6004
6005         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
6006         ix86_expand_vector_set on V16QImode for SSE4.1.
6007
6008 2008-05-21  Tom Tromey  <tromey@redhat.com>
6009
6010         * c.opt (Wimport): Mark as undocumented.
6011         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
6012         -Wno-import.
6013         (Warning Options): Likewise.
6014         * doc/cppopts.texi: Don't mention -Wimport.
6015
6016 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
6017
6018         PR tree-optimization/36287
6019         PR tree-optimization/36286
6020         * lambda-code.c (build_access_matrix): Do not use the loop->num
6021         for computing the number of induction variables: use the loop depth
6022         instead.
6023
6024 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
6025
6026         PR/36280
6027         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
6028         option -f(no-)leading-underscore.
6029
6030 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6031
6032         * config/i386/i386.c (ix86_expand_vector_init_general): Use
6033         GET_MODE_NUNITS (mode).
6034
6035 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
6036
6037         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
6038         (-mmulhw): Add 464 to description.
6039         (-mdlmzb): Likewise.
6040         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
6041         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
6042         464fp entries.
6043         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
6044         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
6045         * config/rs6000/rs6000.md: Update comments for 464.
6046
6047 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
6048
6049         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
6050
6051 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6052
6053         * config/i386/sse.md (vec_extractv4sf): Removed.
6054         (vec_extractv2df): Likewise.
6055         (vec_extractv2di): Likewise.
6056         (vec_extractv4si): Likewise.
6057         (vec_extractv8hi): Likewise.
6058         (vec_extractv16qi): Likewise.
6059         (vec_extract<mode>): New.
6060
6061 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6062
6063         * config/i386/sse.md (vec_setv4sf): Removed.
6064         (vec_setv2df): Likewise.
6065         (vec_setv2di): Likewise.
6066         (vec_setv4si): Likewise.
6067         (vec_setv8hi): Likewise.
6068         (vec_setv16qi): Likewise.
6069         (vec_set<mode>): New.
6070
6071 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6072
6073         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
6074         goto for vec_concat and vec_interleave.
6075
6076 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6077
6078         * config/i386/sse.md (vec_initv4sf): Removed.
6079         (vec_initv2df): Likewise.
6080         (vec_initv2di): Likewise.
6081         (vec_initv4si): Likewise.
6082         (vec_initv8hi): Likewise.
6083         (vec_initv16qi): Likewise.
6084         (vec_init<mode>): New.
6085
6086 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
6087
6088         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
6089
6090 2008-05-21  Tom Tromey  <tromey@redhat.com>
6091
6092         * ggc-zone.c (lookup_page_table_if_allocated): New function.
6093         (zone_find_object_offset): Likewise.
6094         (gt_ggc_m_S): Likewise.
6095         (highest_bit): Likewise.
6096         * ggc-page.c (gt_ggc_m_S): New function.
6097         * stringpool.c (string_stack): Remove.
6098         (init_stringpool): Update.
6099         (ggc_alloc_string): Use ggc_alloc.
6100         (maybe_delete_ident): New function.
6101         (ggc_purge_stringpool): Likewise.
6102         (gt_ggc_m_S): Remove.
6103         * ggc-common.c (ggc_protect_identifiers): New global.
6104         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
6105         ggc_protect_identifiers.
6106         * ggc.h (ggc_protect_identifiers): Declare.
6107         (gt_ggc_m_S): Update.
6108         (ggc_purge_stringpool): Declare.
6109         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
6110         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
6111         special case.
6112         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
6113
6114 2008-05-21  David S. Miller  <davem@davemloft.net>
6115
6116         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
6117         tmake_file.
6118
6119 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6120
6121         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
6122         once finished.
6123
6124 2008-05-20  David Daney  <ddaney@avtrex.com>
6125
6126         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
6127         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
6128         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
6129         UNSPEC_UPDATE_GOT_VERSION): Renumber.
6130         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
6131         (atomic_hiqi_op): New define_code_iterator.
6132         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
6133         mips_expand_compare_and_swap_12.
6134         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
6135         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
6136         (sync_<optab><mode>, sync_old_<optab><mode>,
6137         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
6138         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
6139         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
6140         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
6141         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
6142         (test_and_set_12): New insn.
6143         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
6144         sync_new_<optab><mode>, sync_old_nand<mode>,
6145         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
6146         clobber to operand 0 for SI and DI mode insns.
6147         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
6148         mips_gen_fn_4): New typedefs.
6149         (mips_gen_fn_ptrs): Define new union type.
6150         (mips_expand_compare_and_swap_12): Remove declaration.
6151         (mips_expand_atomic_qihi): Declare function.
6152         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
6153         (mips_expand_atomic_qihi): ... this.  Use new generator function
6154         parameter.
6155         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
6156         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
6157         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
6158         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
6159         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
6160         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
6161         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
6162         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
6163         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
6164         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
6165         New macros.
6166
6167 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
6168
6169         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
6170         the missing break.
6171
6172 2008-05-20  Anatoly Sokolov <aesok@post.ru>
6173
6174         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
6175         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
6176         (avr_attribute_table): Add 'OS_main' function attribute.
6177         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
6178         functions with 'OS_main' attribute.
6179
6180 2008-05-20  Richard Guenther  <rguenther@suse.de>
6181
6182         PR tree-optimization/35204
6183         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
6184         helper, split out from ...
6185         (DFS): ... here.  Make the DFS walk non-recursive.
6186
6187 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
6188             Jan Sjodin  <jan.sjodin@amd.com>
6189
6190         PR tree-optimization/36181
6191         * tree-parloops.c (loop_has_vector_phi_nodes): New.
6192         (parallelize_loops): Don't parallelize when the loop has vector
6193         phi nodes.
6194
6195 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
6196             Sebastian Pop  <sebastian.pop@amd.com>
6197
6198         * tree-loop-linear.c (gather_interchange_stats): Look in the access
6199         matrix, and never look at the tree representation of the memory
6200         accesses.
6201         (linear_transform_loops): Computes parameters and access matrices.
6202         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
6203         when fails.
6204         (access_matrix_get_index_for_parameter): New.
6205         * tree-data-ref.h (struct access_matrix): New.
6206         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
6207         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
6208         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
6209         am_vector_index_for_loop): New.
6210         (struct data_reference): Add field access_matrix.
6211         (DR_ACCESS_MATRIX): New.
6212         (compute_data_dependences_for_loop): Update declaration.
6213         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
6214         * lambda.h (lambda_vector_vec_p): Declared.
6215         * lambda-code.c: Depend on pointer-set.h.
6216         (lambda_collect_parameters_from_af, lambda_collect_parameters,
6217         av_for_af_base, av_for_af, build_access_matrix,
6218         lambda_compute_access_matrices): New.
6219         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
6220
6221 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
6222
6223         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
6224         $SOURCEDIR/include.
6225
6226 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
6227             Sebastian Pop  <sebastian.pop@amd.com>
6228
6229         PR tree-optimization/36206
6230         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
6231         FOLD_CONVERSIONS.
6232         (instantiate_scev_1): Rename flags to fold_conversions.
6233         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
6234         outeside instantiation_loop.
6235         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
6236         (evolution_function_is_affine_or_constant_p): Removed.
6237         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
6238         instantiate_scev.
6239         (analyze_siv_subscript): Pass in the loop nest number.
6240         Call evolution_function_is_affine_in_loop instead of 
6241         evolution_function_is_affine_p.
6242         (analyze_overlapping_iterations): Pass in the loop nest number.
6243
6244 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
6245             Sebastian Pop  <sebastian.pop@amd.com>
6246
6247         PR tree-optimization/36206
6248         * tree-chrec.h (chrec_fold_op): New.
6249         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
6250         and other trees.
6251
6252 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
6253
6254         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
6255         (DIRS_EQ): New.
6256         (remove_duplicates): Do not set inode on non-inode systems.
6257         Use DIRS_EQ.
6258
6259 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
6260
6261         * config.gcc (tm_file): Update comments about relative pathnames.
6262
6263 2008-05-20  Richard Guenther  <rguenther@suse.de>
6264
6265         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
6266         * tree-ssa-sccvn.c (process_scc): Likewise.
6267         * tree-ssa-sink.c (execute_sink_code): Likewise.
6268         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
6269         * tree-vrp.c (process_assert_insertions): Likewise.
6270         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
6271         (perform_tree_ssa_dce): Likewise.
6272         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
6273         (dump_dominator_optimization_stats): Likewise.
6274         * tree-vectorizer.c (vectorize_loops): Likewise.
6275
6276 2008-05-20  Richard Guenther  <rguenther@suse.de>
6277
6278         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
6279
6280 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
6281
6282         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
6283         (ix86_i386elf_return_in_memory): Likewise.
6284         (ix86_i386interix_return_in_memory): Likewise.
6285         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
6286         (SUBTARGET_RETURN_IN_MEMORY): New.
6287         * config/i386/i386elf.h: Likewise.
6288         * config/i386/ptx4-i.h: Likewise.
6289         * config/i386/sol2-10.h: Likewise.
6290         * config/i386/sysv4.h: Likewise.
6291         * config/i386/vx-common.h: Likewise.
6292         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
6293         * config/i386/i386.c (ix86_return_in_memory): Made static and
6294         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
6295         (ix86_i386elf_return_in_memory): Removed.
6296         (ix86_i386interix_return_in_memory): Removed.
6297         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
6298         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
6299
6300 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
6301
6302         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
6303
6304 2008-05-19  Xinliang David Li  <davidxl@google.com>
6305
6306         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
6307         * opts.c: Ditto.
6308         * common.opt: Ditto.
6309         * doc/invoke.texi: Ditto.
6310
6311 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
6312
6313         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
6314         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
6315
6316 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
6317
6318         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
6319         sizes of operand array from 8/4 to 4/2.
6320         (ix86_expand_vector_init_general): Change size of operand array
6321         from 32 to 16.  Remove op0, op1 and half_mode.
6322
6323 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
6324
6325         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
6326         (ix86_expand_vector_init_interleave): Likewise.
6327         (ix86_expand_vector_init_general): Use them.  Assert
6328         word_mode == SImode when n_words == 4.
6329
6330 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
6331
6332         * config/i386/i386.c (ix86_secondary_reload): New static function.
6333         (TARGET_SECONDARY_RELOAD): New define.
6334         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
6335         * config/i386/i386.md (reload_outqi): Remove.
6336
6337 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6338
6339         PR middle-end/35509
6340         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
6341         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
6342         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
6343         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
6344         (fold_builtin_1): Likewise.
6345         * builtins.def (BUILT_IN_ISINF_SIGN): New.
6346         c-common.c (check_builtin_function_arguments): Handle
6347         BUILT_IN_ISINF_SIGN.
6348         * doc/extend.texi: Document __builtin_isinf_sign.
6349         * fold-const.c (operand_equal_p): Handle COND_EXPR.
6350
6351 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
6352
6353         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
6354         EH cleanup at the end of the pass, search for those that have been
6355         turned into forwarder blocks and do the cleanup on their successor.
6356
6357 2008-05-18  Richard Guenther  <rguenther@suse.de>
6358
6359         * tree-cfg.c (verify_gimple_expr): Allow conversions from
6360         pointers to sizetype and vice versa.
6361
6362 2008-05-18 Xinliang David Li   <davidxl@google.com>
6363
6364         * gcc/tree-ssa-dce.c: Coding style fix.
6365         (check_pow): Documentation comment. 
6366         (check_log): Documenation comment. Coding style fix.
6367         (is_unnecessary_except_errno_call): Ditto.
6368         (gen_conditions_for_pow): Ditto.
6369         (gen_conditions_for_log): Ditto.
6370         (gen_shrink_wrap_conditions): Ditto.
6371         (shrink_wrap_one_built_in_calls): Ditto.
6372         * gcc/doc/invoke.texi: Better documentation string.
6373         * ChangeLog: Fix wrong change log entries from 
6374         May 17 checkin on function call DCE.
6375
6376 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
6377
6378         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
6379
6380 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
6381
6382         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
6383         * df-problems.c (simulation routines): Fixed block comment to
6384         properly say how to add forwards scanning functions.
6385         
6386 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
6387
6388         * tree-inline.c (setup_one_parameter): Remove dead code.
6389
6390 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
6391
6392         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
6393         a BIT_AND_EXPR only for an INTEGER_TYPE.
6394
6395 2008-05-17 Xinliang David Li   <davidxl@google.com>
6396
6397         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
6398         (check_pow, check_log, is_unnecessary_except_errno_call): New 
6399         functions to check for eliminating math functions that are pure 
6400         except for setting errno.
6401         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
6402         general condition expressions for shrink-wrapping pow/log calls.
6403         (gen_shrink_wrap_conditions): Ditto.
6404         (shrink_wrap_one_built_in_call): Ditto.
6405         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
6406         (mark_operand_necessary): If debugging, output if OP is necessary.
6407         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
6408         unnecessary.
6409         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
6410         opt level >= 2.
6411         * gcc/common.opt: New user flag -ftree-builtin-dce.
6412         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
6413
6414 2008-05-16  David S. Miller  <davem@davemloft.net>
6415
6416         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
6417         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
6418
6419 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
6420
6421         PR target/36246
6422         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
6423
6424 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6425
6426         * ifcvt.c (dead_or_predicable): Rename
6427         df_simulate_one_insn_backwards to df_simulate_one_insn.
6428         * recog.c (peephole2_optimize): Ditto.
6429         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
6430         Ditto.
6431         * df.h: Rename df_simulate_one_insn_backwards to
6432         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
6433         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
6434         scanning of defs and uses.
6435         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
6436         (df_simulate_one_insn_forwards): Removed.
6437
6438 2008-05-16  Doug Kwan  <dougkwan@google.com>
6439
6440         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
6441         QNaN & SNaN.
6442         (real_from_string): Handle NaNs and Inf as approriate.
6443
6444 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
6445
6446         * doc/gty.texi (Source Files Containing Type Information): Note
6447         that headers should appear first in the gtfiles list.
6448
6449 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6450
6451         * tree.def (COND_EXEC): Properly documented this code.
6452
6453 2008-05-16  Diego Novillo  <dnovillo@google.com>
6454
6455         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
6456         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
6457         the new field.
6458
6459 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6460
6461         * tree-ssa-dse (max_stmt_uid): Removed.
6462         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
6463         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
6464         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
6465         * function.h (cfun.last_stmt_uid): New field.
6466         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
6467         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
6468         New functions.
6469         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
6470         (create_stmt_ann): Initialize the ann->uid field.
6471         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
6472         with new calls.
6473         * tree-flow.h (renumber_gimple_stmt_uids): New function.
6474
6475 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
6476
6477         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
6478         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
6479         (init_empty_tree_cfg): Call it.
6480
6481 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6482
6483         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
6484         Update all users.
6485
6486 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6487
6488         * doc/invoke.text (-fdump-tree-*-verbose): New option.
6489         * tree-dump.c (dump_options): New verbose option.
6490         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
6491         Add verbose dump.
6492         * tree-pass.h (TDF_VERBOSE): New dump flag.
6493         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
6494         (tree-flow.h): Added include.
6495         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
6496
6497 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
6498
6499         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
6500
6501         From Jie Zhang  <jie.zhang@analog.com>
6502         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
6503         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
6504         mcpu=bf561-none and mcpu=bf561-0.2.
6505         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
6506         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
6507         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
6508         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
6509         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
6510         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
6511         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
6512         option.
6513         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
6514         (cputype_selected): Remove.
6515         (bfin_handle_option): Don't use cputype_selected.
6516         (override_options): When no mcpu option, enable all workarounds.
6517         Don't use bfin_workarounds.
6518         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
6519         processor type.
6520         (DEFAULT_CPU_TYPE): Don't define.
6521
6522 2008-05-16  Richard Guenther  <rguenther@suse.de>
6523
6524         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
6525         on deletion of the last stmt.
6526
6527 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
6528
6529         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
6530         V8HImode for SSE2 and V16QImode for SSE4.1.
6531
6532 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
6533
6534         * cgraph.h (compute_inline_parameters): Made public.
6535         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
6536         variable_generate_summary, function_write_summary,
6537         variable_write_summary, variable_read_summary.  Added generate_summary,
6538         write_summary, read_summary.
6539         * cgraphunit.c (cgraph_process_new_functions): Changed call from
6540         pass_ipa_inline.function_generate_summary, to
6541         compute_inline_parameters. 
6542         * ipa-inline.c (compute_inline_parameters): Made public and added
6543         node parameter.
6544         (compute_inline_parameters_for_current): New function.
6545         (pass_inline_param): Now calls compute_inline_parameters_for_current.
6546         (inline_generate_summary): Removed parameter and made to loop over
6547         all cgraph nodes.
6548         (pass_ipa_inline): Updated for new IPA_PASS structure.
6549         * passes.c (execute_ipa_summary_passes): Now is called once per
6550         pass rather than once per node*pass.
6551         
6552 2008-05-15  Anatoly Sokolov <aesok@post.ru>
6553
6554         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
6555         avr_have_mul_p, avr_asm_only_p): Remove variables.
6556         (avr_override_options): Remove initialization of removed variables.
6557         (avr_file_start):  Convert removed variables to fields of 
6558         'struct base_arch_s *avr_current_arch'. 
6559         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
6560         (AVR_HAVE_MUL): (Ditto.).
6561         (AVR_HAVE_MOVW): (Ditto.).
6562         (AVR_HAVE_LPMX): (Ditto.). 
6563         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
6564         avr_asm_only_p): Remove declaration.
6565
6566 2008-05-15  Diego Novillo  <dnovillo@google.com>
6567
6568         * config/arm/arm.c (arm_return_in_memory): Fix return type.
6569         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
6570
6571 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
6572
6573         PR middle-end/36194
6574         * combine.c (check_conversion): Rename back to check_promoted_subreg.
6575         Don't call record_truncated_value from here.
6576         (record_truncated_value): Turn it into a for_each_rtx callback.
6577         (record_truncated_values): New function.
6578         (combine_instructions): Call note_uses with record_truncated_values.
6579         Change name of check_conversion to check_promoted_subreg. 
6580
6581 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
6582
6583         * doc/sourcebuild.texi: Document support for torture tests.
6584
6585 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
6586
6587         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
6588         to alternative 4 of operand 2.
6589
6590 2008-05-15  Richard Guenther  <rguenther@suse.de>
6591
6592         * tree-pass.h (current_pass): Declare.
6593         (get_pass_for_id): Likewise.
6594         * passes.c (passes_by_id, passes_by_id_size): New globals.
6595         (set_pass_for_id): New function.
6596         (get_pass_for_id): Likewise.
6597         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
6598         (execute_function_todo): Flush per function statistics.
6599         * toplev.c (compile_file): Init statistics.
6600         (general_init): Do early statistics initialization.
6601         (finalize): Finish statistics.
6602         * statistics.h (statistics_early_init): Declare.
6603         (statistics_init): Likewise.
6604         (statistics_fini): Likewise.
6605         (statistics_fini_pass): Likewise.
6606         (statistics_counter_event): Likewise.
6607         (statistics_histogram_event): Likewise.
6608         * statistics.c: New file.
6609         * Makefile.in (OBJS-common): Add statistics.o.
6610         (statistics.o): Add dependencies.
6611         * doc/invoke.texi (-fdump-statistics): Document.
6612
6613         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
6614         (insert): Likewise.
6615         (execute_pre): Use statistics_counter_event.
6616         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
6617         (substitute_and_fold): Increment it.  Use statistics_counter_event.
6618
6619 2008-05-15  Diego Novillo  <dnovillo@google.com>
6620
6621         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
6622
6623         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
6624         * tree-ssa-alias.c (new_type_alias): Remove references to
6625         sub-variables from comment.
6626         * tree-ssa-operands.c (swap_tree_operands): Likewise.
6627
6628 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
6629
6630         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
6631         attribute to 1 only for insertps alternative.
6632
6633 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
6634
6635         * config/bfin/bfin.md (loadbytes): New pattern.
6636         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
6637         (bfin_init_builtins): Initialize it.
6638         (bdesc_1arg): Add it.
6639
6640 2008-05-15  Sa Liu  <saliu@de.ibm.com>
6641
6642         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
6643         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
6644         * testsuite/lib/target-supports.exp: Add
6645         check_effective_target_fortran_integer_16.
6646
6647 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
6648
6649         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
6650         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
6651         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
6652         (TARGET_RETURN_IN_MEMORY): Define.
6653
6654 2008-05-15  Richard Guenther  <rguenther@suse.de>
6655
6656         PR middle-end/36244
6657         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
6658         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
6659         represent unmodifiable vars.
6660
6661 2008-05-15  Richard Guenther  <rguenther@suse.de>
6662
6663         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
6664         INDIRECT_REF and TARGET_MEM_REF.
6665         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
6666         TARGET_MEM_REF.
6667
6668 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
6669             H.J. Lu  <hongjiu.lu@intel.com>
6670
6671         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
6672         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
6673         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
6674         insn alternatives.  Add missing alternatives.
6675         (*vec_concatv2di_rex64_sse4_1): Likewise.
6676         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
6677         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
6678         Require TARGET_SSE.
6679
6680 2008-05-15  Richard Guenther  <rguenther@suse.de>
6681
6682         PR tree-optimization/36009
6683         PR tree-optimization/36204
6684         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
6685         (determine_invariantness_stmt): Record the loop a store is
6686         always executed in.
6687         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
6688         dependency.
6689
6690 2008-05-15  Richard Guenther  <rguenther@suse.de>
6691
6692         PR tree-optimization/34330
6693         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
6694         through the pointer will alias the SMT.
6695
6696 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
6697
6698         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
6699
6700 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
6701
6702         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
6703
6704 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
6705             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
6706
6707         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
6708         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
6709         (vashl_optab): New optab for vector/vector shifts.
6710         (vashr_optab): Ditto.
6711         (vlshr_optab): Ditto.
6712         (vrotl_optab): Ditto.
6713         (vrotr_optab): Ditto.
6714         (optab_subtype): New enum for optab_for_tree_code call.
6715         (optab_for_tree_code): Add enum optab_subtype argument.
6716
6717         * optabs.c (optab_for_tree_code): Take an additional argument to
6718         distinguish between a vector shift by a scalar and vector shift by
6719         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
6720         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
6721         vector shift by a vector.
6722         (expand_widen_pattern_expr): Pass additional argument to
6723         optab_for_tree_code.
6724
6725         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
6726         vrotl_optab, vrotr_optab.
6727
6728         * expr.c (expand_expr_real_1): Update calls to
6729         optab_for_tree_code to distinguish between vector shifted by a
6730         scalar and vector shifted by a vector.
6731         * tree-vectorizer.c (supportable_widening_operation): Ditto.
6732         (supportable_narrowing_operation): Ditto.
6733         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
6734         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
6735         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
6736         (vect_create_epilog_for_reduction): Ditto.
6737         (vectorizable_reduction): Ditto.
6738         (vectorizable_operation): Ditto.
6739         (vect_strided_store_supported): Ditto.
6740         (vect_strided_load_supported): Ditto.
6741         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
6742         * expmed.c (expand_shift): Ditto.
6743
6744         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
6745         scalar type.
6746         (ashr@var{m}3): Ditto.
6747         (vashl@var{m}3): Document new vector/vector shift standard name.
6748         (vashr@var{m}3): Ditto.
6749         (vlshr@var{m}3): Ditto.
6750         (vrotl@var{m}3): Ditto.
6751         (vrotr@var{m}3): Ditto.
6752
6753         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
6754         (PPERM_INVERT): Ditto.
6755         (PPERM_REVERSE): Ditto.
6756         (PPERM_REV_INV): Ditto.
6757         (PPERM_ZERO): Ditto.
6758         (PPERM_ONES): Ditto.
6759         (PPERM_SIGN): Ditto.
6760         (PPERM_INV_SIGN): Ditto.
6761         (PPERM_SRC1): Ditto.
6762         (PPERM_SRC2): Ditto.
6763
6764         * config/i386/sse.md (mulv2di3): Add SSE5 support.
6765         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
6766         allows a memory operand to be the value being added, and split it
6767         to improve vectorization.
6768         (sse5_pmacsdqh_mem): Ditto.
6769         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
6770         (sse5_mulv2div2di3_high): Ditto.
6771         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
6772         (vec_pack_trunc_v4si): Ditto.
6773         (vec_pack_trunc_v2di): Ditto.
6774         (sse5_pcmov_<mode>): Remove code that tried to use use
6775         andps/andnps instead of pcmov.
6776         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
6777         pmacsdqh instructions.
6778         (vec_widen_smult_lo_v4si): Ditto.
6779
6780         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
6781         (PPERM_INVERT): Ditto.
6782         (PPERM_REVERSE): Ditto.
6783         (PPERM_REV_INV): Ditto.
6784         (PPERM_ZERO): Ditto.
6785         (PPERM_ONES): Ditto.
6786         (PPERM_SIGN): Ditto.
6787         (PPERM_INV_SIGN): Ditto.
6788         (PPERM_SRC1): Ditto.
6789         (PPERM_SRC2): Ditto.
6790         (ix86_expand_sse_movcc): Move the SSE5 test after the if
6791         true/false tests.
6792         (ix86_expand_int_vcond): If SSE5 generate all possible integer
6793         comparisons.
6794         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
6795         says ignore whether the last reference is a memory operand.
6796
6797 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
6798             Paolo Bonzini <bonzini at gnu dot org>
6799
6800         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
6801         shift patterns.
6802
6803         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
6804         (vlshr<mode>3): Rename from vlshr<mode>3.
6805         (vashr<mode>3): Rename from vashr<mode>3.
6806         (mulv4sf3): Change the names of vector shift patterns.
6807         (mulv4si3): Ditto.
6808         (negv4sf2): Ditt.
6809
6810         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
6811         shift insns.
6812
6813         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
6814         (SI_SHLHI): Ditto.
6815         (SI_SHL): Ditto.
6816         (SI_SHLI): Ditto.
6817         (SI_ROTH): Ditto.
6818         (SI_ROTHI): Ditto.
6819         (SI_ROT): Ditto.
6820         (SI_ROTI): Ditto.
6821         (SPU_RL_0): Ditto.
6822         (SPU_RL_1): Ditto.
6823         (SPU_RL_2): Ditto.
6824         (SPU_RL_3): Ditto.
6825         (SPU_RL_4): Ditto.
6826         (SPU_RL_5): Ditto.
6827         (SPU_RL_6): Ditto.
6828         (SPU_RL_7): Ditto.
6829         (SPU_SL_0): Ditto.
6830         (SPU_SL_1): Ditto.
6831         (SPU_SL_2): Ditto.
6832         (SPU_SL_3): Ditto.
6833         (SPU_SL_4): Ditto.
6834         (SPU_SL_5): Ditto.
6835         (SPU_SL_6): Ditto.
6836         (SPU_SL_7): Ditto.
6837
6838         * config/spu/spu.md (v): New iterator macro to add v for vector types.
6839         (floatunssidf2_internal): Change vector/vector shift names.
6840         (floatunsdidf2_internal): Ditto.
6841         (mulv8hi3): Ditto.
6842         (ashrdi3): Ditto.
6843         (ashrti3): Ditto.
6844         (cgt_df): Ditto.
6845         (cgt_v2df): Ditto.
6846         (dftsv): Ditto.
6847         (vashl<mode>3): Rename from ashl<mode>3.
6848         (vashr<mode>3): Rename from ashr<mode>3.
6849         (vlshr<mode>3): Rename from lshr<mode>3.
6850         (vrotl<mode>3): Rename from rotl<mode>3.
6851
6852 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
6853
6854         PR target/36224
6855         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
6856         multiply gives the wrong value when doing widening multiplies.
6857         (vec_widen_smult_lo_v4si): Ditto.
6858
6859 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
6860
6861         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
6862         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
6863         emit_library_call_value. 
6864         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
6865         * tree.h (ECF_LIBCALL_BLOCK): Removed.
6866         * calls.c (initialize_argument_information, precompute_arguments, 
6867         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
6868         (precompute_arguments): Removed flags parameter.
6869         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
6870         
6871 2008-05-14  Richard Guenther  <rguenther@suse.de>
6872
6873         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
6874         Make sure to register the store if the use is a PHI_NODE.
6875
6876 2008-05-14  Olivier Hainque  <hainque@adacore.com>
6877
6878         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
6879         memory if the component is to be referenced in BLKmode according
6880         to get_inner_reference.
6881
6882 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
6883
6884         * calls.c (emit_library_call_value_1): Restore code clearing
6885         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
6886
6887 2008-05-14  Olivier Hainque  <hainque@adacore.com>
6888             Nicolas Roche  <roche@adacore.com>
6889
6890         * configure.ac: Add support for a "gcc_subdir" variable in
6891         config-lang.in, to denote a subdirectory where the language/GCC
6892         integration files are to be found.
6893         * configure: Regenerate.
6894
6895 2008-05-14  Ira Rosen  <irar@il.ibm.com>
6896
6897         PR tree-optimization/36098
6898         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
6899         value for the first load in the group in case of a gap.
6900         (vect_build_slp_tree): Check that there are no gaps in loads.
6901
6902 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
6903
6904         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
6905         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
6906         expand_copysign_bit, ): Change call to emit_no_conflict_block to
6907         emit_insn and remove unneeded code to construct extra args.
6908         (emit_no_conflict_block): Removed.
6909         * optabls.h: (emit_no_conflict_block): Removed.
6910         * cse.c (cse_extended_basic_block): Remove search for
6911         REG_NO_CONFLICT note.
6912         * global.c: Removed incorrect comment added in revision 117.
6913         * expr.c (convert_move): Change call to emit_no_conflict_block to
6914         emit_insn.
6915         * recog.c: Change comments so that they do not mention
6916         REG_NO_CONFLICT.
6917         * local_alloc.c (combine_regs): Removed last parameter.
6918         (no_conflict_p): Removed.
6919         (block_alloc): Removed note, no_conflict_combined_regno and set
6920         local vars. Removed all code to process REG_NO_CONFLICT blocks.
6921         (combine_regs): Removed already_dead and code to look for
6922         REG_NO_CONFLICT notes.
6923         * lower_subreg (remove_retval_note): Removed code to look for
6924         REG_NO_CONFLICT block.
6925         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
6926         (resolve_clobber): Remove code to process libcalls that have
6927         REG_NO_CONFLICT notes.
6928         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
6929         case.
6930         * combine.c (can_combine_p, distribute_notes):  Removed
6931         REG_NO_CONFLICT case.
6932         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
6933         to emit_insns.
6934         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
6935         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
6936         Ditto.
6937         * reg-notes.def (NO_CONFLICT): Removed.
6938
6939 2008-05-14  David S. Miller  <davem@davemloft.net>
6940
6941         * config/sparc/sparc.c (sparc_profile_hook): If
6942         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
6943         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
6944         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
6945
6946 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
6947
6948         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
6949
6950 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
6951
6952         PR target/36222
6953         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
6954         and op1 expansion before vector concat to have less live pseudos.
6955
6956 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
6957
6958         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
6959         ix86_expand_vector_set if supported.
6960
6961 2008-05-13  Diego Novillo  <dnovillo@google.com>
6962             Kenneth Zadeck  <zadeck@naturalbridge.com>
6963
6964         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
6965
6966         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
6967         phinodes_print_statistics, init_ssanames, fini_ssanames,
6968         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
6969         release_ssa_name, release_defs, replace_ssa_name_symbol,
6970         ssanames_print_statistics): Move ...
6971         * tree-flow.h: ... here.
6972         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
6973         Use FN instead of cfun.
6974         (make_ssa_name_fn): Rename from make_ssa_name.
6975         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
6976         * tree-flow-inline.h (make_ssa_name): Move from
6977         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
6978         * omp-low.c (expand_omp_parallel):
6979         * tree-flow-inline.h (redirect_edge_var_map_result):
6980         * tree-ssa.c (init_tree_ssa): Add argument FN.
6981         Use it instead of cfun.  Update all users.
6982
6983 2008-05-13  Tom Tromey  <tromey@redhat.com>
6984
6985         PR preprocessor/22168:
6986         * doc/cpp.texi (Top): Update menu.
6987         (Alternatives to Wrapper #ifndef): New node.
6988         (Other Directives): Document deprecation.
6989         (Obsolete Features): Remove menu.
6990         (Assertions): Merge node into Obsolete Features.
6991         (Obsolete once-only headers): Move earlier; rename to Alternatives
6992         to Wrapper #ifndef.
6993         * doc/cppopts.texi: Update.
6994         * c.opt (Wdeprecated): Enable for C and ObjC.
6995         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
6996         (C++ Dialect Options): Move -Wno-deprecated from here to...
6997         (Warning Options): ... here.
6998
6999 2008-05-13  Richard Guenther  <rguenther@suse.de>
7000
7001         PR middle-end/36227
7002         * fold-const.c (fold_sign_changed_comparison): Do not allow
7003         changes in pointer-ness.
7004
7005 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
7006
7007         PR target/24713
7008         * config/sh/sh.c (sh_expand_prologue): Don't clear
7009         RTX_FRAME_RELATED_P for push insns.
7010
7011 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
7012
7013         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
7014
7015 2008-05-12  Anatoly Sokolov <aesok@post.ru>
7016
7017         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
7018         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
7019         Use 'machine->is_leaf' instead of 'leaf_func_p'.
7020
7021 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
7022
7023         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
7024         (*vec_concatv4sf_sse): This.
7025         (*sse2_concatv2si): Renamed to ...
7026         (*vec_concatv2si_sse2): This.
7027         (*sse1_concatv2si): Renamed to ...
7028         (*vec_concatv2si_sse): This.
7029         (*vec_concatv2di_rex): Renamed to ...
7030         (*vec_concatv2di_rex64): This.
7031         (*vec_concatv2si_sse4_1): New.
7032         (*vec_concatv2di_rex64_sse4_1): Likewise.
7033
7034 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
7035
7036         PR rtl-optimization/36111
7037         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
7038         that was created for swappable operands.
7039
7040 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
7041
7042         PR ada/36001
7043         * Makefile.in: Substitute GNATMAKE and GNATBIND.
7044         * configure.ac: Add call to ACX_PROG_GNAT.
7045
7046 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
7047
7048         * optc-gen.awk: Fix comment typo.
7049
7050 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
7051
7052         * pretty-print.c (pp_integer_with_precision): Use
7053         HOST_LONG_LONG_FORMAT.
7054
7055 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
7056
7057         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
7058                 
7059 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
7060
7061         * config/i386/i386.c (bdesc_ptest): Removed.
7062         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
7063         (bdesc_args): Add __builtin_ia32_ptestz128,
7064         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
7065         (ix86_init_mmx_sse_builtins): Updated.
7066         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
7067         (ix86_expand_builtin): Updated.
7068
7069 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
7070
7071         * tree-cfg.c (valid_fixed_convert_types_p): New function.
7072         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
7073
7074 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
7075
7076         * value-prof.c (interesting_stringop_to_profile): Do not
7077         return early for BUILT_IN_MEMPCPY.
7078
7079 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
7080
7081         * calls.c (expand_call): Don't use callgraph to increase
7082         preferred_stack_boundary.
7083
7084         * cgraph.h (cgraph_rtl_info): Use unsigned on
7085         preferred_incoming_stack_boundary.
7086
7087         * final.c (rest_of_clean_state): Use unsigned on
7088         preferred_stack_boundary.
7089
7090 2008-05-09  Tom Tromey  <tromey@redhat.com>
7091
7092         PR preprocessor/22231:
7093         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
7094         proceeding.
7095
7096 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
7097
7098         PR tree-optimization/36129
7099         * tree-ssa-ccp.c: Include value-prof.h.
7100         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
7101         built-in function was folded to a constant.
7102         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
7103
7104 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
7105             Sebastian Pop  <sebastian.pop@amd.com>
7106
7107         * tree-scalar-evolution.c: Document instantiate_scev.
7108         (instantiate_parameters_1): Renamed instantiate_scev_1.
7109         Don't use the same loop for instantiation_loop and evolution_loop.
7110         (instantiate_scev): New.
7111         (instantiate_parameters): Moved...
7112         (resolve_mixers): Update call to instantiate_scev_1 to pass the
7113         same loop twice.  Maintains the semantics for this function.
7114         * tree-scalar-evolution.h (instantiate_scev): Declare.
7115         (instantiate_parameters): ...here.  Now static inline.
7116         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
7117         instead of resolve_mixers.
7118
7119 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
7120
7121         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
7122
7123 2008-05-09  Tomas Bily  <tbily@suse.cz>
7124
7125         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
7126         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
7127         * tree-ssa-structalias.c (get_constraint_for): Likewise.
7128         * c-common.c (c_common_truthvalue_conversion): Likewise.
7129         * tree-object-size.c (compute_object_offset): Likewise.
7130         * tree-inline.c (estimate_num_insns_1): Likewise.
7131         * varasm.c (const_hash_1, compare_constant, copy_constant)
7132         (compute_reloc_for_constant, output_addressed_constants)
7133         (initializer_constant_valid_p): Likewise.
7134         * c-omp.c (check_omp_for_incr_expr): Likewise.
7135         * gimplify.c (gimplify_expr): Likewise.
7136         * c-typeck.c (c_finish_return): Likewise.
7137         * tree-vectorizer.c (supportable_widening_operation)
7138         (supportable_narrowing_operation): Likewise.
7139         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
7140         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
7141         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
7142         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
7143         (descr_info_loc): Likewise.
7144         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
7145         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
7146         (fold_unary): Likewise.
7147         * builtins.c (get_pointer_alignment): Likewise.
7148         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
7149         (instantiate_parameters_1): Likewise.
7150         * tree.c (expr_align, stabilize_reference): Likewise.
7151         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
7152         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
7153         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
7154         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
7155         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
7156         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
7157         Likewise.
7158         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
7159         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
7160         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
7161         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
7162         (forward_propagate_comparison)
7163         (tree_ssa_forward_propagate_single_use_vars): Likewise.
7164         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
7165         * emit-rtl.c (component_ref_for_mem_expr)
7166         (set_mem_attributes_minus_bitpos): Likewise.
7167         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
7168         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
7169         Likewise.
7170         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
7171         (build_function_call, pointer_diff, build_compound_expr)
7172         (c_finish_return): Likewise.
7173         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
7174         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
7175         Likewise.
7176         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
7177         * expr.c (is_aligning_offset): Likewise.
7178         * tree-ssa-alias.c (is_escape_site): Likewise.
7179         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
7180         (check_all_va_list_escapes): Likewise.
7181         * tree-ssa-loop-ivopts.c (determine_base_object)
7182         (determine_common_wider_type): Likewise.
7183         * dojump.c (do_jump): Likewise.
7184         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
7185         * tree-gimple.c (is_gimple_cast): Likewise.
7186         * fold-const.c (decode_field_reference, )
7187         (fold_sign_changed_comparison, fold_unary, fold_comparison)
7188         (fold_binary): Likewise.
7189         * tree-ssa-alias-warnings.c (find_alias_site_helper)
7190         (already_warned_in_frontend_p): Likewise.
7191         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
7192         * tree.c (really_constant_p, get_unwidened): Likewise.
7193         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
7194         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
7195         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
7196         Likewise.
7197         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
7198         CONVERT_EXPR_P.
7199         (CONVERT_EXPR_P): Define.
7200         (CASE_CONVERT): Define.
7201         
7202 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
7203
7204         PR middle-end/36117
7205         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
7206         (delete_unmarked_insns): When deleting a call, call
7207         delete_unreachable_blocks.
7208         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
7209         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
7210
7211 2008-05-08  Richard Guenther  <rguenther@suse.de>
7212
7213         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
7214         (-ftree-salias): Likewise.
7215         (salias-max-implicit-fields): Remove param documentation.
7216         (salias-max-array-elements): Likewise.
7217         * tree-pass.h (pass_create_structure_vars): Remove.
7218         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
7219         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
7220         * tree-ssa-alias.c (create_structure_vars): Remove.
7221         (gate_structure_vars): Likewise.
7222         (pass_create_structure_vars): Likewise.
7223         (gate_build_alias): Likewise.
7224         (pass_build_alias): Adjust to run always and dump the function.
7225         * common.opt (ftree-salias): Hide.
7226         * passes.c (init_optimization_passes): Remove
7227         pass_create_structure_vars, adjust comment.
7228         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
7229         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
7230         * opts.c (decode_options): Do not set flag_tree_salias.
7231         (common_handle_option): Add OPT_ftree_salias to the backward
7232         compatibility section.
7233
7234 2008-05-08  Richard Guenther  <rguenther@suse.de>
7235
7236         * tree-flow-inline.h (var_can_have_subvars): Move ...
7237         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
7238         * tree-flow.h (var_can_have_subvars): Remove.
7239         (push_fields_onto_fieldstack): Remove.
7240         (sort_fieldstack): Likewise.
7241         (struct fieldoff): Move ...
7242         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
7243         alias_set and base_for_components fields.
7244         (sort_fieldstack): Make static.
7245         (push_fields_onto_fieldstack): Likewise.  Remove code that
7246         handles anything but RECORD_TYPEs.  Remove alias_set and
7247         base_for_components handling.
7248         (create_variable_info_for): Adjust.
7249
7250 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
7251
7252         * common.opt (Wframe-larger-than=): Shorten the help message
7253         to one line.
7254         * doc/invoke.texi (Wframe-larger-than=): Add more description.
7255
7256 2008-05-08  Rafael Espindola  <espindola@google.com>
7257
7258         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
7259         trap.
7260         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
7261         trap and that both operands are gimple values.
7262         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
7263         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
7264         is a fp operation.
7265
7266 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
7267
7268         * read-rtl.c (join_c_conditions): Return the first string if the
7269         two strings are equal.
7270
7271 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
7272
7273         * gensupport.h (pred_data): Add a "num_codes" field.
7274         (add_predicate_code): Declare.
7275         * gensupport.c (add_predicate_code): New function.
7276         (std_pred_table): Add an "allows_const_p" field.
7277         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
7278         Remove the (incomplete) list of such codes from the codes field.
7279         (init_predicate_table): Use add_predicate_code.  Add all
7280         RTX_CONST_OBJs if allows_const_p is true.
7281         * genrecog.c (process_define_predicate): Use add_predicate_code.
7282
7283 2008-05-08  David Daney  <ddaney@avtrex.com>
7284             Richard Sandiford  <rsandifo@nildram.co.uk>
7285         
7286         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
7287         special case of constant zero operands.
7288         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
7289         old and new values.  Special case constant zero values.
7290         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
7291         fails.
7292         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
7293         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
7294
7295 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
7296
7297         PR target/36090
7298         * simplify-rtx.c (simplify_plus_minus): Create CONST of
7299         similar RTX_CONST_OBJ before CONST_INT.
7300
7301 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
7302
7303         * stmt.c (expand_stack_restore): Change sa mode if needed.
7304
7305 2008-05-08  Richard Guenther  <rguenther@suse.de>
7306
7307         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
7308         return type to bool.
7309         (ix86_sol10_return_in_memory): Likewise.
7310         (ix86_i386elf_return_in_memory): Likewise.
7311         (ix86_i386interix_return_in_memory): Likewise.
7312         * config/i386/i386.c (ix86_return_in_memory): Likewise.
7313         (ix86_sol10_return_in_memory): Likewise.
7314         (ix86_i386elf_return_in_memory): Likewise.
7315         (ix86_i386interix_return_in_memory): Likewise.
7316
7317 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
7318
7319         PR bootstrap/36180
7320         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
7321         fndecl argument.
7322         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
7323         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
7324         declared in front.
7325
7326 2008-05-08  Richard Guenther  <rguenther@suse.de>
7327
7328         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
7329         * tree-data-ref.h (struct dr_alias): Remove subvars field.
7330         (DR_SUBVARS): Remove.
7331         * tree-dfa.c (dump_subvars_for): Remove.
7332         (debug_subvars_for): Likewise.
7333         (dump_variable): Do not dump subvars.
7334         (remove_referenced_var): Do not remove subvars.
7335         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
7336         (lookup_subvars_for_var): Remove.
7337         (get_subvars_for_var): Likewise.
7338         (get_subvars_at): Likewise.
7339         (get_first_overlapping_subvar): Likewise.
7340         (overlap_subvar): Likewise.
7341         * tree-flow.h (subvar_t): Remove.
7342         (struct var_ann_d): Remove subvars field.
7343         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
7344         argument.  Remove special handling of SFTs.
7345         (compute_tag_properties): Likewise.
7346         (set_initial_properties): Likewise.
7347         (compute_call_clobbered): Likewise.
7348         (count_mem_refs): Likewise.
7349         (compute_memory_partitions): Likewise.
7350         (compute_flow_insensitive_aliasing): Likewise.
7351         (setup_pointers_and_addressables): Likewise.
7352         (new_type_alias): Likewise.
7353         (struct used_part): Remove.
7354         (used_portions): Likewise.
7355         (struct used_part_map): Likewise.
7356         (used_part_map_eq): Likewise.
7357         (used_part_map_hash): Likewise.
7358         (free_used_part_map): Likewise.
7359         (up_lookup): Likewise.
7360         (up_insert): Likewise.
7361         (get_or_create_used_part_for): Likewise.
7362         (create_sft): Likewise.
7363         (create_overlap_variables_for): Likewise.
7364         (find_used_portions): Likewise.
7365         (create_structure_vars): Likewise.
7366         * tree.def (STRUCT_FIELD_TAG): Remove.
7367         * tree.h (MTAG_P): Adjust.
7368         (struct tree_memory_tag): Remove base_for_components and
7369         unpartitionable flags.
7370         (struct tree_struct_field_tag): Remove.
7371         (SFT_PARENT_VAR): Likewise.
7372         (SFT_OFFSET): Likewise.
7373         (SFT_SIZE): Likewise.
7374         (SFT_NONADDRESSABLE_P): Likewise.
7375         (SFT_ALIAS_SET): Likewise.
7376         (SFT_UNPARTITIONABLE_P): Likewise.
7377         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
7378         (union tree_node): Remove sft field.
7379         * alias.c (get_alias_set): Remove special handling of SFTs.
7380         * print-tree.c (print_node): Remove handling of SFTs.
7381         * tree-dump.c (dequeue_and_dump): Likewise.
7382         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
7383         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
7384         * tree-predcom.c (set_alias_info): Do not set subvars.
7385         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
7386         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
7387         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
7388         (add_vars_for_offset): Remove.
7389         (add_virtual_operand): Remove special handling of SFTs.
7390         (add_call_clobber_ops): Likewise.
7391         (add_call_read_ops): Likewise.
7392         (get_asm_expr_operands): Likewise.
7393         (get_modify_stmt_operands): Likewise.
7394         (get_expr_operands): Likewise.
7395         (add_to_addressable_set): Likewise.
7396         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
7397         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
7398         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
7399         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
7400         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
7401         (tree_node_structure): Likewise.
7402         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
7403         handling of SFTs.
7404         (find_what_p_points_to): Likewise.
7405
7406 2008-05-08  Sa Liu  <saliu@de.ibm.com>
7407
7408         * config/spu/spu.md: Fixed subti3 pattern.
7409
7410 2008-05-08  Richard Guenther  <rguenther@suse.de>
7411
7412         PR middle-end/36154
7413         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
7414         sure to create a representative for trailing arrays for PTA.
7415
7416 2008-05-08  Richard Guenther  <rguenther@suse.de>
7417
7418         PR middle-end/36172
7419         * fold-const.c (operand_equal_p): Two objects which types
7420         differ in pointerness are not equal.
7421
7422 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
7423
7424         * calls.c (compute_argument_block_size): Add argument tree fndecl.
7425         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
7426         (emit_library_call_value_1): Add new variable fndecl initialized by
7427         NULL_TREE. It should be the decl type of orgfun, but this information
7428         seems not to be available here, so it uses the default calling abi.
7429         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
7430         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
7431         by TARGET_RETURN_IN_MEMORY.
7432         * config/i386/i386-interix.h: Likewise.
7433         * config/i386/i386.h: Likewise.
7434         * config/i386/i386elf.h: Likewise.
7435         * config/i386/ptx4-i.h: Likewise.
7436         * config/i386/sol2-10.h: Likewise.
7437         * config/i386/sysv4.h: Likewise.
7438         * config/i386/vx-common.h: Likewise.
7439         * config/cris/cris.h: Removed #if 0 clause.
7440         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
7441         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
7442         argument.
7443         (ix86_sol10_return_in_memory): Likewise.
7444         (ix86_i386elf_return_in_memory): New.
7445         (ix86_i386interix_return_in_memory): New.
7446         * config/mt/mt-protos.h (mt_return_in_memory): New.
7447         * config/mt/mt.c: Likewise.
7448         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
7449         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
7450         * config/bfin/bfin.h: Likewise.
7451         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
7452         argument.
7453         * config/bfin/bfin.c: Likewise.
7454         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
7455         * config/alpha/unicosmk.h: Likewise.
7456         * config/i386/cygming.h: Likewise.
7457         * config/iq2000/iq2000.h: Likewise.
7458         * config/mips/mips.h: Likewise.
7459         * config/mn10300/mn10300.h: Likewise.
7460         * config/rs6000/rs6000.h: Likewise.
7461         * config/score/score.h: Likewise.
7462         * config/spu/spu.h: Likewise.
7463         * config/v850/v850.h: Likewise.
7464         * defaults.h: Likewise.
7465         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
7466         * expr.c (emit_block_move): Adjust use of
7467         OUTGOING_REG_PARM_STACK_SPACE.
7468         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
7469         OUTGOING_REG_PARM_STACK_SPACE.
7470         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
7471
7472 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
7473
7474         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
7475         on OMP_RETURN for OMP_FOR.
7476
7477         PR debug/35896
7478         * dwarf2out.c (dw_expand_expr, common_check): Removed.
7479         (fortran_common): New function.
7480         (gen_variable_die): Call fortran_common instead of common_check,
7481         adjust for it returning tree instead of rtx.  Formatting.
7482
7483 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
7484
7485         PR rtl/7335
7486         PR rtl/33826
7487         * see.c (see_copy_insn): Copy new pure const attributes for new call.
7488         * c-decl.c (merge_decls): Ditto.
7489         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
7490         to RTL_CONST_OR_PURE_CALL_P.
7491         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
7492         Initialized DECL_LOOPING_CONST_PURE.
7493         (process_call_operands): Set tree_side_effects properly.
7494         * tree.h (TREE_READONLY_DECL_P): Removed.
7495         (DECL_IS_PURE): Renamed to DECL_PURE_P.
7496         (DECL_LOOPING_OR_CONST_P): New macro.
7497         (struct tree_function_decl): Added looping_const_or_pure_p.
7498         (ECF_*) Renumbered.
7499         (ECF_LOOPING_OR_CONST_P): New macro.
7500         * rtlanal.c (pure_const_p): Removed.
7501         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
7502         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
7503         to RTL_CONST_CALL_P.
7504         * ipa-pure-const.c (pure_const_state_e): Added looping field.
7505         (check_decl, check_tree, check_call, scan_function): Initialize
7506         looping.
7507         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
7508         (static_execute): Set looping true for recursive functions.
7509         Undo setting state to IPA_NEITHER for recursive functions.
7510         * cse.c (cse_insn): 
7511         * ifcvt.c (noce_can_store_speculate_p): Changed
7512         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
7513         RTL_CONST_OR_PURE_CALL_P.
7514         * dse.c (scan_insn): Ditto.
7515         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
7516         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
7517         RTL_CONST_OR_PURE_CALL_P.
7518         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
7519         pure_call_p to RTL_CONST_CALL_P.
7520         * gimplify.c (gimplify_call_expr): Clear side effects for
7521         non-looping pure and constant calls.
7522         * calls.c (emit_call_1): Set rtl flags from ecf flags.
7523         (flags_from_decl_or_type): Set ecf flags from decl flags.
7524         (initialize_argument_information): Turn off
7525         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
7526         Change const to pure if callee_copies is true rather than just
7527         turning off const.
7528         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
7529         way of marking pure calls.
7530         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
7531         Remove hack that was supposed to fix pr7335 and remove old
7532         way of marking pure calls.
7533         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
7534         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
7535         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
7536         RTL_CONST_OR_PURE_CALL_P.
7537         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
7538         * loop-invariant.c (find_exits, find_invariant_bb): Changed
7539         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
7540         * sched-deps.c (schedule_analyze): Ditto.
7541         * rtl.h (struct rtx_def): Use call field, unchanging field, and
7542         return_val field of calls to represent pure and const function info.
7543         (CONST_OR_PURE_CALL_P): Deleted macro.
7544         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
7545         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
7546         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
7547         TREE_READONLY.
7548         * tree-optimize.c (execute_fixup_cfg): Added test for
7549         ECF_LOOPING_CONST_OR_PURE.
7550         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
7551         DECL_PURE_P.
7552         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
7553         effects for looping pure or const calls.
7554         (verify_gimple_expr): Added verification code. 
7555         * config/alpha/alpha.c (alpha_legitimize_address,
7556         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
7557         RTL_CONST_CALL_P.
7558         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
7559         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
7560         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
7561         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
7562         RTL_CONST_OR_PURE_CALL_P.
7563         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
7564         and const calls to be deleted.
7565
7566 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
7567
7568         PR target/35714
7569         * config/i386/mmx.md (mmx_subv2sf3): New expander.
7570         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
7571         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
7572         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
7573         to handle nonimmediate operands.
7574         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
7575         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
7576         to handle nonimmediate operands.
7577         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
7578         (mmx_pmulhrwv4hi3): New expander.  Use
7579         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7580         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
7581         (sse2_umulv1siv1di3): New expander.  Use
7582         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7583         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
7584         (mmx_eq<mode>3): New expander.  Use
7585         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7586         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
7587         (mmx_uavgv8qi3): New expander.  Use
7588         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7589         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
7590         (mmx_uavgv4hi3): New expander.  Use
7591         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7592
7593         * config/i386/sse.md
7594         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
7595         to handle nonimmediate operands.
7596         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
7597         to handle nonimmediate operands.
7598         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
7599         to handle nonimmediate operands.
7600         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
7601         to handle nonimmediate operands.
7602         (sse2_unpckhpd_exp): New expander.  Use
7603         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7604         (sse2_unpcklpd_exp): New expander.  Use
7605         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7606         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
7607         to handle nonimmediate operands.
7608         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
7609         to handle nonimmediate operands.
7610         (*sse2_<plusminus_insn><mode>3): Rename from
7611         sse2_<plusminus_insn><mode>3 insn pattern.
7612         (sse2_<plusminus_insn><mode>3): New expander.  Use
7613         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7614         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
7615         (sse2_umulv2siv2di3): New expander.  Use
7616         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7617         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
7618         (sse4_1_mulv2siv2di3): New expander.  Use
7619         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7620         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
7621         (sse2_pmaddwd): New expander.  Use
7622         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7623         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
7624         (sse2_eq<mode>3): New expander.  Use
7625         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7626         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
7627         (sse4_1_eqv2di3): New expander.  Use
7628         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7629         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
7630         (sse2_uavgv16qi3): New expander.  Use
7631         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7632         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
7633         (sse2_uavgv16qi3): New expander.  Use
7634         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7635         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
7636         (sse2_uavgv8hi3): New expander.  Use
7637         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7638         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
7639         (ssse3_pmulhrswv8hi3): New expander.  Use
7640         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7641         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
7642         (ssse3_pmulhrswv4hi3): New expander.  Use
7643         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7644
7645         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
7646         (<sse>_vmmul<mode>3): Ditto.
7647         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
7648         (divv2df3): Ditto.
7649         (ssse3_pmaddubsw128): Use register_operand for operand 1.
7650         (ssse3_pmaddubsw): Ditto.
7651
7652         * config/i386/i386.c (struct_builtin_description)
7653         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
7654         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
7655         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
7656         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
7657         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
7658         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
7659         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
7660         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
7661         (ix86_fixup_binary_operands): Assert that src1
7662         and src2 must have the same mode when swapped.
7663         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
7664         and ix86_binary_operator_ok.  Do not force operands in registers
7665         when optimizing.
7666
7667 2008-05-07  Jan Hubicka  <jh@suse.cz>
7668
7669         * cgraph.c (dump_cgraph_node): Update.
7670         * cgraph.h (cgraph_local_info): Break out inline summary.
7671         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
7672         hook.
7673         * ipa-inline (inline_summary): New accestor function.
7674         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
7675         cgraph_decide_inlining, compute_inline_parameters): Update.
7676         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
7677
7678 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
7679
7680         Cleanup ColdFire scheduling support and add V4 pipeline model.
7681
7682         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
7683         (define_attr cpu): Add cfv4 value.
7684         (define_attr type, define_attr type1): Merge into a single 'type'
7685         attribute.  Update all uses.
7686         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
7687         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
7688         Update all uses.
7689         (define_attr opx_mem, define_attr opy_mem): Remove.
7690         (define_attr op_mem): Clean up, update comment.
7691         (define_attr size): Use specific values instead of general int.
7692         (define_attr guess, define_attr split): Remove.  Update all uses.
7693         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
7694         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
7695         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
7696         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
7697         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
7698         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
7699         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
7700         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
7701         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
7702         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
7703         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
7704         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
7705         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
7706         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
7707         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
7708         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
7709         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
7710         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
7711         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
7712         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
7713         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
7714         Update or set attributes.
7715         (stack_tie): New fake instruction.
7716
7717         * config/m68k/m68k.h (TUNE_CFV4): New macro.
7718         (m68k_sched_attr_size): Update declaration.
7719         (m68k_sched_attr_type2): Remove.
7720         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
7721         Declare new bypass predicates.
7722
7723         * config/m68k/m68k.c (m68k_sched_issue_rate,
7724         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
7725         implementations.
7726         (TARGET_SCHED_ISSUE_RATE,
7727         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
7728         (override_options): Handle scheduling for ColdFire V4 core.
7729         (m68k_expand_prologue): Emit stack_tie.
7730         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
7731         'OP_TYPE_FPN'.  Update all uses.
7732         (sched_guess_p): Remove.
7733         (sched_address_type): Handle symbolic addresses.
7734         (sched_get_operand): New static function.
7735         (sched_operand_type): Merge into sched_attr_op_type.
7736         (sched_attr_op_type): Handle FP registers, handle quick constants,
7737         update.
7738         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
7739         (m68k_sched_attr_size): Update.  Move logic to ...
7740         (sched_get_attr_size_int): New static function.
7741         (sched_get_opxy_mem_type): New static function.
7742         (m68k_sched_attr_op_mem): Update.
7743         (m68k_sched_attr_type2): Remove.
7744         (sched_cfv4_bypass_data): New static variable.
7745         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
7746         (m68k_sched_issue_rate): Implement scheduler hook.
7747         (struct _sched_ib: enabled_p): New field.
7748         (m68k_sched_variable_issue): Update.  Handle V4.
7749         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
7750         sched_dump_class_func_t, sched_dump_split_class,
7751         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
7752         sched_dump_dfa_class, m68k_sched_dump): Remove.
7753         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
7754         hook.
7755         (m68k_sched_init_global): Remove statisctics dumping, introduce
7756         sanity check that all instructions have pipeline reservations.  Handle
7757         ColdFire V4 core.
7758         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
7759         Handle ColdFire V4 core.
7760         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
7761         New static functions.
7762         (m68k_sched_address_bypass_p): New bypass predicate.
7763         (sched_get_indexed_address_scale): New static function.
7764         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
7765
7766         * cf.md: Update comments.
7767         (define_attr type2): Remove.  Use 'type' attribute instead.
7768         Update all uses.
7769         (cf_ib): Rename to cfv123_ib.  Update all uses.
7770         (cf_oep): Rename to cfv123_oep.  Update all uses.
7771         (cf_chr): Rename to cfv123_chr.  Update all uses.
7772         (cf_mem): Rename to cfv123_mem.  Update all uses.
7773         (cf_mac): Move to more appropriate place.
7774         (cfv123_guess): New automaton and cpu_unit.
7775         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
7776         Update uses of 'size' attribute.  Handle before reload scheduling.
7777         (cfv123_guess): New dummy reservation for unhandled instructions.
7778         (cfv4_*): Pipeline description of ColdFire V4 core.
7779         (ignore): New reservation to handle 'ignore' type.
7780
7781 2008-05-07  Ian Lance Taylor  <iant@google.com>
7782
7783         PR middle-end/36013
7784         * gimplify.c (find_single_pointer_decl_1): Don't look through
7785         indirections.
7786         (find_single_pointer_decl): Adjust comments.
7787
7788 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
7789
7790         PR middle-end/36137
7791         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
7792         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
7793
7794         PR middle-end/36106
7795         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
7796         integral type rather than floating point, then VIEW_CONVERT_EXPR
7797         to the floating point type.
7798
7799 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
7800
7801         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
7802         TFmode op0 to register.
7803
7804 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
7805
7806         * c-decl.c (grokdeclarator): Comment typo.
7807
7808 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
7809
7810         * tree-flow.h: Remove prototype for computed_goto_p.
7811         * tree-cfg.c (computed_goto_p): Make static.
7812
7813 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
7814
7815         PR target/35657
7816         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
7817         (contains_aligned_value_p): This.  Handle _Decimal128.
7818         (ix86_function_arg_boundary): Only align _Decimal128 to its
7819         natural boundary and handle it properly.
7820
7821 2008-05-06  Martin Jambor  <mjambor@suse.cz>
7822
7823         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
7824         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
7825         (ipcp_method_set_orig_node): Removed.
7826         (ipcp_cval_get_cvalue_type): Removed.
7827         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
7828         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
7829         (ipcp_cval_set_cvalue_type): Removed.
7830         (ipcp_cval_get_cvalue): Removed.
7831         (ipcp_cval_set_cvalue): Removed.
7832         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
7833         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
7834         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
7835         (ipcp_cval_meet): Renamed to ipa_lattice_meet
7836         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
7837         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
7838         (ipcp_get_ith_lattice): Changed parameters.
7839         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
7840         (ipcp_lattice_from_jfunc): Changed parameters.
7841         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
7842         (ipcp_method_cval_print): Added temporary variable info.
7843         (ipcp_redirect): Removed already unused local variable caller.
7844         (ipcp_redirect): New temporary variable orig_callee_info
7845         (ipcp_redirect): Removed newly unused local variable callee.
7846         (ipcp_redirect): Removed (a bit confusing) local variable type.
7847         (ipcp_insert_stage): Added local variable info.
7848         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
7849         renamed too
7850         (ipcp_formal_create): Removed.
7851         (ipcp_method_cval_set): Removed.
7852         (ipcp_propagate_stage): Renamed lattice variables.
7853         (ipcp_method_cval_set_cvalue_type): Removed.
7854         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
7855         (ipcp_print_all_lattices): Changed printed strings to refer to 
7856         lattices rather than cvals.
7857         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
7858         (ipcp_propagate_const): Changed formal parameters.
7859         (build_const_val): Changed formal parameters.
7860         (ipcp_insert_stage): Removed useless variable cvalue
7861         (build_const_val): Changed formal parameters.
7862         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
7863         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
7864         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
7865         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
7866         (ipcp_print_func_profile_counts): Changed string from "method" to 
7867         "function"
7868         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
7869         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
7870         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
7871         (ipcp_structures_print): Renamed to ipcp_print_all_structures
7872         (ipcp_profile_print): Renamed to ipcp_print_profile_data
7873         (ipcp_lat_is_const): Changed parameters and made inline.
7874         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
7875         (ipcp_redirect): Renamed to ipcp_need_redirect_p
7876         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
7877         the predicate condition directly
7878         (ipcp_propagate_stage): Added local variable args. Removed local
7879         variable callee.  (Both are mere code simplifications.)
7880         (ipcp_method_dont_insert_const): Renamed to
7881         ipcp_node_not_modifiable_p.
7882         (ipcp_node_not_modifiable_p): Made inline.
7883         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
7884         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
7885         (ipcp_print_all_lattices): Removed variable cvalue
7886         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
7887         Updated comments.
7888
7889 2008-05-06  Olivier Hainque  <hainque@adacore.com>
7890
7891         * tree-sra.c (try_instantiate_multiple_fields): Early return
7892         if field has POINTER_TYPE.
7893
7894 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
7895
7896         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
7897         by using 'q' specifier for instruction.
7898         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
7899
7900 2008-05-06  Anatoly Sokolov <aesok@post.ru>
7901
7902         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
7903         Change mode of zero_extract from QImode to HImode.
7904         (sign bit tests peepholes): (Ditto.).
7905
7906 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
7907
7908         * config/i386/mmx.md: Remove double backslashes from asm templates.
7909         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
7910         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
7911         to handle nonimmediate operands.
7912         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
7913         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
7914         to handle nonimmediate operands.
7915         (*mmx_<code>v2sf3_finite): New insn pattern.
7916         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
7917         (mmx_<code>v2sf3): New expander.  Use
7918         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7919         (mmx_<plusminus_insn><mode>3): New expander.  Use
7920         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7921         (*mmx_<plusminus_insn><mode>3): New insn pattern.
7922         (mmx_add<mode>3): Removed.
7923         (mmx_ssadd<mode>3): Ditto.
7924         (mmx_usadd<mode>3): Ditto.
7925         (mmx_sub<mode>3): Ditto.
7926         (mmx_sssub<mode>3): Ditto.
7927         (mmx_ussub<mode>3): Ditto.
7928         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
7929         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
7930         to handle nonimmediate operands.
7931         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
7932         insn pattern.
7933         (mmx_smulv4hi3_highpart): New expander.  Use
7934         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7935         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
7936         insn pattern.
7937         (mmx_umulv4hi3_highpart): New expander.  Use
7938         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7939         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
7940         (mmx_<code>v4hi3): New expander.  Use
7941         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7942         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
7943         (mmx_<code>v8qi3): New expander.  Use
7944         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7945         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
7946         (mmx_<code><mode>3): New expander.  Use
7947         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7948
7949 2008-05-05  Jan Hubicka  <jh@suse.cz>
7950
7951         PR tree-optimization/36118
7952         * passes.c (pass_init_dump_file): Fix dump header.
7953
7954 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7955
7956         PR middle-end/36141
7957         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
7958         VCE for function decls.
7959
7960 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
7961
7962         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
7963
7964 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
7965
7966         * config/i386/i386.md (sat_plusminus): New.
7967         (plusminus_insn): Likewise.
7968         (plusminus_mnemonic): Likewise.
7969         (addsub): Removed.
7970         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
7971         (*<addsub><mode>3_cc_overflow): Renamed to ...
7972         (*<plusminus_insn><mode>3_cc_overflow): This.
7973         (*<addsub>si3_zext_cc_overflow): Renamed to ...
7974         (*<plusminus_insn>si3_zext_cc_overflow): This.
7975
7976         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
7977         (<plusminus_insn><mode>3): This.
7978         (*<addsub><mode>3): Renamed to ...
7979         (*<plusminus_insn><mode>3): This.
7980         (<sse>_vm<addsub><mode>3): Renamed to ...
7981         (<sse>_vm<plusminus_insn><mode>3): This.
7982         (sse3_h<addsub>v4sf3): Renamed to ...
7983         (sse3_h<plusminus_insn>v4sf3): This.
7984         (sse3_h<addsub>v2df3): Renamed to ...
7985         (sse3_h<plusminus_insn>v2df3): This.
7986         (<plusminus_insn><mode>3): New.
7987         (*<plusminus_insn><mode>3): Likewise.
7988         (sse2_<plusminus_insn><mode>3): Likewise.
7989         (add<mode>): Removed.
7990         (*add<mode>3): Likewise.
7991         (sse2_ssadd<mode>3): Likewise.
7992         (sse2_usadd<mode>3): Likewise.
7993         (sub<mode>3): Likewise.
7994         (*sub<mode>3): Likewise.
7995         (sse2_sssub<mode>3): Likewise.
7996         (sse2_ussub<mode>3): Likewise.
7997
7998 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
7999
8000         * gthr-single.h: Add in required interface elements as per gthr.h.
8001         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
8002         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
8003         Generalize UNUSED macro. 
8004         (__gthread_once): Add.
8005         (__gthread_key_create): Add.
8006         (__gthread_key_delete): Add.
8007         (__gthread_getspecific): Add.
8008         (__gthread_setspecific): Add.
8009         
8010 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
8011
8012         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
8013         the same size types for the indirect reference on the rhs, then
8014         create a VCE.
8015
8016 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
8017
8018         * config/i386/i386.md
8019         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
8020         one insn template instead of template series.
8021         (*xordi_1_rex64): Ditto.
8022         (*xordi_2_rex64): Ditto.
8023
8024 2008-05-05  Ira Rosen  <irar@il.ibm.com>
8025
8026         PR tree-optimization/36119
8027         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
8028         in case of SLP.
8029
8030 2008-06-04  Jan Hubicka  <jh@suse.cz>
8031
8032         tree-optimization/36100
8033         * tree-pass.h (pass_O0_always_inline): Declare.
8034         * ipa-inline.c (inline_transform): Remove dead code.
8035         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
8036         pass_O0_always_inline): New.
8037         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
8038
8039 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
8040
8041         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
8042         mnemonic in this_param move for TARGET_64BIT.
8043
8044 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
8045
8046         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
8047         (*strmovsi_rex_1): Ditto.
8048         (*strsetsi_1): Ditto.
8049         (*strsetsi_rex_1): Ditto.
8050
8051         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
8052         adddicc expanders using SWI mode iterator.
8053
8054 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
8055
8056         PR target/36121
8057         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
8058         argument handling.
8059
8060 2008-05-04  David S. Miller  <davem@davemloft.net>
8061
8062         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
8063         (sparc*-*-linux*): Use linux.h in tm_file.
8064         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
8065         compiler defaulting to 32-bit.
8066         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
8067         no longer needed.
8068         * config/sparc/linux.h: Remove definitions now obtained
8069         properly from linux.h
8070         * config/sparc/linux64.h: Likewise.
8071         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
8072         don't want this setting for 32-bit builds in a biarch compiler.
8073         * doc/install.texi: Add sparc-linux to list of targets
8074         supporting --enable-targets=all.
8075
8076 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
8077
8078         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
8079
8080 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
8081
8082         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
8083         after V4SI_FTYPE_V8HI.
8084         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
8085         case V4SI_FTYPE_V2DF.
8086
8087 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
8088
8089         * doc/invoke.texi (max-flow-memory-locations): Removed.
8090         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
8091         
8092 2008-05-03  Richard Guenther  <rguenther@suse.de>
8093
8094         PR middle-end/34973
8095         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
8096
8097 2008-05-02  David S. Miller  <davem@davemloft.net>
8098
8099         * config.gcc (need_64bit_hwint): Document libcpp dependency.
8100
8101 2008-05-02  Simon Baldwin <simonb@google.com>
8102
8103         PR bootstrap/36108
8104         * c-common.h (warn_array_subscript_range): Removed.
8105         * c-common.c (warn_array_subscript_range): Ditto.
8106         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
8107         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
8108
8109 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
8110
8111         * config/i386/i386.c (ix86_special_builtin_type): New.
8112         (bdesc_special_args): Likewise.
8113         (ix86_expand_special_args_builtin): Likewise.
8114         (ix86_init_mmx_sse_builtins): Updated.
8115         (ix86_expand_builtin): Updated.
8116         (ix86_expand_store_builtin): Removed.
8117         (ix86_expand_unop_builtin): Likewise.
8118
8119         * config/i386/mm3dnow.h (__v2sf): Moved to ...
8120         * config/i386/mmintrin.h (__v2sf): Here.
8121
8122         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
8123         const __v2sf.
8124         (_mm_loadl_pi): Likewise.
8125         (_mm_storeh_pi): Replace __v2si with __v2sf.
8126         (_mm_storel_pi): Likewise.
8127
8128         * doc/extend.texi: Correct __builtin_ia32_loadhps,
8129         __builtin_ia32_loadlps, __builtin_ia32_storehps,
8130         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
8131         __builtin_ia32_loadlpd.
8132
8133 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
8134
8135         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
8136         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
8137         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
8138         (ix86_init_mmx_sse_builtins): Updated.
8139         (ix86_expand_args_builtin): Likewise.
8140         (ix86_expand_builtin): Likewise.
8141         (ix86_expand_unop1_builtin): Renamed to ...
8142         (ix86_expand_unop_vec_merge_builtin): This.
8143
8144 2008-05-01  Jan Hubicka  <jh@suse.cz>
8145
8146         PR bootstrap/36100
8147         * ipa-inline.c (inline_generate_summary): Make static.
8148         (inline_transform): Do not call inlining at -O0; make static.
8149         * passes.c (execute_todo): Add sanity check.
8150         (execute_one_ipa_transform_pass): Execute proper flags.
8151
8152 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
8153
8154         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
8155         (DECL_NONADDRESSABLE_P): Likewise.
8156         * alias.c (record_component_aliases): Fix comment.
8157
8158 2008-05-01  Simon Baldwin <simonb@google.com>
8159
8160         * c-common.h (warn_array_subscript_range): New function.
8161         * c-common.c (warn_array_subscript_range): Ditto.
8162         * tree-vrp.c (check_array_ref): Corrected code to agree with
8163         comment, ignoring only arrays of size 0 or size 1.
8164         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
8165
8166 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
8167
8168         * config/i386/i386.c (ix86_builtin_type): Replace
8169         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
8170         (bdesc_args): Updated.
8171         (ix86_init_mmx_sse_builtins): Likewise.
8172         (ix86_expand_args_builtin): Likewise.
8173
8174         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
8175         with __v1di.
8176
8177         * doc/extend.texi: Correct __builtin_ia32_palignr.
8178
8179 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
8180
8181         PR target/36095
8182         * config/i386/i386.c (bdesc_crc32): Removed.
8183         (ix86_expand_crc32): Likewise.
8184         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
8185         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
8186         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
8187         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
8188         UINT_FTYPE_UINT_UCHAR.
8189         (bdesc_args): Updated. Add crc32 builtins.
8190         (ix86_init_mmx_sse_builtins): Updated.
8191         (ix86_expand_args_builtin): Updated to support subreg.
8192
8193         * doc/extend.texi: Correct __builtin_ia32_crc32di.
8194
8195 2008-05-01  Jan Hubicka  <jh@suse.cz>
8196
8197         * tree-pass.h (opt_pass): Add IPA_PASS.
8198         (varpool_node, cgraph_node): Forward declare.
8199         (ipa_opt_pass): Define.
8200         (pass_ipa_inline): Turn into ipa_opt_pass.
8201         (pass_apply_inline): Remove.
8202         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
8203         (apply_inline): Turn into ....
8204         (inline_transform): ... this one.
8205         (inline_generate_summary): New function.
8206         (pass_apply_inline): Remove.
8207         * function.h (ipa_opt_pass): Forward declare structure; typedef;
8208         vector.
8209         (struct function): Add ipa_transforms_to_apply.
8210         * passes.c (register_one_dump_file): Work on IPA_PASS.
8211         (init_optimization_passes): Remove pass_inline_parameters and
8212         pass_apply_inline.
8213         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
8214         (execute_one_pass) ... here; apply transforms when possible.
8215         (add_ipa_transform_pass, execute_ipa_summary_asses,
8216         execute_one_ipa_transform_pass): New.
8217         (execute_ipa_pass_list): Update for IPA_PASS type.
8218
8219 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
8220
8221         * config/i386/i386.c (ix86_builtin_type): Add
8222         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
8223         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
8224         (bdesc_args): Add SSE4a builtins.
8225         (ix86_init_mmx_sse_builtins): Updated.
8226         (ix86_expand_args_builtin): Likewise.
8227         (ix86_expand_builtin): Likewise.
8228
8229 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
8230
8231         * config/i386/i386.c (ix86_builtin_type): Add
8232         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
8233         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
8234         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
8235         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
8236         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
8237         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
8238         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
8239         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
8240         and DI_FTYPE_DI_DI_INT.
8241         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
8242         (ix86_init_mmx_sse_builtins): Updated.
8243         (ix86_expand_args_builtin): Likewise.
8244         (ix86_expand_builtin): Likewise.
8245         (ix86_expand_binop_imm_builtin): Removed.
8246
8247         * doc/extend.texi: Correct __builtin_ia32_palignr128.
8248
8249 2008-04-30  Richard Guenther  <rguenther@suse.de>
8250
8251         PR tree-optimization/32921
8252         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
8253
8254 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
8255
8256         * config/arm/arm.c (arm_unwind_emit): Use
8257         crtl->all_throwers_are_sibcalls instead of
8258         cfun->all_throwers_are_sibcalls.
8259         (arm_output_fn_unwind): Likewise.
8260         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
8261         instead of cfun->uses_pic_offset_table.
8262         (frv_expand_prologue): Likewise.
8263         (frv_frame_pointer_required): Likewise.
8264         (frv_expand_fdpic_call): Likewise.
8265         (frv_emit_movsi): Likewise.
8266         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
8267         cfun->returns_pcc_struct instead of
8268         current_function_returns_pcc_struct.
8269         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
8270         instead of cfun->calls_eh_return.
8271         (m32c_pushm_popm): Likewise.
8272         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
8273         "extern" declaration.
8274
8275 2008-04-30  Richard Guenther  <rguenther@suse.de>
8276
8277         PR tree-optimization/21636
8278         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
8279         constant address.
8280         (evaluate_stmt): Print the likely value.
8281         (ccp_visit_stmt): Avoid excessive vertical spacing.
8282
8283 2008-04-30  Rafael Espindola  <espindola@google.com>
8284
8285         * builtins.c (fold_call_expr): Return realret.
8286         * tree-ssa-threadedge.c
8287         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
8288         __builtin_object_size.
8289
8290 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
8291
8292         * gcc.c (wrapper_string): New variable.
8293         (insert_wrapper): New function.
8294         (execute): New option -wrapper.
8295         * doc/invoke.texi (Overall Options): New driver option -wrapper.
8296
8297 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
8298
8299         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
8300         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
8301         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
8302         from...
8303         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
8304         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
8305         config/rs6000/e500crtres64gprctr.asm,
8306         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
8307         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
8308         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
8309         config/rs6000/e500crtsav64gprctr.asm,
8310         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
8311         config/rs6000/e500crtsavg64gprctr.asm: New files.
8312         * config/rs6000/t-ppccomm: Add build rules for new files.
8313         (LIB2FUNCS_STATIC_EXTRA): Add new files.
8314         * config/rs6000/t-netbsd: Add build rules for new files.
8315         (LIB2FUNCS_STATIC_EXTRA): New variable.
8316         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
8317         (CRTSAVRES_DEFAULT_SPEC): Likewise.
8318         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
8319
8320 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
8321
8322         * config/i386/i386.c (ix86_builtin_type): Add
8323         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
8324         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
8325         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
8326         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
8327         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
8328         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
8329         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
8330         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
8331         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
8332         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
8333         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
8334         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
8335         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
8336         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
8337         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
8338         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
8339         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
8340         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
8341         V1DI_FTYPE_V2SI_V2SI.
8342         (bdesc_2arg): Moved to ...
8343         (bdesc_args): Here.
8344         (ix86_init_mmx_sse_builtins): Updated.
8345         (ix86_expand_args_builtin): Updated.  Take a pointer
8346         to const struct builtin_description.  Handle comparison
8347         builtin functions.
8348         (ix86_expand_sse_compare): Take a new argument for swapping operands.
8349         (ix86_expand_builtin): Updated.
8350
8351         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
8352         (ssse3_pmaddubsw128): This.
8353         (ssse3_pmaddubswv4hi3): Renamed to ...
8354         (ssse3_pmaddubsw): This.
8355
8356         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
8357         (__builtin_ia32_packssdw128): Likewise.
8358         (__builtin_ia32_packuswb128): Likewise.
8359         (__builtin_ia32_pmaddubsw): Likewise.
8360         (__builtin_ia32_pmaddubsw128): Likewise.
8361
8362 2008-04-30  Richard Guenther  <rguenther@suse.de>
8363
8364         PR tree-optimization/14847
8365         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
8366         (recognize_bits_test): Use it.
8367         (recognize_single_bit_test): Likewise.
8368
8369 2008-04-30  Martin Jambor  <mjambor@suse.cz>
8370
8371         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
8372         instead of setting number of formal parameters to zero.
8373         (ipcp_init_stage): Do not set the number of actual parameters to zero 
8374         either.
8375         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
8376         which are called with variable number of arguments.
8377         (ipcp_insert_stage): Explicitely skipping all nodes which are
8378         called with variable number of arguments.
8379         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
8380         number of parameters.
8381
8382         * ipa-prop.h (struct ipa_node_params): Added flag
8383         called_with_var_arguments
8384         (ipa_set_param_count): Added.  Changed sole setter to use it.
8385         (ipa_get_param_count): Added.  All readers of param_count
8386         converted to use it instead.
8387         (ipa_set_called_with_variable_arg): Added.
8388         (ipa_is_called_with_var_arguments): Added.
8389         (ipa_get_ith_param): Added.  All readers of param_decls converted
8390         to use it instead.
8391         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
8392         changed to use it. 
8393         (ipa_get_cs_argument_count): Added, all readers of argument_count
8394         changed to cal it.
8395         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
8396         to use it.
8397         
8398         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
8399         (struct ipcp_lattice): Renamed cval_type to type
8400         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
8401
8402         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
8403         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
8404         (ipcp_insert_stage): Changed the type of variable cvalue to tree
8405         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
8406         (build_const_val): Changed the type of parameter cvalue to tree
8407         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
8408         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
8409         
8410         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
8411         constant 
8412
8413         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
8414         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
8415         (ipa_add_method): Renamed to ipa_push_func_to_list
8416         (ipa_remove_method): Renamed to ipa_pop_func_from_list
8417         (ipa_callsite_param_count): Removed.
8418         (ipa_callsite_param_count_set): Removed.
8419         (ipa_callsite_param): Removed.
8420         (ipa_callsite_callee): Removed.
8421         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
8422         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
8423         (ipa_method_formal_count): Removed.
8424         (ipa_method_formal_count_set): Removed.
8425         (ipa_method_get_tree): Removed.
8426         (ipa_method_tree_map_create): Removed.
8427         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
8428         (ipa_create_param_decls_array): Creates the array itself
8429         (ipa_create_param_decls_array): Temporary variable info instead of 
8430         a few dereferences.
8431         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
8432         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
8433         (get_type): Removed.
8434         (ipa_jf_get_info_type): Removed.
8435         (ipa_node_create): Renamed to ipa_create_node_params
8436         (ipa_free): Renamed to ipa_free_all_node_params
8437         (ipa_nodes_create): Renamed to ipa_create_all_node_params
8438         (ipa_edges_create): Renamed to ipa_create_all_edge_args
8439         (ipa_edges_free): Renamed to ipa_free_all_edge_args
8440         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
8441         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
8442         ipa_free_all_edge_args
8443         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
8444         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
8445         (ipa_create_methodlist_node): Removed.
8446         (ipa_methodlist_method): Removed.
8447         (ipa_methodlist_method_set): Removed.
8448         (ipa_methodlist_next_method): Removed.
8449         (ipa_methodlist_next_method_set): Removed.
8450         (ipa_method_is_modified): Removed.
8451         (ipa_method_modify_create): Removed.
8452         (ipa_method_modify_init): Temporary variable info instead of a few 
8453         dereferences.
8454         (ipa_detect_param_modifications): Temporary variable info instead of 
8455         a few dereferences.
8456         (ipa_compute_jump_functions): Temporary variable info instead of 
8457         a few dereferences.
8458         (ipa_method_modify_set): Removed.
8459         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
8460         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
8461         than craph_node as the first parameter.
8462         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
8463         (ipa_method_modify_init): Removed.
8464         (ipa_compute_jump_functions): Added a temp variable instead of 
8465         repeatadly dereferencing the cgraph_edge.aux pointer
8466         (ipa_callsite_param_set_type): Removed.
8467         (ipa_compute_jump_functions): i renamed to index and moved to 
8468         an inner block
8469         (ipa_callsite_param_set_info_type_formal): Removed.
8470         (ipa_callsite_param_set_info_type): Removed.
8471         (ipa_callsite_param_map_create): Removed.
8472         (ipa_callsite_tree): Removed.
8473         (ipa_callsite_caller): Removed.
8474         (ipa_pop_func_from_list): return_method removed to return_func
8475
8476         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
8477         prefixed all values with IPA_. Changed all users.
8478         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
8479         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
8480         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
8481         (union parameter_info): Renamed to jump_func_value.
8482         (union jump_func_value): Renamed value to constant
8483         (struct ipa_jump_func): Renamed info_type to value
8484         (struct ipa_node): Renamed to ipa_node_params
8485         (struct ipa_node_params): Renamed ipa_arg_num to param_count
8486         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
8487         (struct ipa_node_params): Renamed ipa_mod to modified_flags
8488         (struct ipa_edge): Renamed to ipa_edge_args
8489         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
8490         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
8491         (struct ipa_methodlist): Renamed to ipa_func_list
8492         (struct ipa_func_list): method_p renamed to node, next_method
8493         renamed to next
8494         (ipa_methodlist_p): Removed, switched all users to struct pointer
8495         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
8496
8497 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
8498
8499         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
8500         (rs6000_emit_epilogue): Use backchain to restore only when we
8501         have a large frame.  Make use of frame pointer to restore if we
8502         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
8503
8504 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
8505
8506         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
8507         Add mode to zero_extract.
8508         (sign bit tests peepholes): (Ditto.).
8509
8510 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
8511
8512         * config/i386/i386.c (ix86_builtins): Replace Prescott New
8513         Instructions in comments with SSE3.
8514         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
8515         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
8516         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
8517         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
8518         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
8519         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
8520         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
8521         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
8522         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
8523         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
8524         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
8525         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
8526         (bdesc_sse_args): Renamed to ...
8527         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
8528         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
8529         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
8530         IX86_BUILTIN_FABSQ.
8531         (bdesc_1arg): Moved to ...
8532         (bdesc_args): Here.
8533         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
8534         Instructions in comments with SSE3.
8535         (ix86_expand_sse_operands_builtin): Renamed to ...
8536         (ix86_expand_args_builtin): This.  Updated.
8537         (ix86_expand_unop1_builtin): Update comments.
8538         (ix86_expand_builtin): Updated.
8539
8540 2008-04-29  Richard Guenther  <rguenther@suse.de>
8541
8542         PR tree-optimization/36078
8543         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
8544         Update virtual SSA form after cleaning up the CFG.
8545
8546 2008-04-29  Richard Guenther  <rguenther@suse.de>
8547
8548         PR middle-end/15255
8549         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
8550
8551 2008-04-29  Richard Guenther  <rguenther@suse.de>
8552
8553         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
8554         (compute_may_aliases): Do not call finalize_ref_all_pointers.
8555         (compute_flow_insensitive_aliasing): Do not treat
8556         PTR_IS_REF_ALL pointers special.
8557         (get_smt_for): Likewise.
8558         (may_alias_p): Re-structure.
8559         (is_escape_site): A ref-all pointer conversion is not an escape site.
8560         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
8561         PTR_IS_REF_ALL pointers special.
8562         * tree-ssa-structalias.h (struct alias_info): Remove
8563         ref_all_symbol_mem_tag field.
8564         (PTR_IS_REF_ALL): Remove.
8565
8566 2008-04-29  Richard Guenther  <rguenther@suse.de>
8567
8568         PR middle-end/36077
8569         * fold-const.c (extract_muldiv_1): In combining division constants
8570         make sure to never overflow.
8571
8572 2008-04-29  Nick Clifton  <nickc@redhat.com>
8573
8574         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
8575
8576 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8577
8578         PR bootstrap/35169
8579         * optc-gen.awk: Work around HP-UX/IA awk bug.
8580
8581 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
8582
8583         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
8584         2008-04-25 commit.
8585
8586 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
8587
8588         PR target/36073
8589         * config/i386/i386.md
8590         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
8591         Change operand 1 predicate to nonimmediate_operand.
8592
8593 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
8594
8595         PR debug/36060
8596         * dwarf2out.c (struct die_struct): Mark as chain_circular through
8597         die_sub field.
8598         * gengtype.c (walk_type, write_func_for_structure): Handle
8599         chain_circular.
8600         * doc/gty.texi: Document chain_circular.
8601
8602 2008-04-28  Richard Guenther  <rguenther@suse.de>
8603
8604         PR tree-optimization/36066
8605         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
8606         SCEV and loop.
8607
8608 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
8609
8610         PR target/36064
8611         * config/i386/i386.md
8612         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
8613         Use match_scratch instead of match_operand for operands 3 and 4.
8614
8615 2008-04-27  Richard Guenther  <rguenther@suse.de>
8616
8617         PR tree-optimization/18754
8618         PR tree-optimization/34223
8619         * tree-pass.h (pass_complete_unrolli): Declare.
8620         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
8621         loop size before and after unconditionally of UL_NO_GROWTH in effect.
8622         Rewrite loop into loop closed SSA form if it is not already.
8623         (tree_unroll_loops_completely): Re-structure to iterate over
8624         innermost loops with intermediate CFG cleanups.
8625         Unroll outermost loops only if requested or the code does not grow
8626         doing so.
8627         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
8628         loops are available.
8629         (tree_vectorize): Instead do so here.
8630         (tree_complete_unroll): Also unroll outermost loops.
8631         (tree_complete_unroll_inner): New function.
8632         (gate_tree_complete_unroll_inner): Likewise.
8633         (pass_complete_unrolli): New pass.
8634         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
8635         uses outside of the loop.
8636         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
8637         form if it is available.  
8638         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
8639         * passes.c (init_optimization_passes): Schedule complete inner
8640         loop unrolling pass before the first CCP pass after final inlining.
8641
8642 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
8643
8644         * targhooks.h (default_emutls_var_fields,
8645         default_emutls_var_init): Declare.
8646         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
8647         * target.h (struct gcc_target): Add struct emutls member.
8648         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
8649         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
8650         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
8651         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
8652         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
8653         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
8654         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
8655         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
8656         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
8657         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
8658         emit debug information.
8659         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
8660         * varasm.c: Include targhooks.h.
8661         (emutls_object_section, emutls_tmpl_section): New.
8662         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
8663         (EMUTLS_SEPARATOR): New.
8664         (prefix_name): New.
8665         (get_emutls_object_name): New.
8666         (default_emutls_var_fields): New, broken out of ...
8667         (get_emutls_object_type): ... here.  Adjust to use target hooks.
8668         (get_emutls_init_templ_addr): Adjust to use target hooks.
8669         (emutls_decl): Adjust to use target hooks.
8670         (emutls_finish): Likewise.
8671         (default_emutls_var_init): New, broken out of ...
8672         (assemble_variable): ... here.  Adjust to use target hooks.
8673         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
8674         SECCAT_EMUTLS_TMPL.
8675         * c-common.c (handle_section_attribute): Prevent overriding
8676         sections for emulated tls with special sections.
8677         * config/i386/i386.c (x86_64_elf_select_section): Add
8678         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
8679         (x86_64_elf_unique_section): Likewise.
8680         * config/vxworks.c: Include tree.h.
8681         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
8682         (vxworks_override_options): Set TLS scheme.
8683         * doc/tm.texi (Emulated TLS): New node.
8684
8685 2008-04-26  Simon Baldwin <simonb@google.com>
8686
8687         PR c/35652
8688         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
8689         with propagated string constants.
8690
8691 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
8692
8693         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
8694         constraint for operand 2 when operand 0 is memory operand.
8695         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
8696         operand 0 is memory operand.
8697         (fix_trunc<mode>_i387_with_temp): Ditto.
8698         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
8699         operand 2 when operand 1 is memory operand.
8700         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
8701         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
8702         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
8703         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
8704         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
8705         operands 2,3 and 4 when operand 1 is memory operand.
8706         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
8707         is memory operand.
8708         (fistdi2_floor_with_temp): Ditto.
8709         (fist<mode>2_floor_with_temp): Ditto.
8710         (fistdi2_ceil_with_temp): Ditto.
8711         (fist<mode>2_ceil_with_temp): Ditto.
8712         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
8713
8714 2008-04-26  David Daney  <ddaney@avtrex.com>
8715
8716         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
8717         unspec_volitile.
8718         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
8719         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
8720         UNSPEC_UPDATE_GOT_VERSION): Renumber.
8721         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
8722         (compare_and_swap_12): New insn.
8723         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
8724         * config/mips/mips.c (mips_force_binary): New function.
8725         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
8726         (mips_expand_compare_and_swap_12): New function.
8727         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
8728
8729 2008-04-25  Jan Hubicka  <jh@suse.cz>
8730
8731         PR testsuite/35843
8732         * cfgexpand.c (pass_expand): Turn into RTL pass.
8733         * passes.c (execute_one_pass): Do pass typechecking after execution.
8734         * tree-pass.h (pass_expand): Turn into RTL pass.
8735
8736         * function.h (struct rtl_data): Move here fields
8737         accesses_prior_frames, calls_eh_return, saves_all_registers,
8738         has_nonlocal_goto, has_asm_statement, is_thunk,
8739         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
8740         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
8741         arg_pointer_save_area_init from struct function; turn into bool.
8742         (struct function): Move
8743         calls_eh_return, saves_all_registers, has_nonlocal_goto,
8744         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
8745         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
8746         tail_call_emit, arg_pointer_save_area_init
8747         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
8748         (current_function_returns_struct, current_function_returns_pcc_struct,
8749         current_function_calls_setjmp, current_function_calls_alloca,
8750         current_function_accesses_prior_frames,
8751         current_function_calls_eh_return, current_function_is_thunk,
8752         current_function_stdarg, current_function_profile,
8753         current_function_limit_stack, current_function_uses_pic_offset_table,
8754         current_function_uses_const_pool, current_function_has_nonlocal_label,
8755         current_function_saves_all_registers,
8756         current_function_has_nonlocal_goto,
8757         current_function_has_asm_statement): Remove accesor macros.
8758         * ra-conflict.c (global_conflicts): Update.
8759         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
8760         (suitable_for_tail_call_opt_p): Update.
8761         * builtins.c (expand_builtin_return_addr): Update.
8762         (expand_builtin_setjmp_setup): Update.
8763         (expand_builtin_nonlocal_goto): Update.
8764         * final.c (final_start_function): Update.
8765         (profile_function): Update.
8766         (leaf_function_p): Update.
8767         (only_leaf_regs_used): Update.
8768         * df-scan.c (df_get_exit_block_use_set): Update.
8769         * dojump.c (clear_pending_stack_adjust): Update.
8770         * tree-stdarg.c (gate_optimize_stdarg): Update.
8771         * gimple-low.c (lower_function_body): Update.
8772         * global.c (compute_regsets): Update.
8773         (global_alloc): Update.
8774         * dwarf2out.c (dwarf2out_begin_prologue): Update.
8775         * expr.c (expand_assignment): Update.
8776         * dse.c (dse_step0): Update.
8777         (dse_step1): Update.
8778         * c-decl.c (store_parm_decls): Update.
8779         * local-alloc.c (combine_regs): Update.
8780         (find_free_reg): Update.
8781         * function.c (assign_parms_augmented_arg_list): Update.
8782         (assign_parm_find_data_types): Update.
8783         (assign_parms): Update.
8784         (allocate_struct_function): Update.
8785         (expand_function_start): Update.
8786         (expand_function_end): Update.
8787         (get_arg_pointer_save_area): Update.
8788         (thread_prologue_and_epilogue_insns): Update.
8789         (rest_of_match_asm_constraints): Update.
8790         * stor-layout.c (variable_size): Update.
8791         * gcse.c (gcse_main): Update.
8792         (bypass_jumps): Update.
8793         * gimplify.c (gimplify_function_tree): Update.
8794         * calls.c (emit_call_1): Update.
8795         (expand_call): Update.
8796         * bt-load.c (compute_defs_uses_and_gen): Update.
8797         * except.c (sjlj_assign_call_site_values): Update.
8798         (sjlj_emit_function_enter): Update.
8799         (can_throw_external): Update.
8800         (set_nothrow_function_flags): Update.
8801         (expand_builtin_unwind_init): Update.
8802         (expand_eh_return): Update.
8803         (convert_to_eh_region_ranges): Update.
8804         (output_function_exception_table): Update.
8805         * emit-rtl.c (gen_tmp_stack_mem): Update.
8806         * cfgexpand.c (expand_used_vars): Update.
8807         (tree_expand_cfg): Update.
8808         * cfgcleanup.c (rest_of_handle_jump): Update.
8809         * explow.c (allocate_dynamic_stack_space): Update.
8810         * varasm.c (assemble_start_function): Update.
8811         (force_const_mem): Update.
8812         (mark_constant_pool): Update.
8813         * tree-optimize.c (tree_rest_of_compilation): Update.
8814         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
8815         * tree-cfg.c (notice_special_calls): Update.
8816         (is_ctrl_altering_stmt): Update.
8817         (tree_can_make_abnormal_goto): Update.
8818         (tree_purge_dead_abnormal_call_edges): Update.
8819         * config/alpha/predicates.md: Update.
8820         * config/alpha/alpha.c (alpha_sa_mask): Update.
8821         (alpha_sa_size): Update.
8822         (alpha_does_function_need_gp): Update.
8823         (alpha_expand_prologue): Update.
8824         (alpha_start_function): Update.
8825         (alpha_output_function_end_prologue): Update.
8826         (alpha_expand_epilogue): Update.
8827         * config/frv/frv.c (frv_stack_info): Update.
8828         (frv_expand_epilogue): Update.
8829         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
8830         (s390_register_info): Update.
8831         (s390_frame_info): Update.
8832         (s390_init_frame_layout): Update.
8833         (s390_can_eliminate): Update.
8834         (save_gprs): Update.
8835         * config/spu/spu.c (spu_split_immediate): Update.
8836         (need_to_save_reg): Update.
8837         (spu_expand_prologue): Update.
8838         (spu_expand_epilogue): Update.
8839         * config/sparc/sparc.md: Update.
8840         * config/sparc/sparc.c (eligible_for_return_delay): Update.
8841         (sparc_tls_got): Update.
8842         (legitimize_pic_address): Update.
8843         (sparc_emit_call_insn): Update.
8844         (sparc_expand_prologue): Update.
8845         (output_return): Update.
8846         (print_operand): Update.
8847         (sparc_function_ok_for_sibcall): Update.
8848         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
8849         * config/m32r/m32r.md: Update.
8850         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
8851         (m32r_compute_frame_size): Update.
8852         (m32r_expand_prologue): Update.
8853         (m32r_expand_epilogue): Update.
8854         (m32r_legitimize_pic_address): Update.
8855         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
8856         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
8857         * config/i386/i386.c (ix86_frame_pointer_required): Update.
8858         (gen_push): Update.
8859         (ix86_save_reg): Update.
8860         (ix86_compute_frame_layout): Update.
8861         (ix86_expand_prologue): Update.
8862         (ix86_expand_epilogue): Update.
8863         * config/sh/sh.c (output_stack_adjust): Update.
8864         (calc_live_regs): Update.
8865         (sh5_schedule_saves): Update.
8866         (sh_expand_prologue): Update.
8867         (sh_expand_epilogue): Update.
8868         (sh_setup_incoming_varargs): Update.
8869         (sh_allocate_initial_value): Update.
8870         (sh_get_pr_initial_val): Update.
8871         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
8872         * config/sh/sh.md (label:): Update.
8873         * config/avr/avr.c (out_movhi_mr_r): Update.
8874         * config/crx/crx.h (enum): Update.
8875         * config/xtensa/xtensa.h (along): Update.
8876         * config/stormy16/stormy16.c Update.
8877         (xstormy16_compute_stack_layout): Update.
8878         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
8879         (fr30_expand_prologue): Update.
8880         * config/cris/cris.c (cris_conditional_register_usage): Update.
8881         (cris_reg_saved_in_regsave_area): Update.
8882         (cris_initial_frame_pointer_offset): Update.
8883         (cris_simple_epilogue): Update.
8884         (cris_expand_prologue): Update.
8885         (cris_expand_epilogue): Update.
8886         (cris_expand_pic_call_address): Update.
8887         (cris_asm_output_symbol_ref): Update.
8888         (cris_asm_output_label_ref): Update.
8889         * config/cris/cris.md Update.
8890         * config/iq2000/iq2000.c (compute_frame_size): Update.
8891         (iq2000_expand_epilogue): Update.
8892         * config/mt/mt.h (save_direction): Update.
8893         * config/mn10300/mn10300.c (mn10300_function_value): Update.
8894         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
8895         (ia64_secondary_reload_class): Update.
8896         * config/m68k/m68k.c (m68k_save_reg): Update.
8897         (m68k_expand_prologue): Update.
8898         (m68k_expand_epilogue): Update.
8899         (legitimize_pic_address): Update.
8900         * config/rs6000/rs6000.c (rs6000_got_register): Update.
8901         (first_reg_to_save): Update.
8902         (first_altivec_reg_to_save): Update.
8903         (compute_vrsave_mask): Update.
8904         (compute_save_world_info): Update.
8905         (rs6000_stack_info): Update.
8906         (spe_func_has_64bit_regs_p): Update.
8907         (rs6000_ra_ever_killed): Update.
8908         (rs6000_emit_eh_reg_restore): Update.
8909         (rs6000_emit_allocate_stack): Update.
8910         (rs6000_emit_prologue): Update.
8911         (rs6000_emit_epilogue): Update.
8912         (rs6000_output_function_epilogue): Update.
8913         (output_profile_hook): Update.
8914         (rs6000_elf_declare_function_name): Update.
8915         * config/rs6000/rs6000.h (rs6000_args): Update.
8916         * config/rs6000/rs6000.md: Update.
8917         * config/mcore/mcore.c (mcore_expand_prolog): Update.
8918         * config/arc/arc.c (arc_output_function_epilogue): Update.
8919         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
8920         * config/darwin.c (machopic_function_base_name): Update.
8921         * config/score/score3.c (score3_compute_frame_size): Update.
8922         (rpush): Update.
8923         (rpop): Update.
8924         (score3_epilogue): Update.
8925         * config/score/score7.c (score7_compute_frame_size): Update.
8926         (score7_prologue): Update.
8927         (score7_epilogue): Update.
8928         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
8929         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
8930         * config/arm/arm.c (use_return_insn): Update.
8931         (require_pic_register): Update.
8932         (arm_load_pic_register): Update.
8933         (arm_compute_save_reg0_reg12_mask): Update.
8934         (arm_compute_save_reg_mask): Update.
8935         (thumb1_compute_save_reg_mask): Update.
8936         (output_return_instruction): Update.
8937         (arm_output_function_prologue): Update.
8938         (arm_output_epilogue): Update.
8939         (arm_get_frame_offsets): Update.
8940         (arm_expand_prologue): Update.
8941         (thumb_pushpop): Update.
8942         (thumb_exit): Update.
8943         (thumb1_expand_prologue): Update.
8944         (thumb1_expand_epilogue): Update.
8945         (arm_unwind_emit): Update.
8946         (arm_output_fn_unwind): Update.
8947         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
8948         * config/arm/arm.md: Update.
8949         * config/pa/pa.md: Update.
8950         * config/pa/pa.c (legitimize_pic_address): Update.
8951         (compute_frame_size): Update.
8952         (hppa_expand_prologue): Update.
8953         (hppa_expand_epilogue): Update.
8954         (borx_reg_operand): Update.
8955         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
8956         (HARD_REGNO_RENAME_OK): Update.
8957         * config/mips/mips.c (mips_global_pointer): Update.
8958         (mips_save_reg_p): Update.
8959         (mips_compute_frame_info): Update.
8960         (mips_frame_pointer_required): Update.
8961         (mips_expand_prologue): Update.
8962         (mips_expand_epilogue): Update.
8963         (mips_can_use_return_insn): Update.
8964         (mips_reorg_process_insns): Update.
8965         * config/v850/v850.c (compute_register_save_size): Update.
8966         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
8967         * config/mmix/mmix.c (along): Update.
8968         (mmix_expand_epilogue): Update.
8969         * config/bfin/bfin.c (legitimize_pic_address): Update.
8970         (must_save_p): Update.
8971         (stack_frame_needed_p): Update.
8972         (add_to_reg): Update.
8973         (bfin_expand_prologue): Update.
8974         * stmt.c (expand_asm_operands): Update.
8975         * reload1.c (reload): Update.
8976         (init_elim_table): Update.
8977
8978 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
8979         
8980         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
8981         
8982 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
8983
8984         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
8985         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
8986         (mov<mode>): Removed.
8987         (*movv4sf_internal): Likewise.
8988         (*movv2df_internal): Likewise.
8989
8990 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
8991
8992         * config.gcc (crx-*-elf): Remove deprecation.
8993
8994 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
8995
8996         * config/i386/cygming-crtend.c (register_frame_ctor): Register
8997         __gcc_deregister_frame with atexit.
8998         (deregister_frame_dtor): Remove.
8999
9000 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
9001             Nathan Sidwell  <nathan@codesourcery.com>
9002
9003         * config/rs6000/rs6000.opt (mspe): Remove Var property.
9004         (misel): Likewise.
9005         * config/rs6000/rs6000.h (rs6000_spe): Declare.
9006         (rs6000_isel): Likewise.
9007         * config/rs6000/rs6000.c (rs6000_spe): New variable.
9008         (rs6000_isel): New variable.
9009         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
9010
9011 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
9012
9013         PR c++/35758
9014         * c-common.c (handle_vector_size_attribute): Call
9015         lang_hooks.types.reconstruct_complex_type instead of
9016         reconstruct_complex_type.
9017         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
9018         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
9019         * langhooks.h (struct lang_hooks_for_types): Add
9020         reconstruct_complex_type hook.
9021         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
9022         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
9023
9024 2008-04-24  Richard Guenther  <rguenther@suse.de>
9025
9026         * c-common.h (check_builtin_function_arguments): Declare.
9027         * c-common.c (validate_nargs): New function.
9028         (check_builtin_function_arguments): Likewise.
9029         * c-typeck.c (build_function_call): Call
9030         check_builtin_function_arguments.
9031         * builtins.c (fold_builtin_classify): Remove error reporting code.
9032         (fold_builtin_unordered_cmp): Likewise.
9033         (fold_builtin_1): Likewise.
9034         (fold_builtin_n): Likewise.
9035
9036 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
9037
9038         PR tree-optimization/36008
9039         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
9040         the original op1, rather than delta by step.
9041
9042 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
9043             Sebastian Pop  <sebastian.pop@amd.com>
9044
9045         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
9046         eliminate_local_variables_stmt, eliminate_local_variables,
9047         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
9048         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
9049         of code delimited by two edges in the CFG.
9050         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
9051         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
9052         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
9053         the case of parallelisation of reductions.
9054         (expr_invariant_in_region_p): New.
9055
9056         * tree-flow.h (gather_blocks_in_sese_region): Declared.
9057         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
9058
9059 2008-04-24  Ira Rosen  <irar@il.ibm.com>
9060             Richard Guenther  <rguenther@suse.de>
9061
9062         PR tree-optimization/36034
9063         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
9064         incapable of dealing with loads with gaps.
9065
9066 2008-04-24  Rafael Espindola  <espindola@google.com>
9067
9068         * tree-flow.h (vrp_evaluate_conditional): Change signature.
9069         * tree-ssa-propagate.c (fold_predicate_in): Update call to
9070         vrp_evaluate_conditional.
9071         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
9072         (vrp_evaluate_conditional): Split the cond argument.
9073         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
9074         (simplify_stmt_for_jump_threading): Update call to
9075         vrp_evaluate_conditional.
9076
9077 2008-04-24  Ira Rosen  <irar@il.ibm.com>
9078
9079         PR tree-optimization/35982
9080         * tree-vect-analyze.c (vect_check_interleaving): Check that the
9081         interleaved data-refs are of the same type.
9082
9083 2008-04-24  Danny Smith  <dannysmith@users.net>
9084
9085         * c-format.c (check_format_info_main): Use strncmp rather than a
9086         magic prefix to handle multichar length specs.
9087         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
9088         Don't prefix "I64" and "I32" with '\0'.
9089
9090 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
9091
9092         PR target/36015
9093         * config/i386/i386.c (init_cumulative_args): Don't pass anything
9094         in registers for -m32 only if stdarg_p (fntype).
9095
9096 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
9097
9098         PR rtl-optimization/36006
9099         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
9100         temp to op0 in order to avoid invalid rtx sharing.
9101
9102 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
9103
9104         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
9105         check TREE_INVARIANT.
9106         * tree-gimple.c (is_gimple_address): New.
9107         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
9108         * tree-gimple.h (is_gimple_address): New.
9109         * tree.h (decl_address_invariant_p): New.
9110         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
9111         (build_string): Likewise.
9112         (decl_address_invariant_p): New, from is_gimple_invariant_address.
9113         (tree_invariant_p_1): Likewise.
9114         (save_expr): Use it.
9115         (tree_invariant_p): New.
9116         (skip_simple_arithmetic): Use it.
9117         (stabilize_reference_1): Use it.
9118         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
9119         simplify.
9120         (build1_stat): Drop code to compute TREE_INVARIANT.
9121         (build2_stat): Drop code to compute TREE_INVARIANT.
9122         (build3_stat): Drop code to compute TREE_INVARIANT.
9123         (build4_stat): Drop code to compute TREE_INVARIANT.
9124         (build5_stat): Drop code to compute TREE_INVARIANT.
9125         (build7_stat): Drop code to compute TREE_INVARIANT.
9126         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
9127         * tree.h (struct tree_base): Remove invariant_flag.
9128         (TREE_INVARIANT): Remove.
9129         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
9130         (fold_builtin_expect): Check TREE_CONSTANT.
9131         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
9132         * c-tree.h (c_expr_to_decl): Drop third parameter.
9133         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
9134         (build_c_cast): Don't set TREE_INVARIANT.
9135         (pop_init_level): Don't set TREE_INVARIANT.
9136         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
9137         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
9138         TREE_CONSTANT.
9139         (gimplify_init_constructor): Don't set TREE_INVARIANT.
9140         (gimplify_addr_expr): Adjust comment.
9141         * tree-mudflap.c (mf_build_string):
9142         * print-tree.c (print_node): Don't print TREE_INVARIANT.
9143         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
9144         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
9145         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
9146         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
9147         * langhooks.h (struct lang_hooks): Drop third parameter from
9148         expr_to_decl.
9149
9150 2008-04-23  Richard Guenther  <rguenther@suse.de>
9151
9152         PR tree-optimization/27799
9153         PR tree-optimization/32921
9154         PR tree-optimization/32624
9155         * tree-ssa-structalias.c (merge_smts_into): Only merge the
9156         SMTs aliases and the tag itself into the solution.
9157         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
9158         merge the points-to solution back into the SMT aliases.
9159         (may_alias_p): Use alias_set_subset_of instead of
9160         aliases_conflict_p.  A pointer which points to
9161         memory with alias set zero may access any variable.
9162
9163 2008-04-23  Richard Guenther  <rguenther@suse.de>
9164
9165         * alias.c (alias_set_subset_of): Correctly handle asking
9166         if zero is a subset of an alias set with zero child.
9167         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
9168         (compute_flow_insensitive_aliasing): Correctly walk all
9169         pointers.  Do not unnecessarily union sets.
9170
9171 2008-04-23  Richard Guenther  <rguenther@suse.de>
9172
9173         PR middle-end/36021
9174         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
9175
9176 2008-04-22  Tomas Bily  <tbily@suse.cz>
9177
9178         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
9179         unreachable case.
9180         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
9181         NON_LVALUE_EXPR.
9182         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
9183         * tree-ssa-structalias.c (get_constraint_for): Likewise.
9184         * tree-inline.c (estimate_num_insns_1): Likewise.
9185         * varasm.c (const_hash_1, compare_constant, copy_constant)
9186         (compute_reloc_for_constant, output_addressed_constants): Likewise.
9187         * emit-rtl.c (component_ref_for_mem_expr)
9188         (set_mem_attributes_minus_bitpos): Likewise.
9189         * expr.c (highest_pow2_factor, expand_expr_real_1, )
9190         (is_aligning_offset): Likewise.
9191         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
9192         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
9193         * dojump.c (do_jump): Likewise.
9194         * builtins.c (get_pointer_alignment, get_memory_rtx)
9195         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
9196         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
9197
9198 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
9199
9200         PR rtl-optimization/36017
9201         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
9202         expanding the library call.
9203
9204 2008-04-22  Ian Lance Taylor  <iant@google.com>
9205
9206         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
9207         than size_in_bytes.
9208
9209 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
9210
9211         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
9212         of LR/CTR moves for Power6.
9213
9214 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
9215
9216         PR middle-end/36003
9217         * passes.c (init_optimization_passes): Remove
9218         pass_fast_rtl_byte_dce.
9219         
9220 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
9221
9222         PR target/29096
9223         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
9224         builtin functions to generate faster code.
9225         (_mm_cvtpu16_ps): Ditto.
9226         (_mm_cvtpi32x2_ps): Ditto.
9227
9228 2008-04-22  Nick Clifton  <nickc@redhat.com>
9229
9230         * common.opt (ftree-loop-distribution): Add Optimization
9231         attribute.
9232
9233         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
9234         (frv_expand_builtin_va_start): Likewise.
9235
9236         * config/arm/arm.c (thumb_find_work_register): Fix location of
9237         argument register count.
9238
9239 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
9240
9241         Support scheduling for ColdFire V1 and V3 microarchitecture.
9242         Improve scheduling of multiplication instructions.
9243
9244         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
9245         (mac): New instruction attribute.
9246         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
9247         (m68k_sched_mac): New variable.
9248         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
9249         Handle cfv1 and cfv3.
9250         (max_insn_size): New static variable.
9251         (struct _sched_ib): New type.
9252         (sched_ib): New static variable.
9253         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
9254         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
9255         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
9256         Update.
9257         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
9258         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
9259         new variables.  Update.
9260         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
9261         Add modeling of cfv3 instruction buffer.  Update.
9262         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
9263         * config/m68k/m68k.h (TUNE_CFV3): New macro.
9264         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
9265         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
9266         a particular reservation applies to.
9267         (type2): Reorganize attribute values.  Rename alu to alu_reg,
9268         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
9269         to mul_l and mul_w.
9270         (cf_ib_*): Simplify description of instruction buffer.
9271         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
9272         (cf_mem): Split into cf_mem1 and cf_mem2.
9273         (cf_v2_move_??): Rename to cfv12_alu_??.
9274         (cf_v2_move_l_??): Rename to cfv12_omove_??.
9275         (cf_v2_mul_??): Remove reservations.
9276         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
9277         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
9278         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
9279         appropriate place.
9280         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
9281         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
9282         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
9283         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
9284         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
9285         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
9286         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
9287         expansions of the above reservations for instructions of sizes
9288         1, 2 and 3 words.
9289
9290 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
9291
9292         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
9293
9294 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
9295
9296         * coverage.c: Include tree-pass.h.
9297         (coverage_counter_alloc): Print da_file_name to the dump file.
9298
9299 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
9300
9301         * sbitmap.c (sbitmap_range_empty_p): New function.
9302         * sbitmap.h (sbitmap_range_empty_p): New function.
9303         * bitmap.h: Now includes obstack.h.
9304
9305 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
9306             Kenneth Zadeck  <zadeck@naturalbridge.com>
9307
9308         * dbgcnt.def (ra_byte_scan): Added.
9309         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
9310         when the last hit happens for a counter.  
9311         * timevar.def (TV_DF_BYTE_LR): New variable.
9312         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
9313         * passes.c (pass_fast_rtl_byte_dce): New pass.
9314         * fwprop.c (update_df): Added mode to call df_ref_create.
9315         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
9316         DF_REF_EXTRACT_OFFSET.
9317         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
9318         DF_BYTE_LR_OUT, df_byte_lr): New macro.
9319         (df_mm): New enum.
9320         (df_ref_extract): Added mode field.
9321         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
9322         DF_REF_EXTRACT_OFFSET.
9323         (DF_REF_EXTRACT_MODE): New macro.
9324         (df_byte_lr_bb_info): New structure.
9325         (df_print_byte_regset, df_compute_accessed_bytes, 
9326         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
9327         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
9328         df_byte_lr_simulate_uses,
9329         df_byte_lr_simulate_artificial_refs_at_top,
9330         df_byte_lr_simulate_artificial_refs_at_end,
9331         df_compute_accessed_bytes): New function.
9332         (df_ref_create): Add parameter.
9333         (df_byte_lr_get_bb_info): New inline function.
9334         * df-scan.c (df_ref_record, df_uses_record,
9335         df_ref_create_structure): Added mode parameter.
9336         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
9337         df_defs_record, df_uses_record, df_get_conditional_uses,
9338         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
9339         df_entry_block_defs_collect, df_exit_block_uses_collect):
9340         Added mode parameter to calls to df_ref_record, df_uses_record,
9341         df_ref_create_structure.
9342         (df_ref_equal_p, df_ref_compare): Added test for modes.
9343         (df_ref_create_structure): Added code to set mode.  Renamed
9344         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
9345         DF_REF_EXTRACT_OFFSET.
9346         * df-core.c (df_print_byte_regset): New function.
9347         * df-byte-scan.c: New file.
9348         * df-problems.c (df_rd_transfer_function): Removed unnecessary
9349         calls to BITMAP_FREE.  
9350         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
9351         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
9352         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
9353         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
9354         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
9355         df_byte_lr_local_compute, df_byte_lr_init,
9356         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
9357         df_byte_lr_transfer_function, df_byte_lr_free, 
9358         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
9359         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
9360         df_byte_lr_simulate_uses,
9361         df_byte_lr_simulate_artificial_refs_at_top,
9362         df_byte_lr_simulate_artificial_refs_at_end): New function.
9363         * dce.c (byte_dce_process_block): New function.
9364         (dce_process_block): au is now passed in rather than computed
9365         locally.  Changed loops that look at artificial defs to not look
9366         for conditional or partial ones, because there never are any.  
9367         (fast_dce): Now is able to drive byte_dce_process_block or 
9368         dce_process_block depending on the kind of dce being done.
9369         (rest_of_handle_fast_dce): Add parameter to fast_dce.
9370         (rest_of_handle_fast_byte_dce): New function.
9371         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
9372         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
9373
9374 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
9375
9376         PR fortran/35019
9377         * gcc.h: Added fortran options that take arguments to
9378         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
9379         macros.
9380
9381 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
9382
9383         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
9384         scalarization if on the LHS and not a full access.
9385
9386 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9387
9388         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
9389
9390 2008-04-18  Rafael Espindola  <espindola@google.com>
9391
9392         * tree-vrp.c (find_case_label_index): Fix the binary search.
9393         (find_case_label_range): New.
9394         (vrp_visit_switch_stmt): Use find_case_label_range.
9395         (simplify_switch_using_ranges): Use find_case_label_range.
9396
9397 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
9398
9399         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
9400         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
9401
9402 2008-04-18  Tom Tromey  <tromey@redhat.com>
9403
9404         PR libcpp/15500:
9405         * doc/cpp.texi (Implementation-defined behavior): Mention
9406         -finput-charset.
9407
9408 2008-04-18  Ian Lance Taylor  <iant@google.com>
9409
9410         * fold-const.c (pointer_may_wrap_p): New static function.
9411         (fold_comparison): Add another test for pointer overflow.  Use
9412         pointer_may_wrap_p to disable some false positives.
9413
9414 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
9415           
9416         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
9417         (fname_as_string): Match updated cpp_interpret_string prototype.
9418         (fix_string_type): Support char16_t* and char32_t*.
9419         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
9420         derivative) nodes.  Register as builtin if C++0x.
9421         (c_parse_error): Support CPP_CHAR{16,32}.
9422         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
9423         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
9424         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
9425         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
9426         CTI_CHAR32_ARRAY_TYPE>: New elements.
9427         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
9428         char32_type_node, signed_char32_type_node, char16_array_type_node,
9429         char32_array_type_node): New defines.
9430         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
9431         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
9432         (lex_string): Support CPP_STRING{16,32}, match updated
9433         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
9434         (lex_charconst): Support CPP_CHAR{16,32}.
9435         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
9436         and CPP_STRING{16,32}.
9437
9438 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
9439
9440         PR bootstrap/35457
9441         * aclocal.m4: Regenerate.
9442         * configure: Regenerate.
9443
9444 2008-04-18  Jan Hubicka  <jh@suse.cz>
9445
9446         * except.c (dw2_size_of_call_site_table,
9447         sjlj_size_of_call_site_table): Use vector API for call_site_record.
9448
9449         * cgraphbuild.c (build_cgraph_edges): Update.
9450         * tree-pass.h: Update comment.
9451         * final.c (leaf_function_p): Update.
9452         (leaf_renumber_regs): Update.
9453         (rest_of_clean_state): Update.
9454         * omp-low.c (expand_omp_parallel): Update.
9455         * ipa-reference.c (analyze_function): Update.
9456         * reorg.c (find_end_label): Update.
9457         (optimize_skip): Update.
9458         (fill_simple_delay_slots): Update.
9459         (fill_simple_delay_slots): Update.
9460         (make_return_insns): Update.
9461         (dbr_schedule): Update.
9462         * gimple-low.c (record_vars_into): Update.
9463         * cfgbuild.c (make_edges): Update.
9464         * function.c (assign_stack_local): Update.
9465         (assign_parm_adjust_stack_rtl): Update.
9466         (locate_and_pad_parm): Update.
9467         (allocate_struct_function): Do not initialize stack_alignment_needed
9468         and preferred_stack_boundary here.
9469         (stack_protect_prologue): Update.
9470         (stack_protect_epilogue): Update.
9471         (expand_function_start): Initialize stack_alignment_needed,
9472         preferred_stack_boundary and max_jumptable_ents.
9473         (expand_function_end): Update.
9474         (free_after_compilation): Do not NULLify epilogue_delay_list.
9475         * function.h (struct rtl_data): Add stack_protect_guard,
9476         stack_alignment_needed,
9477         preferred_stack_boundary, epilogue_delay_list.
9478         (struct function): Remove value_histograms, stack_alignment_needed,
9479         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
9480         last_label_uid,
9481         unexpanded_var_list, stack_protect_guard.
9482         (current_function_epilogue_delay_list): Remove.
9483         * ipa-type-escape.c (analyze_function): Update.
9484         * gimplify.c (pop_gimplify_context): Update comment.
9485         * calls.c (expand_call): Update.
9486         (emit_library_call_value_1): Update.
9487         * except.c (set_nothrow_function_flags): Update.
9488         * cfgexpand.c (get_decl_align_unit): Update.
9489         (create_stack_guard): Update.
9490         (estimated_stack_frame_size): Update.
9491         (expand_used_vars): Update.
9492         (tree_expand_cfg): Free histogram earliers, init expansion variables.
9493         * explow.c (allocate_dynamic_stack_space): Update.
9494         * tree-ssa-live.c (remove_unused_locals): Update.
9495         * varasm.c (mark_constant_pool): Update.
9496         * tree-inline.c (remap_decls): Update.
9497         (initialize_cfun): Update.
9498         (declare_return_variable): Update.
9499         (inline_forbidden_p): Update.
9500         (expand_call_inline): Update.
9501         (declare_inline_vars): Update.
9502         (tree_function_versioning): Update.
9503         * tree-flow.h (value_histograms): New.
9504         (VALUE_HISTOGRAMS): New macro.
9505         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
9506         last_label_uid.
9507         * tree-cfg.c (set_bb_for_stmt): Update.
9508         (replace_by_duplicate_decl): Update.
9509         (move_block_to_fn): Update.
9510         (new_label_mapper): Update.
9511         (dump_function_to_file): Update.
9512         * ipa-struct-reorg.c (build_data_structure): Update.
9513         * cfgrtl.c (print_rtl_with_bb): Update.
9514         * reload1.c (reload): Update.
9515         (reload): Update.
9516         * config/i386/i386.c (setup_incoming_varargs_64,
9517         ix86_compute_frame_layout): Update.
9518         * config/arc/arc.c (arc_output_function_epilogue): Update.
9519
9520 2008-04-18  Marius Strobl <marius@FreeBSD.org>
9521
9522         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
9523         for FreeBSD as well.
9524         * gthr-posix95.h: Likewise.
9525
9526 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
9527
9528         PR rtl-optimization/35838
9529         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
9530         out the byte offset of the first subreg.
9531
9532 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
9533
9534         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
9535         to split_ti instead of three separate calls with single member arrays.
9536         (subti3 splitter): Ditto.
9537         (adddi3 splitter): Ditto with split_di.
9538         (subdi3 splitter): Ditto.
9539         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
9540         two separate calls with single member arrays.  Swap match_dup
9541         operands 1 and 2 to better fit into the array.
9542         (negdi2 splitter): Ditto with split_di.
9543         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
9544         two separate calls with single member arrays.  Swap match_dup operands
9545         6 and 7 to better fit into the array.
9546
9547 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
9548
9549         * config/i386/i386.c (sse_builtin_type): New.
9550         (bdesc_sse_args): Likewise.
9551         (bdesc_sse_3arg): Removed.
9552         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
9553         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
9554         IX86_BUILTIN_ROUNDPS.
9555         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
9556         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
9557         IX86_BUILTIN_ROUNDPS.
9558         (ix86_expand_sse_4_operands_builtin): Removed.
9559         (ix86_expand_sse_operands_builtin): New.
9560         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
9561         and CODE_FOR_sse4_1_roundps.
9562         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
9563         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
9564
9565 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
9566
9567         PR target/35907
9568         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
9569         regs before frame pop when needed.  If use_backchain_to_restore_sp
9570         then load backchain into a temp reg to restore vr and vrsave.  Add
9571         code to restore vr after frame pop if possible.
9572
9573 2008-04-17  Richard Guenther  <rguenther@suse.de>
9574
9575         * tree-vn.c (expressions_equal_p): Do not check type
9576         equality or compatibility before calling operand_equal_p.
9577         * fold-const.c (operand_equal_p): Check equivalence of
9578         integer constants before bailing out due to signedness or
9579         precision differences.
9580         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
9581         spurious differences in type qualification.  Ignore types
9582         for COMPONENT_REFs at all.
9583
9584 2008-04-17  Christian Bruel  <christian.bruel@st.com>
9585
9586         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
9587         msw_skip comparison.
9588         
9589 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
9590
9591         PR c/35739
9592         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
9593         reg type.
9594
9595         PR tree-optimization/35899
9596         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
9597         rather than TREE_OPERAND.
9598
9599 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
9600
9601         PR target/35944
9602         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
9603         temporary registers.  Change operand predicate to general_operand.
9604         (remainderxf3): Ditto.
9605
9606 2008-04-16  Richard Guenther  <rguenther@suse.de>
9607
9608         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
9609         * tree-affine.c (aff_combination_expand): Look through some
9610         conversions.
9611
9612 2008-04-15  Doug Kwan  <dougkwan@google.com>
9613
9614         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
9615         for hex printing.
9616         * tree-pretty-print.c (dump_generic_node): Ditto.
9617         * final.c (output_addr_const): Ditto.
9618         * dwarf2out.c (output_cfi): Ditto.
9619         * c-pretty-print.c (pp_c_integer_constant): Ditto.
9620         * print-rtl.c (print_rtx): Ditto.
9621         * print-tree.c (print_node_brief, print_node): Ditto.
9622         * c-common.c (match_case_to_enum_1): Ditto.
9623         * sched-vis.c (print_value): Ditto.
9624         * config/i386/i386.c (print_operand): Cast to long unsigned int
9625         for hex printing.
9626
9627 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
9628         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
9629         MS Windows VirtualProtect function.
9630
9631 2008-04-15  Jan Hubicka  <jh@suse.cz>
9632
9633         * gengtype.c (write_root): Param_is argument is OK.
9634         * expr.c (expand_expr_real_1): Update call of get_exception_*.
9635         * function.h: Include varray.h
9636         (rtl_eh): New stucture based on except.c one.
9637         (call_site_record): New forward declaration and vector type.
9638         * calls.c (emit_call_1): Do not call
9639         note_current_region_may_contain_throw.
9640         * except.c (eh_status): Remove cur_region, try_region since they are
9641         unused.
9642         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
9643         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
9644         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
9645         Remove call_site_data_used, call_site_data_size.
9646         Turn call_site_record into vector in function.h.
9647         (note_current_region_may_contain_throw): Remove.
9648         (get_exception_pointer, get_exception_filter): Do not take struct
9649         function argument; update.
9650         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
9651         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
9652         build_post_landing_pads, dw2_build_landing_pads,
9653         sjlj_assign_call_site_values, sjlj_mark_call_sites,
9654         sjlj_emit_function_enter, sjlj_emit_function_enter, 
9655         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
9656         sjlj_build_landing_pads, finish_eh_generation,
9657         remove_exception_handler_label, remove_eh_handler,
9658         maybe_remove_eh_handler, add_reachable_handler,
9659         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
9660         add_action_record, collect_one_action_chain, add_call_site,
9661         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
9662         sjlj_output_call_site_table, output_function_exception_table,
9663         * except.h (note_current_region_may_contain_throw): Remove
9664         (get_exception_pointer, get_exception_filter): Do not take struct
9665         function argument.
9666         * Makefile.in (GTFILES): Put varargs before struct function.
9667
9668 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
9669
9670         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
9671         punt for STRING_CST.
9672         (get_constraint_for): Deal with STRING_CST here instead.
9673
9674 2008-04-15  Richard Guenther  <rguenther@suse.de>
9675
9676         * tree-ssa-propagate.c (substitute_and_fold): Substitute
9677         statements in a basic-block with a backward walk.  Do not
9678         substitute into dead statements but instead remove those.
9679
9680 2008-04-15  Richard Guenther  <rguenther@suse.de>
9681
9682         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
9683         to zero, thus disable creation of SFTs.
9684
9685 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
9686
9687         * tree-predcom.c (suitable_reference_p): Return false if the
9688         reference can throw.
9689
9690 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
9691
9692         PR c/35751
9693         * c-decl.c (finish_decl): If extern or static var has variable
9694         size, set TREE_TYPE (decl) to error_mark_node.
9695
9696 2008-04-15  Rafael Espindola  <espindola@google.com>
9697
9698         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
9699         variable arg1.
9700
9701 2008-04-15  Richard Guenther  <rguenther@suse.de>
9702
9703         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
9704         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
9705         (visit_reference_op_load): Do walk vuse-vdef chains on
9706         vn_reference_lookup.
9707         (visit_reference_op_store): But do not here.
9708         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
9709         vn_reference_lookup.
9710         (vn_lookup_with_vuses): But do so here.
9711
9712 2008-04-14  Ian Lance Taylor  <iant@google.com>
9713
9714         * fold-const.c (fold_overflow_warning): Remove assertion.
9715
9716 2008-04-15  Ben Elliston  <bje@au.ibm.com>
9717
9718         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
9719         temp1 local variables.
9720
9721 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
9722
9723         PR target/35661
9724         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
9725         ".text.unlikely" section as executable.
9726
9727 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
9728
9729         * config/ia64/ia64.c (rtx_needs_barrier): Handle
9730         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
9731         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
9732         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
9733         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
9734         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
9735         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
9736
9737 2008-04-14  Ian Lance Taylor  <iant@google.com>
9738
9739         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
9740         * fold-const.c (fold_comparison): If appropriate, test
9741         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
9742         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
9743         reassociating a pointer type.
9744         * doc/invoke.texi (Optimize Options): Document that
9745         -fstrict-overflow applies to pointer wraparound.
9746
9747 2008-04-13  Jan Hubicka  <jh@suse.cz>
9748
9749         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
9750
9751 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
9752
9753         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
9754         we are going to "save the world".
9755
9756 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
9757
9758         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
9759         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
9760         operand 0 constraint, not "=".
9761
9762 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
9763
9764         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
9765
9766 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
9767
9768         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
9769         of size of positions_needed * CHAR_BIT.
9770
9771 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
9772
9773         PR middle-end/35897
9774         * dse.c (store_info): Change positions_needed to unsigned
9775         HOST_WIDE_INT.
9776         (lowpart_bitmask): New.
9777         (record_store): Cast to unsigned HOST_WIDE_INT for
9778         positions_needed.  Assert width <= size of positions_needed *
9779         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
9780         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
9781         lowpart_bitmask to set mask.
9782
9783 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
9784
9785         * config/bfin/constraints.md: New file.
9786         * config/bfin/bfin.md: Include it.
9787         (adddi3): Use satisfies_constraint functions instead of the old macros.
9788         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
9789         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
9790         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
9791         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
9792         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
9793         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
9794         EXTRA_CONSTRAINT): Delete.
9795         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
9796         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
9797         of the old macros.
9798         * config/bfin/bfin.c: Include "tm-constrs.h".
9799         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
9800         Use satisfies_constraint functions instead of the old macros.
9801         * doc/md.texi (Blackfin Constraints): Update file name reference.
9802
9803 2008-04-11  Richard Guenther  <rguenther@suse.de>
9804
9805         PR tree-optimization/35869
9806         * tree-vrp.c (execute_vrp): Move switch statement update after
9807         jump threading.  Schedule another cfg cleanup run.
9808
9809 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
9810
9811         PR c/35744
9812         * attribs.c (decl_attributes): Return early on errorneous node.
9813
9814 2008-04-10  Oleg Ryjkov  <olegr@google.com>
9815
9816         * tree.h (struct tree_base): Added a new flag default_def_flag.
9817         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
9818
9819 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
9820
9821         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
9822
9823 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9824
9825         PR target/35768
9826         * pa.md: Define mode iterator P.  Define mode attribute dwc.
9827         (dcacheflush): Update pattern to use iterator P and attribute dwc.
9828         (icacheflush): Likewise.
9829         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
9830         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
9831
9832 2008-04-11  Ben Elliston  <bje@au.ibm.com>
9833
9834         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
9835
9836 2008-04-10  Rafael Espindola  <espindola@google.com>
9837
9838         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
9839         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
9840         (extract_range_from_expr): The same.
9841
9842 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
9843
9844         * config/mips/mips.md (GPR2): New mode iterator.
9845         (seq): Add comment.
9846         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
9847         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
9848         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
9849         Rewrite these to take two modes, the mode of comparison and the
9850         mode of the destination.
9851         * config/mips/mips.c (mips_expand_scc): Instead of having
9852         paradoxical subreg as destination, expand "narrowing" scc if mode
9853         of comparison is SI and target is requested in DI mode.
9854         (mips_emit_int_order_test): Update comment.  Make mode of
9855         comparison match CMP0 rather than TARGET.  When creating inverse
9856         target use mode of TARGET.
9857
9858 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
9859
9860         * gcov-dump.c (tag_summary): Only print summaries for the first
9861         GCOV_COUNTERS_SUMMABLE counters.
9862
9863 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
9864
9865         * config/i386/i386.md (absneg): New code iterator.
9866         (absnegprefix): New code attribute.
9867         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
9868         patterns using absneg code iterator.
9869         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
9870         using absneg code iterator.
9871         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
9872         *neg<mode>2 patterns using absneg code iterator.
9873         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
9874         *negextendsfdf2 patterns using absneg code iterator.
9875         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
9876         *negextendsfxf2 patterns using absneg code iterator.
9877         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
9878         *negextendsfdf2 patterns using absneg code iterator.
9879         * config/i386/sse.md (<code><mode>2): Macroize expander from
9880         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
9881
9882 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
9883
9884         * config/s390/s390.h: Remove the remains of the recent search
9885         & replace action of current_function_outgoing_args_size.
9886
9887 2008-04-10  Ira Rosen  <irar@il.ibm.com>
9888
9889         PR tree-optimization/35821
9890         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
9891         NEW_STMT_LIST is not NULL.
9892
9893 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
9894
9895         PR libstdc++/35597
9896         * toplev.c (process_options): Remove -ffunction-sections debugging
9897         warning.
9898
9899 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
9900
9901         PR middle-end/PR28690
9902         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
9903         than gen_rtx_fmt_ee to perform more canonicalizations.
9904
9905 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9906
9907         PR driver/35665
9908         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
9909
9910 2008-04-09  Richard Guenther  <rguenther@suse.de>
9911
9912         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
9913         (dump_function_to_file): Dump function arguments with types.
9914
9915 2008-04-08  Richard Guenther  <rguenther@suse.de>
9916
9917         * fold-const.c (fold_widened_comparison): Do not allow
9918         sign-changes that change the result.
9919
9920 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
9921
9922         PR target/35839
9923         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
9924         kinds of indirect references.
9925
9926 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
9927
9928         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
9929         GNU Fortran language string.
9930
9931 2008-04-08  Rafael Espindola  <espindola@google.com>
9932
9933         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
9934         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
9935         * tree.h (tree_call_nonnegative_warnv_p): New.
9936
9937 2008-04-08  Jan Hubicka  <jh@suse.cz>
9938
9939         * function.c (free_after_compilation): Clear out regno_reg_rtx
9940         pointer.
9941
9942 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
9943
9944         Revert
9945         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
9946
9947         PR middle-end/PR28690
9948         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
9949         same precedence as REG_POINTER and MEM_POINTER operands.
9950
9951 2008-04-08  Richard Guenther  <rguenther@suse.de>
9952
9953         PR middle-end/35834
9954         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
9955         for adding index to base.
9956
9957 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
9958
9959         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
9960         (MINGW_ENABLE_EXECUTE_STACK): New.
9961         (IN_LIBGCC2): For libgcc include windows.h file for
9962         function declarations.
9963
9964 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
9965
9966         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
9967         and tem2 if tem1 is not a REG or MULT.
9968
9969 2008-04-08  Jan Hubicka  <jh@suse.cz>
9970
9971         * function.h (incomming_args): Break out of struct function.
9972         (function_subsections): Break out of struct function.
9973         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
9974         return_rtx and hard_reg_initial_vals from struct function.
9975         Kill inl_max_label_num.
9976         (current_function_pops_args, current_function_args_info,
9977         current_function_args_size, current_function_args_size,
9978         current_function_pretend_args_size,
9979         current_function_outgoing_args_size,
9980         current_function_internal_arg_pointer, current_function_return_rtx):
9981         Kill compatibility accestor macros.
9982         * builtins.c (expand_builtin_apply_args_1): Update.
9983         (expand_builtin_next_arg): Update.
9984         * df-scan.c (df_get_call_refs): Update.
9985         * dbxout.c (dbxout_function_end): Update.
9986         * dwarf2out.c (dwarf2out_switch_text_section): Update.
9987         (output_line_info): Update.
9988         (secname_for_decl): Update.
9989         (dwarf2out_var_location): Update.
9990         * function.c (free_after_compilation): Update.
9991         (assign_parm_find_stack_rtl): Update.
9992         (assign_parms): Update.
9993         (expand_dummy_function_end): Update.
9994         (expand_function_end): Update.
9995         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
9996         (expand_call): Update.
9997         (emit_library_call_value_1): Update.
9998         (store_one_arg): Update.
9999         * varasm.c (initialize_cold_section_name): Update.
10000         (unlikely_text_section): Update.
10001         (unlikely_text_section_p): Update.
10002         (assemble_start_function): Update.
10003         (assemble_end_function): Update.
10004         (default_section_type_flags): Update.
10005         (switch_to_section): Update.
10006         * integrate.c (set_decl_abstract_flags): Update.
10007         (get_hard_reg_initial_val): Update.
10008         (has_hard_reg_initial_val): Update.
10009         (allocate_initial_values): Update.
10010         * resource.c (init_resource_info): Update.
10011         * config/alpha/alpha.c (NUM_ARGS): Update.
10012         (direct_return): Update.
10013         (alpha_va_start): Update.
10014         (alpha_sa_size): Update.
10015         (alpha_initial_elimination_offset): Update.
10016         (alpha_expand_prologue): Update.
10017         (alpha_start_function): Update.
10018         (alpha_expand_epilogue): Update.
10019         (unicosmk_initial_elimination_offset):
10020         * config/alpha/alpha.md (call expander): Update.
10021         * config/s390/s390.c (s390_register_info): Update.
10022         (s390_register_info): Update.
10023         (s390_frame_info): Update.
10024         (s390_initial_elimination_offset): Update.
10025         (s390_build_builtin_va_list): Update.
10026         (s390_va_start): Update.
10027         * config/spu/spu.c (direct_return): Update.
10028         (spu_expand_prologue): Update.
10029         (spu_initial_elimination_offset): Update.
10030         (spu_build_builtin_va_list): Update.
10031         (spu_va_start): Update.
10032         * config/sparc/sparc.c (sparc_init_modes): Update.
10033         (sparc_compute_frame_size): Update.
10034         (function_value): Update.
10035         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
10036         * config/i386/i386.md (return expander): Update.
10037         * config/i386/i386.c (ix86_va_start): Update.
10038         (ix86_can_use_return_insn_p): Update.
10039         (ix86_compute_frame_layout): Update.
10040         (ix86_expand_epilogue): Update.
10041         * config/sh/sh.c (output_stack_adjust): Update.
10042         (calc_live_regs): Update.
10043         (sh_expand_prologue): Update.
10044         (sh_builtin_saveregs): Update.
10045         (sh_va_start): Update.
10046         (initial_elimination_offset): Update.
10047         (sh_allocate_initial_value): Update.
10048         (sh_function_ok_for_sibcall): Update.
10049         (sh_get_pr_initial_val): Update.
10050         * config/sh/sh.md (return expander): Update.
10051         * config/avr/avr.c (frame_pointer_required_p): UPdate.
10052         * config/crx/crx.c (crx_compute_frame): UPdate.
10053         (crx_initial_elimination_offset): UPdate.
10054         * config/xtensa/xtensa.c (compute_frame_size): Update
10055         (xtensa_builtin_saveregs): Update.
10056         (xtensa_va_start): Update.
10057         (order_regs_for_local_alloc): Update.
10058         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
10059         (xstormy16_expand_builtin_va_start): Update.
10060         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
10061         * config/m68hc11/m68hc11.md (return expanders): Update.
10062         * config/m68hc11/m68hc11.c (expand_prologue): Update.
10063         (expand_epilogue): Update.
10064         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
10065         (cris_simple_epilogue): Update.
10066         (cris_expand_prologue): Update.
10067         (cris_expand_epilogue): Update.
10068         * config/iq2000/iq2000.c (iq2000_va_start): Update.
10069         (compute_frame_size): Update.
10070         * config/mt/mt.c (mt_compute_frame_size): Update.
10071         * config/mn10300/mn10300.c (expand_prologue): Update.
10072         (expand_epilogue): Update.
10073         (initial_offset): Update.
10074         (mn10300_builtin_saveregs):
10075         * config/mn10300/mn10300.md (return expander): Update.
10076         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
10077         (ia64_initial_elimination_offset): Update.
10078         (ia64_initial_elimination_offset): Update.
10079         (ia64_expand_prologue): Update.
10080         * config/m68k/m68k.md (return expander): Update.
10081         * config/rs6000/rs6000.c (rs6000_va_start): Update.
10082         (rs6000_stack_info): Update.
10083         * config/mcore/mcore.c (layout_mcore_frame): Update.
10084         (mcore_expand_prolog): Update.
10085         * config/arc/arc.c (arc_compute_frame_size): Update.
10086         * config/score/score3.c (score3_compute_frame_size): Update.
10087         * config/score/score7.c (score7_compute_frame_size): Update.
10088         * config/arm/arm.c (use_return_insn): Update.
10089         (thumb_find_work_register): Update.
10090         (arm_compute_save_reg_mask): Update.
10091         (arm_output_function_prologue): Update.
10092         (arm_output_epilogue): Update.
10093         (arm_size_return_regs): Update.
10094         (arm_get_frame_offsets): Update.
10095         (arm_expand_prologue): Update.
10096         (thumb_exit): Update.
10097         (thumb_unexpanded_epilogue): Update.
10098         (thumb1_output_function_prologue): Update.
10099         * config/pa/pa.md (return expander): Update.
10100         * config/pa/pa.c (compute_frame_size): Update.
10101         (hppa_builtin_saveregs): Update.
10102         * config/mips/mips.c (mips_va_start): Update.
10103         (mips16_build_function_stub): Update.
10104         (mips_compute_frame_info): Update.
10105         (mips_restore_gp): Update.
10106         (mips_output_function_prologue): Update.
10107         (mips_expand_prologue): Update.
10108         * config/v850/v850.c (compute_frame_size): Update.
10109         (expand_prologue): * config/mmix/mmix.c (along): update.
10110         (mmix_initial_elimination_offset): update.
10111         (mmix_reorg): update.
10112         (mmix_use_simple_return): update.
10113         (mmix_expand_prologue): update.
10114         (mmix_expand_epilogue): Update.
10115         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
10116         (emit_link_insn): Update.
10117
10118 2008-04-08  Anatoly Sokolov <aesok@post.ru>
10119
10120         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
10121         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
10122         instructions.
10123         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
10124         atmega103 device.
10125
10126 2008-04-07  Jan Hubicka  <jh@suse.cz>
10127
10128         * function.h (rtl): Rename to x_rtl.
10129         (crtl): New define.
10130         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
10131         frame_offset, stack_check_probe_note, arg_pointer_save_area,
10132         used_temp_slots avail_temp_slots, temp_slot_level,
10133         nonlocal_goto_handler_labels): Update accesstors.
10134         (rtl): New global variable.
10135         (struct function): Move some fileds to rtl_data.
10136         (get_arg_pointer_save_area): Update prototype.
10137         * builtins.c (expand_builtin_setjmp_receiver): Update call of
10138         get_arg_pointer_save_area.
10139         * expr.c (init_expr): Update
10140         * function.c (get_frame_size): Update
10141         (assign_stack_local): Update
10142         (expand_function_end): Update.
10143         (get_art_pointer_save_area): Update
10144         * function.h 
10145         * emit-rtl.c (rtl): Declare.
10146         (regno_reg_rtx): Declare.
10147         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
10148         Update.
10149         (gen_reg_rtx): Update.
10150         * varasm.c (n_deferred_constatns): Update accestor.
10151         (init_varasm_status): Do not allocate varasm_status.
10152         (force_const_mem, get_pool_size, output_constant_pool): Update.
10153         * stmt.c (force_label_rtx): Do not use x_ prefixes.
10154         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
10155         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
10156         * sparc/sparc.h (INIT_EXPANDERS): Update.
10157         * ia64/ia64.h (INIT_EXPANDERS): Update.
10158
10159 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
10160
10161         * reload.c (push_secondary_reload): Add missing break to for loop.
10162
10163 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
10164
10165         PR middle-end/PR28690
10166         * rtlanal.c: Update copyright years.
10167         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
10168         as REG_POINTER and MEM_POINTER operands.
10169         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
10170         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
10171         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
10172         * gcse.c: Update copyright years.
10173         (pre_delete): Call gen_reg_rtx_and_attrs.
10174         (hoist_code): Likewise.
10175         (build_store_vectors): Likewise.
10176         (delete_store): Likewise.
10177         * loop-invariant.c (move_invariant_reg): Likewise.
10178         Update copyright years.
10179
10180 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
10181
10182         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
10183         control string instead of quoted.
10184
10185 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
10186
10187         * doc/rtl.texi: Rewrite of subreg section.
10188
10189 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
10190
10191         PR/35842
10192         * config/i386/i386.c (legitimize_pic_address): Add treating
10193         of dllimport SYM_REF's.
10194         (legitimize_dllimport_symbol): Add prototype.
10195
10196 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
10197
10198         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
10199         reference in constructor with non self-referential type.
10200
10201 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
10202
10203         Removal of Return with Depressed Stack Pointer support
10204         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
10205         (ECF_SP_DEPRESSED): Likewise.
10206         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
10207         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
10208         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
10209         (expand_call): Do not test ECF_SP_DEPRESSED.
10210         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
10211         * function.c (keep_stack_depressed): Delete.
10212         (handle_epilogue_set): Likewise.
10213         (update_epilogue_consts): Likewise.
10214         (emit_equiv_load): Likewise.
10215         (thread_prologue_and_epilogue_insns): Remove support for Return with
10216         Depressed Stack Pointer.
10217         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
10218
10219 2008-04-06  Richard Guenther  <rguenther@suse.de>
10220
10221         PR tree-optimization/35400
10222         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
10223         information from SSA_NAMEs.
10224
10225 2008-04-06  Anatoly Sokolov <aesok@post.ru>
10226
10227         * config/avr/avr.h (avr_mega_p): Remove declaration.
10228         (AVR_MEGA): Remove macro.
10229         * config/avr/avr.c (avr_mega_p): Remove variable.
10230         (avr_override_options): Remove inicializion of avr_mega_p.
10231         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
10232         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
10233         (avr_jump_mode): (Ditto.).
10234         (avr_output_progmem_section_asm_op): (Ditto.).
10235         (avr_asm_init_sections): (Ditto.).
10236         (avr_asm_init_sections): (Ditto.).
10237         (avr_rtx_costs): (Ditto.).
10238         * config/avr/avr.md: (Ditto.).
10239         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
10240         '__AVR_MEGA__'.
10241
10242 2008-04-06  Richard Guenther  <rguenther@suse.de>
10243
10244         PR tree-optimization/35842
10245         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
10246         is_gimple_invariant_address.
10247
10248 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10249
10250         * gcc.c (default_compilers): Sync Fortran extensions list with
10251         that in fortran/lang-specs.h.
10252         * doc/invoke.texi: Likewise.
10253         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
10254         * dwarf2out.c (gen_compile_unit_die): Likewise.
10255
10256 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
10257
10258         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
10259
10260 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
10261
10262         PR target/12329
10263         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
10264         attribute is used for nested functions.
10265
10266 2008-04-05  Jan Hubicka  <jh@suse.cz>
10267
10268         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
10269
10270         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
10271         letter argument.
10272         (dump_files): Update.
10273         (enable_rtl_dump_file): Do not accept letter argument.
10274         * tree-pass.h (dump_file_info): Remove letter argument.
10275         * toplev.c (decode_d_option): Update -da handling.
10276         * toplev.h (enable_rtl_dump_file): Update prototype.
10277         * passes.c (register_one_dump_file): Do not accept IPA argument; work
10278         it out based on pass type.
10279         (register_dump_files_1): Likewise.
10280         (init_optimization_passes): Update register_one_dump_file calls.
10281         (execute_one_pass): Sanity check that IPA passes are called at IPA
10282         level and RTL passes at RTL level.
10283         (execute_pass_list): IPA pass can not be after or subpass of
10284         GIMPLE/RTL pass.
10285         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
10286         disallov RTL subpasses of IPA subpasses.
10287
10288 2008-04-05  Ben Elliston  <bje@au.ibm.com>
10289
10290         * tree-cfg.c (need_fake_edge_p): Return false for calls to
10291         builtins that return exactly once and do not throw. Cache call to
10292         call_expr_flags.
10293
10294 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
10295
10296         PR rtl-optimization/34916
10297         PR middle-end/35519
10298         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
10299         between instruction pairs.
10300
10301 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
10302
10303         * doc/invoke.texi: Document -mbitops for SH.
10304         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
10305         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
10306         * config/sh/sh.c (print_operand): Add %t operand code.
10307         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
10308         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
10309         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
10310         (extendqihi2): Likewise.
10311         (movqi_i): Likewise.
10312         (insv): Use bset, bclr and bst instructions for SH2A if possible.
10313         (extv): Use bld instruction for SH2A if possible.
10314         (extzv): Likewise.
10315         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
10316         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
10317         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
10318         (bset.b, bclr.b): Define peepholes.
10319         * config/sh/sh.opt (mbitops): New option.
10320
10321 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
10322
10323         PR target/35620
10324         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
10325         and view convert expression.
10326
10327 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
10328
10329         PR target/35364
10330         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
10331
10332 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
10333
10334         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
10335
10336         * config/i386/cpuid.h (bit_AES): New.
10337         (bit_PCLMUL): Likewise.
10338
10339         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
10340         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
10341         SSE2 if AES or PCLMUL is enabled.
10342         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
10343         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
10344         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
10345         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
10346         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
10347         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
10348         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
10349         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
10350         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
10351         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
10352         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
10353         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
10354         __builtin_ia32_aeskeygenassist128 and
10355         __builtin_ia32_pclmulqdq128.
10356         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
10357         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
10358         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
10359
10360         * config/i386/i386.h (TARGET_AES): New.
10361         (TARGET_PCLMUL): Likewise.
10362         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
10363
10364         * config/i386/i386.md (UNSPEC_AESENC): New.
10365         (UNSPEC_AESENCLAST): Likewise.
10366         (UNSPEC_AESDEC): Likewise.
10367         (UNSPEC_AESDECLAST): Likewise.
10368         (UNSPEC_AESIMC): Likewise.
10369         (UNSPEC_AESKEYGENASSIST): Likewise.
10370         (UNSPEC_PCLMUL): Likewise.
10371
10372         * config/i386/i386.opt (maes): New.
10373         (mpclmul): Likewise.
10374
10375         * config/i386/sse.md (aesenc): New pattern.
10376         (aesenclast): Likewise.
10377         (aesdec): Likewise.
10378         (aesdeclast): Likewise.
10379         (aesimc): Likewise.
10380         (aeskeygenassist): Likewise.
10381         (pclmulqdq): Likewise.
10382
10383         * config/i386/wmmintrin.h: New.
10384
10385         * doc/extend.texi: Document AES and PCLMUL built-in function.
10386
10387         * doc/invoke.texi: Document -maes and -mpclmul.
10388
10389 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
10390
10391         * function.c (free_after_parsing): Replace with
10392         cxx_push_function_context from C++ front-end.
10393         (allocate_struct_function): Don't call langhook.
10394         * langhooks.h (struct lang_hooks_for_functions): Delete.
10395         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
10396         member "function".
10397         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
10398         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
10399         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
10400         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
10401         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
10402         remove LANG_HOOKS_FUNCTION_INITIALIZER.
10403         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
10404
10405         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
10406         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
10407         
10408 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
10409
10410         PR c/35440
10411         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
10412         for all types.
10413
10414 2008-04-04  Richard Guenther  <rguenther@suse.de>
10415
10416         PR middle-end/35823
10417         * fold-const.c (optimize_minmax_comparison): Use the correct
10418         type for the constant in the simplified comparison.
10419
10420 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
10421
10422         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
10423         Pass L2 size as "--param l2-cache-size" to the compiler.
10424         (decode_l2_cache): New function to decode L2 cache parameters using
10425         0x8000006 extended cpuid function.
10426         (detect_caches_amd): Determine parameters of L2 cache using
10427         decode_l2_caches function.
10428         (decode_caches_intel): Decode L2 cache parameters.
10429         (detect_caches_intel): Determine L2 cache parameters using
10430         decode_caches_intel and decode_l2_caches functions.
10431
10432 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
10433
10434         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
10435         secondary input reload for subword loads from the constant pool.
10436
10437 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
10438
10439         PR target/35713
10440         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
10441           constants of the appropriate size for runtime calculations.
10442
10443         PR c/35712
10444         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
10445           decimal-float literal constant zero.
10446
10447 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
10448
10449         PR c/35738
10450         * c-parser.c (c_parser_omp_atomic): Call
10451         default_function_array_conversion on the RHS.
10452
10453         PR middle-end/35818
10454         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
10455         call is_variable_sized if decl has incomplete type.
10456
10457 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
10458
10459         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
10460
10461 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
10462
10463         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
10464         iterators.
10465         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
10466         (sgt<u>): Merge sgt and sgtu into new expander.
10467         (sgt, sgtu): Remove expanders.
10468         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
10469         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
10470         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
10471         *sgtu_<mode>_mips16 into new pattern.
10472         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
10473         (sge<u>): Merge sge and sgeu into new expander.
10474         (sge, sgeu): Remove expanders.
10475         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
10476         new pattern.
10477         (*sge_<mode>, second *sge_<mode>): Remove patterns.
10478         (slt<u>): Merge slt and sltu into new expander.
10479         (slt, sltu): Remove expanders.
10480         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
10481         (*slt_<mode>, *sltu_<mode>): Remove patterns.
10482         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
10483         *sltu_<mode>_mips16 into new pattern.
10484         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
10485         (sle<u>): Merge sle and sleu into new expander.
10486         (sle, sleu): Remove expanders.
10487         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
10488         (*sle_<mode>, *sleu_<mode>): Remove patterns.
10489         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
10490         *sleu_<mode>_mips16 into new pattern.
10491         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
10492
10493 2008-04-03  Jan Hubicka  <jh@suse.cz>
10494
10495         PR tree-optimization/35795
10496         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
10497         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
10498         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
10499         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
10500         * score/score3.c (score3_output_mi_thunk): Likewise.
10501         * score/score7.c (score7_output_mi_thunk): Likewise.
10502         * mips/mips.c (mips_output_mi_thunk): Likewise.
10503
10504 2008-04-03  Richard Guenther  <rguenther@suse.de>
10505
10506         * tree-vrp.c (extract_range_from_unary_expr): Handle all
10507         conversions.  Simplify code.
10508
10509 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
10510
10511         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
10512
10513 2008-04-03  Tom Tromey  <tromey@redhat.com>
10514             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10515
10516         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
10517         * config/bfin/t-bfin-linux (generated_files): Add
10518         linux-sysroot-suffix.h.
10519         * doc/install.texi (Prerequisites): Require make 3.80.
10520         * doc/sourcebuild.texi (Front End Directory): Document new
10521         variable.
10522         * Makefile.in (generated_files): New variable.
10523         (ALL_HOST_OBJS): New variable.
10524         ($(ALL_HOST_OBJS)): New target.
10525
10526 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
10527
10528         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
10529         (remap_block): Call id->transform_lang_insert_block instead
10530         of langhook.
10531         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
10532         Set id.transform_lang_insert_block to NULL.
10533         (clone_body): Move to cp/optimize.c
10534         * tree-inline.h (struct copy_body_data): Change
10535         transform_lang_insert_block to function pointer.
10536         (copy_generic_body, copy_decl_no_change): Export.
10537         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
10538         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
10539         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
10540
10541         * c-tree.h (insert_block): Kill.
10542         * c-decl.c (insert_block): Kill.
10543
10544 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
10545
10546         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
10547         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
10548         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
10549         argument.
10550         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
10551         argument, call {push,pop}_function_context from here.
10552         * c-parser.c: Use c_{push,pop}_function_context.
10553
10554         * function.c (push_function_context_to): Move meat ...
10555         (push_function_context): ... here.  Simplify.
10556         * function.c (pop_function_context_from): Move meat ...
10557         (pop_function_context): ... here.  Simplify.
10558         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
10559         leave_nested).
10560         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
10561         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
10562         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
10563         * tree.h (push_function_context_to, pop_function_context_from): Remove.
10564
10565 2008-04-03  Ben Elliston  <bje@au.ibm.com>
10566
10567         * expmed.c (extract_force_align_mem_bit_field): Remove.
10568
10569 2008-04-03  Richard Guenther  <rguenther@suse.de>
10570
10571         PR middle-end/35800
10572         * expr.h (try_casesi): Adjust prototype.
10573         * expr.c (try_casesi): Take fallback label as extra parameter.
10574         Use that for gen_casesi if default_label is NULL.
10575         * stmt.c (expand_case): Pass fallback label to try_casesi,
10576         make sure to fill gaps with a fallback label if default_label
10577         is not present.
10578
10579 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
10580
10581         PR target/35801
10582         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
10583
10584 2008-04-03  Ben Elliston  <bje@au.ibm.com>
10585
10586         * expmed.c (extract_split_bit_field): Remove if (0) code.
10587         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
10588         (do_ds_constraint): Likewise.
10589
10590 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
10591
10592         * doc/cppopts.texi (-dU): Document.
10593         * c-common.h (flag_dump_macros): Update comment.
10594         * c-opts.c (handle_OPT_d): Handle -dU.
10595         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
10596         dump_queued_macros, cb_used_define, cb_used_undef): New.
10597         (init_pp_output): Handle -dU.
10598         (cb_line_change): Call dump_queued_macros.
10599         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
10600
10601 2008-04-02  Anatoly Sokolov <aesok@post.ru>
10602
10603         * config/avr/predicates.md (io_address_operand): New predicate. 
10604         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
10605         * config/avr/avr.c (avr_io_address_p): Remove function.
10606         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
10607         'avr_io_address_p' function.
10608         (out_movhi_r_mr): (Ditto.).
10609         (out_movqi_mr_r): (Ditto.).
10610         (out_movhi_mr_r): (Ditto.).
10611         (avr_address_cost): (Ditto.).
10612
10613 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
10614
10615         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
10616         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
10617         in 32bit mode when XMM registers are available to avoid store
10618         forwarding stalls.
10619         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
10620         corresponding post-reload splitters.
10621
10622 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
10623
10624         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
10625         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
10626         __builtin_ia32_roundss.
10627         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
10628         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
10629         __builtin_ia32_roundss.
10630         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
10631         IX86_BUILTIN_SHUFPD here.
10632
10633 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
10634
10635         * config/i386/i386.md (plogic): New.
10636         (plogicprefix): Likewise.
10637
10638         * config/i386/mmx.md (mmx_<code><mode>3): New.
10639         (mmx_and<mode>3): Removed.
10640         (mmx_ior<mode>3): Likewise.
10641         (mmx_xor<mode>3): Likewise.
10642
10643         * config/i386/sse.md (<code><mode>3): New.
10644         (*<code><mode>3): Likewise.
10645         (*<code><mode>3): Likewise.
10646         (<code><mode>3): Likewise.
10647         (*sse_<code><mode>3): Likewise.
10648         (*sse2_<code><mode>3): Likewise.
10649         (<code>tf3): Likewise.
10650         (*<code>tf3): Likewise.
10651         (and<mode>3): Likewise.
10652         (*and<mode>3): Likewise.
10653         (ior<mode>3): Removed.
10654         (*ior<mode>3): Likewise.
10655         (xor<mode>3): Likewise.
10656         (*xor<mode>3): Likewise.
10657         (*and<mode>3): Likewise.
10658         (*ior<mode>3): Likewise.
10659         (*xor<mode>3): Likewise.
10660         (and<mode>3): Likewise.
10661         (*sse_and<mode>3): Likewise.
10662         (*sse2_and<mode>3): Likewise.
10663         (andtf3): Likewise.
10664         (*andtf3): Likewise.
10665         (ior<mode>3): Likewise.
10666         (*sse_ior<mode>3): Likewise.
10667         (*sse2_ior<mode>3): Likewise.
10668         (iortf3): Likewise.
10669         (*iortf3): Likewise.
10670         (xor<mode>3): Likewise.
10671         (*sse_xor<mode>3): Likewise.
10672         (*sse2_xor<mode>3): Likewise.
10673         (xortf3): Likewise.
10674         (*xortf3): Likewise.
10675
10676 2008-04-02  Richard Guenther  <rguenther@suse.de>
10677
10678         PR tree-optimization/14495
10679         PR tree-optimization/34793
10680         * tree-vrp.c (struct switch_update): New structure.
10681         (to_remove_edges, to_update_switch_stmts): New VECs.
10682         (simplify_switch_using_ranges): New function.  Remove not taken
10683         case labels and edges.
10684         (simplify_stmt_using_ranges): Call it.
10685         (identify_jump_threads): Mark edges we have queued for removal
10686         so we don't thread them.
10687         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
10688         case label vector.
10689         * tree-cfg.c (group_case_labels): Deal with missing default label.
10690         (tree_verify_flow_info): Allow missing default label.
10691         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
10692         (emit_case_nodes): Likewise.
10693         (expand_case): Do not rely on the default label to be present.
10694         * expr.c (try_casesi): Deal with NULL default_label.
10695         (do_tablejump): Likewise.
10696
10697 2008-04-02  Richard Guenther  <rguenther@suse.de>
10698
10699         PR tree-optimization/14495
10700         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
10701         SWITCH_EXPR here ...
10702         (vrp_visit_switch_stmt): ... but here (new function).
10703         (find_case_label_index): New helper function.
10704         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
10705
10706 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
10707
10708         * fwprop.c: Fix ISO-C99ism.
10709
10710 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
10711
10712         PR bootstrap/35752
10713         * Makefile.in (objdir): Set it here.
10714         * configure.ac: Not here.  Find dynamic linker characteristics.
10715         * exec-tool.in: Use them.
10716         * aclocal.m4: Regenerate.
10717         * configure: Regenerate.
10718
10719 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
10720
10721         * expr.c (expand_var): Delete it.
10722         * expr.h (expand_var): Delete prototype.
10723         * function.c (expand_function_start): Use expand_decl instead.
10724         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
10725         langhook.
10726
10727 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
10728
10729         PR rtl-optimization/35542
10730         * fwprop.c (forward_propagate_and_simplify): Replace
10731         loc_reg_mentioned_in_p with reg_mentioned_p.
10732
10733 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
10734
10735         PR rtl-optimization/35281
10736         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
10737         (propagate_rtx_1): Handle PR_HANDLE_MEM.
10738         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
10739         (varying_mem_p): Move above propagate_rtx.
10740         (all_uses_available_at): Do not check MEMs.
10741
10742 2008-04-02  Rafael Espindola  <espindola@google.com>
10743
10744         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
10745         (register_edge_assert_for_2): Split the cond argument.
10746         (register_edge_assert_for_1): Adjust for the change in
10747         register_edge_assert_for_2.
10748         (register_edge_assert_for): Split the cond argument.
10749         (find_switch_asserts): Adjust for the change in
10750         register_edge_assert_for.
10751
10752 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
10753
10754         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
10755         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
10756         offsets for 64-bit mingw.
10757         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
10758         abi for x86_64-pc-mingw.
10759
10760 2008-04-02  Richard Guenther  <rguenther@suse.de>
10761
10762         * tree-vrp.c (extract_range_from_assert): Make sure to not
10763         produce range min/max with TREE_OVERFOW set.
10764         If merging a anti-range and a range keep the anti-range if
10765         the range covers all values of the type.
10766         (register_edge_assert_for_2): Only allow sign-changing
10767         conversions in detecting canonical range checks.  Also
10768         register an assert for the unsigned name if useful.
10769
10770         PR tree-optimization/35787
10771         * tree-vrp.c (vrp_val_max): New function.
10772         (vrp_val_min): Likewise.
10773         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
10774         (vrp_val_is_min): Likewise.
10775         (supports_overflow_infinity): Use vrp_val_{min,max}.
10776         (negative_overflow_infinity): Likewise.
10777         (positive_overflow_infinity): Likewise.
10778         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
10779         (is_positive_overflow_infinity): Likewise.
10780         (is_overflow_infinity): Likewise.
10781         (avoid_overflow_infinity): Use vrp_val_{min,max} and
10782         vrp_val_is_{min,max}.
10783         (set_and_canonicalize_value_range): Canonicalize anti-ranges
10784         to ranges if possible.  Avoid empty ranges.
10785
10786 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10787
10788         PR middle-end/35705
10789         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
10790         the expression is a function address.
10791
10792 2008-04-01  George Helffrich  <george@gcc.gnu.org>
10793
10794         PR fortran/35154, fortran/23057
10795         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
10796         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
10797         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
10798         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
10799         in common.
10800         (dbxout_syms): Check for COMMON-based symbol and wrap in
10801         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
10802         in bracket for efficiency.
10803
10804         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
10805         using DW_TAG_common_block + member offset.
10806         (add_pubname_string): New function.
10807         (dw_expand_expr): New function to find block name and offset for
10808         COMMON var.
10809         (common_check): New function to check whether symbol in Fortran COMMON.
10810         (gen_variable_die): If COMMON, use DW_TAG_common_block.
10811
10812 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
10813
10814         PR c/35436
10815         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
10816
10817 2008-04-02  Ben Elliston  <bje@au.ibm.com>
10818
10819         * config/v850/v850.md (casesi): Remove if (0) code.
10820         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10821         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
10822
10823 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
10824
10825         * config/i386/i386.md (rex64suffix): New mode attribute.
10826         (floathi<mode>2): Disable expander for SSE math.
10827         (*floathi<mode>2_1): New insn insn_and_split pattern.
10828         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
10829         corresponding post-reload splitters.
10830         (*floathi<mode>2_i387): New macroized insn pattern.
10831         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
10832         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
10833         insn_and_split pattern.
10834         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
10835         New macroized instruction patterns and corresponding post-reload
10836         splitters.
10837         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
10838         and corresponding post-reload splitters.
10839         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
10840         New macroized instruction patterns.
10841         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
10842         macroized instruction patterns and corresponding post-reload splitters.
10843         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
10844         corresponding post-reload splitters.
10845         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
10846         New macroized instruction patterns.
10847         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
10848         corresponding post-reload splitters.
10849         (*floatsi<mode>2_i387): New macroized instruction patterns.
10850
10851 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
10852
10853         * config/i386/i386.md (smaxmin): New.
10854         (umaxmin): Likewise.
10855         (maxminiprefix): Likewise.
10856         (maxminfprefix): Likewise.
10857         (<code><mode>3): Likewise.
10858         (smin<mode>3): Removed.
10859         (smax<mode>3): Likewise.
10860
10861         * config/i386/mmx.md (mmx_<code>v2sf3): New.
10862         (mmx_<code>v4hi3): Likewise.
10863         (mmx_<code>v8qi3): Likewise.
10864         (mmx_smaxv2sf3): Removed.
10865         (mmx_sminv2sf3): Likewise.
10866         (mmx_umaxv8qi3): Likewise.
10867         (mmx_smaxv4hi3): Likewise.
10868         (mmx_uminv8qi3): Likewise.
10869         (mmx_sminv4hi3): Likewise.
10870
10871         * config/i386/sse.md (<addsub><mode>3): New.
10872         (*<addsub><mode>3): Likewise.
10873         (<sse>_vm<addsub><mode>3): Likewise.
10874         (<maxmin><mode>3): Likewise.
10875         (*<maxmin><mode>3_finite): Likewise.
10876         (*<maxmin><mode>3): Likewise.
10877         (<sse>_vm<maxmin><mode>3): Likewise.
10878         (sse3_h<addsub>v4sf3): Likewise.
10879         (sse3_h<addsub>v2df3): Likewise.
10880         (<maxmin>v16qi3): Likewise.
10881         (*<maxmin>v16qi3): Likewise.
10882         (<maxmin>v8hi3): Likewise.
10883         (*<maxmin>v8hi3): Likewise.
10884         (*sse4_1_<maxmin><mode>3): Likewise.
10885         (*sse4_1_<maxmin><mode>3): Likewise.
10886         (add<mode>3): Removed.
10887         (*add<mode>3): Likewise.
10888         (<sse>_vmadd<mode>3): Likewise.
10889         (sub<mode>3): Likewise.
10890         (*sub<mode>3): Likewise.
10891         (<sse>_vmsub<mode>3): Likewise.
10892         (smin<mode>3): Likewise.
10893         (*smin<mode>3_finite): Likewise.
10894         (*smin<mode>3): Likewise.
10895         (<sse>_vmsmin<mode>3): Likewise.
10896         (smax<mode>3): Likewise.
10897         (*smax<mode>3_finite): Likewise.
10898         (*smax<mode>3): Likewise.
10899         (<sse>_vmsmax<mode>3): Likewise.
10900         (sse3_haddv4sf3): Likewise.
10901         (sse3_haddv2df3): Likewise.
10902         (sse3_hsubv4sf3): Likewise.
10903         (sse3_hsubv2df3): Likewise.
10904         (umaxv16qi3): Likewise.
10905         (*umaxv16qi3): Likewise.
10906         (smaxv8hi3): Likewise.
10907         (*smaxv8hi3): Likewise.
10908         (*sse4_1_smax<mode>3): Likewise.
10909         (*sse4_1_umax<mode>3): Likewise.
10910         (uminv16qi3): Likewise.
10911         (*uminv16qi3): Likewise.
10912         (sminv8hi3): Likewise.
10913         (*sminv8hi3): Likewise.
10914         (*sse4_1_smin<mode>3): Likewise.
10915         (*sse4_1_umin<mode>3): Likewise.
10916
10917 2008-04-01  Rafael Espindola  <espindola@google.com>
10918
10919         * tree-cfg.c (verify_expr): remove in_phi.
10920         (verify_stmt): Don't call walk_tree with verify_expr. Use
10921         is_gimple_min_invariant instead of is_gimple_val.
10922
10923 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
10924
10925         * doc/include/gpl_v3.texi: Update for manpage generation.
10926         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
10927         gpl.texi.
10928         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
10929         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
10930         gpl_v3.texi instead of gpl.texi.
10931         (gpl.pod): New.
10932
10933 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
10934
10935         PR pch/13675
10936         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
10937
10938 2008-04-01  Rafael Espindola  <espindola@google.com>
10939
10940         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
10941         (extract_code_and_val_from_cond): Use
10942         extract_code_and_val_from_cond_with_ops.
10943
10944 2008-04-01  Jan Hubicka  <jh@suse.cz>
10945
10946         * function.c (free_after_compilation): Free epilogue_delay_list.
10947         (prepare_function_start): Assert that previous compilation was freed.
10948
10949 2008-04-01  Jan Hubicka  <jh@suse.cz>
10950             Jim Wilson  <wilson@tuliptree.org>
10951             Andreas Tobler <andreast@gcc.gnu.org>
10952
10953         PR middle-end/35781
10954         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
10955         rtl.emit instead cfun->emit.
10956         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
10957         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
10958
10959 2008-04-01  Ben Elliston  <bje@au.ibm.com>
10960
10961         * doc/c-tree.texi (Function Basics): Fix grammatical error.
10962
10963 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
10964
10965         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
10966         New options
10967         (fprofile-use): Add var flag_profile_use
10968         * coverage.c (coverage_begin_output): Do not open a gcno file for
10969         output only if -ftest-coverage is set.
10970         Do not add getpwd() to gcda file path.
10971         (build_gcov_info): Check the new flag
10972         flag_profile_datafile_relative_path.
10973         (coverage_init): Use profile_data_prefix.
10974         Read profile counter only if flag_profile_use is set.
10975         * opts.c (common_handle_option): New option fprofile-use=,
10976         fprofile-dir=, fprofile-generate=.
10977         * toplev.c (profile_data_prefix): New variable definition.
10978         * toplev.h (profile_data_prefix): New declaration.
10979         * doc/invoke.tex (Option Summary, Optimization Options):
10980         Add new options.
10981
10982 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
10983
10984         * varasm.c (output_constant_pool_1): In LABEL_REF check,
10985         use tmp consistently.
10986
10987         PR target/35695
10988         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
10989         * config/ia64/ia64.c (rtx_needs_barrier): Handle
10990         UNSPEC_FR_RECIP_APPROX_RES.
10991         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
10992
10993 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
10994
10995         PR c/35750
10996         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
10997
10998 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10999
11000         PR middle-end/30186
11001         * fold-const.c (fold_indirect_ref_1): Support accessing non first
11002         element of the vector via a pointer.
11003
11004 2008-03-31  Ian Lance Taylor  <iant@google.com>
11005
11006         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
11007
11008 2008-03-31  Jan Hubicka  <jh@suse.cz>
11009
11010         * builtins.c (expand_builtin_setjmp_receiver): Update call of
11011         get_arg_pointer_save_area.
11012         * expr.c (init_expr): Just clear out rtl.expr.
11013         * function.c (free_after_compilation): Clear out whole RTL structure.
11014         (get_func_frame_size): Merge into ...
11015         (get_frame_size): ... this one.
11016         (assign_stack_local_1): Merge into ...
11017         (assign_stack_local): ... this one.
11018         (expand_function_end): Update call of get_arg_pointer_save_area.
11019         (get_art_pointer_save_area): Remove cfun argument.
11020         * function.h (emit_status): regno_pointer_align does not need length
11021         attribute. Move x_regno_reg_rtx to ...
11022         (regno_reg_rtx): ... new global array.
11023         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
11024         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
11025         apply_args_value, forced_labels, stack_pointer_delta):
11026         Update accestors.
11027         (struct varasm_status): Move here from varasm.c
11028         (struct rtl_data): New. Move here some fields from struct function.
11029         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
11030         frame_offset, stack_check_probe_note, arg_pointer_save_area,
11031         used_temp_slots avail_temp_slots, temp_slot_level,
11032         nonlocal_goto_handler_labels): Update accesstors.
11033         (rtl): New global variable.
11034         (struct function): Move some fileds to rtl_data.
11035         (get_arg_pointer_save_area): Update prototype.
11036         * emit-rtl.c (rtl): Declare.
11037         (regno_reg_rtx): Declare.
11038         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
11039         Update.
11040         (gen_reg_rtx): Update.
11041         (init_virtual_regs): Do not tate emit_status argument.
11042         (init_emit): Do not allocate emit.
11043         * varasm.c (varasm_statuc): Move to function.h.
11044         (n_deferred_constatns): Update accestor.
11045         (init_varasm_status): Do not allocate varasm_status.
11046         (force_const_mem, get_pool_size, output_constant_pool): Update.
11047         * stmt.c (force_label_rtx): Do not use x_ prefixes.
11048         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
11049
11050 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
11051
11052         PR rtl-optimization/35729
11053         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
11054         references.
11055
11056 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
11057
11058         PR target/32000
11059         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
11060         load/store if memory is unaligned.
11061         (*movti_rex64): Likewise.
11062
11063         * config/i386/predicates.md (misaligned_operand): New.
11064
11065 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
11066
11067         PR tree-opt/35431
11068         * tree-ssa-phiopt.c (conditional_replacement): Return early for
11069         complex types.
11070
11071 2008-03-31  Jan Beulich  <jbeulich@novell.com>
11072
11073         * config/ia64/constraints.md: Add 'j' constraint.
11074         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
11075         (movdi_internal): Likewise.
11076
11077 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
11078
11079         PR c/35748
11080         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
11081
11082 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
11083
11084         PR target/35757
11085         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
11086         proper error message for the third argument on blendpd and
11087         blendps.
11088
11089         * config/i386/sse.md (blendbits): New.
11090         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
11091
11092 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
11093
11094         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
11095
11096 2008-03-30  Richard Guenther  <rguenther@suse.de>
11097
11098         PR middle-end/31023
11099         * fold-const.c (fold_sign_changed_comparison): Do leave
11100         conversions to base-types alone.
11101
11102 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11103
11104         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
11105         the link register if one altivec register is be saved.
11106
11107 2008-03-30  Ben Elliston  <bje@au.ibm.com>
11108
11109         * final.c (final_scan_insn): Remove if (0) code.
11110
11111 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
11112
11113         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
11114
11115 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
11116
11117         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
11118         of V4SFmode to ix86_binary_operator_ok.
11119
11120 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
11121
11122         * config/i386/i386.c (override_options): Initialize
11123         ix86_veclib_handler to ix86_veclibabi_svml when
11124         -mveclibabi=svml is used.
11125         (ix86_veclibabi_svml): New function for SVML ABI style
11126         vectorization support.
11127         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
11128
11129 2008-03-28  Rafael Espindola  <espindola@google.com>
11130
11131         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
11132         (tree_binary_nonnegative_warnv_p): Make it public.
11133         (tree_single_nonnegative_warnv_p): Make it public.
11134         (tree_invalid_nonnegative_warnv_p): Make it public.
11135         (tree_unary_nonzero_warnv_p): Make it public.
11136         (tree_binary_nonzero_warnv_p): Make it public
11137         (tree_single_nonzero_warnv_p): Make it public.
11138         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
11139         (extract_range_from_binary_expr): Split the expr argument.
11140         (extract_range_from_unary_expr): Split the expr argument.
11141         (extract_range_from_comparison): Split the expr argument.
11142         (extract_range_from_expr): Use the new aux functions.
11143         (vrp_evaluate_conditional_warnv): Use
11144         vrp_evaluate_conditional_warnv_with_ops.
11145         * tree.h (tree_unary_nonzero_warnv_p): Declare.
11146         (tree_binary_nonzero_warnv_p): Declare.
11147         (tree_single_nonzero_warnv_p): Declare.
11148         (tree_expr_nonzero_warnv_p): Declare.
11149         (tree_unary_nonnegative_warnv_p): Declare.
11150         (tree_binary_nonnegative_warnv_p): Declare.
11151         (tree_single_nonnegative_warnv_p): Declare.
11152         (tree_invalid_nonnegative_warnv_p): Declare.
11153
11154 2008-03-28  Richard Guenther  <rguenther@suse.de>
11155
11156         PR tree-optimization/30317
11157         PR tree-optimization/30911
11158         PR tree-optimization/34793
11159         * tree-vrp.c (set_and_canonicalize_value_range): New function.
11160         (struct assert_locus_d): New member EXPR.
11161         (register_new_assert_for): Add EXPR parameter to support
11162         ASSERT_EXPR <name, expr OP limit>.
11163         (register_edge_assert_for_1): Adjust callers.
11164         (find_assert_locations): Likewise.
11165         (process_assert_insertions_for): Build condition from expression.
11166         (extract_range_from_assert): Handle ASSERT_EXPRs
11167         of the form ASSERT_EXPR <name, expr OP limit>.
11168         (register_edge_assert_for_2): New helper registering
11169         asserts for comparisons.  Recognize range tests of the form
11170         (unsigned)i - CST1 OP CST2.
11171         (register_edge_assert_for_1): Use it.
11172         (register_edge_assert_for): Likewise.
11173         (needs_overflow_infinity): Integer sub-types
11174         do not need overflow infinities.
11175         (vrp_val_is_max): The extreme values of integer sub-types
11176         are those of the base type.
11177         (vrp_val_is_min): Likewise.
11178         * tree.def (ASSERT_EXPR): Document extra allowed conditional
11179         expressions.
11180
11181 2008-03-28  Nick Clifton  <nickc@redhat.com>
11182
11183         PR target/31110
11184         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
11185         Return GENERAL_REGS for stack adjustment reloads.
11186
11187 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11188
11189         PR target/31334
11190         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
11191         const_vector when all the vectors are constant.
11192
11193 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
11194
11195         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
11196         comparisons.
11197         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
11198         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
11199         (scc_sf): New.
11200         (s<code>_sf): Use new scc_sf attribute for opcode names.
11201
11202 2008-03-27  Tom Tromey  <tromey@redhat.com>
11203
11204         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
11205         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
11206         config/spu/t-spu-elf, config/i386/t-interix,
11207         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
11208         config/i386/x-darwin, config/i386/x-mingw32,
11209         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
11210         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
11211         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
11212         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
11213         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
11214         config/rs6000/x-darwin, config/rs6000/t-rs6000,
11215         config/score/t-score-elf, config/arm/t-strongarm-pe,
11216         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
11217         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
11218         Revert automatic dependency patch.
11219
11220 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
11221
11222         PR target/35657
11223         * config/i386/i386.c (ix86_function_arg_boundary): Align
11224         decimal floating point to its natural boundary.
11225
11226 2008-03-27  Richard Guenther  <rguenther@suse.de>
11227
11228         PR middle-end/35716
11229         * fold-const.c (fold_comparison): Restrict distinct decl
11230         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
11231         solely rely on operand_equal_p.
11232
11233 2008-03-27  Richard Guenther  <rguenther@suse.de>
11234
11235         PR c/32511
11236         * c-common.c (handle_weak_attribute): Reject combination of
11237         weak and inline.
11238
11239 2008-03-27  Richard Guenther  <rguenther@suse.de>
11240
11241         PR tree-optimization/32810
11242         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
11243         conversions from DECL_INITIAL.
11244         (fold_const_aggregate_ref): Likewise from constructor elements.
11245
11246 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
11247
11248         * tree-affine.h (aff_combination_expand): Declare.
11249         (get_inner_reference_aff): Likewise.
11250         * tree-affine.c (aff_combination_expand): Split out from
11251         tree_to_aff_combination_expand.
11252         (get_inner_reference_aff): New function.
11253         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
11254         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
11255         (struct lim_aux_data): sm_done field removed.
11256         (mem_ref_loc_p, mem_ref_locs_p): New types.
11257         (struct mem_ref): Added id, stored, accesses_in_loop,
11258         indep_loop, dep_loop, indep_ref, dep_ref fields.
11259         Removed is_stored, locs and next fields.
11260         (memory_accesses): New variable.
11261         (movement_possibility): Do not allow moving statements
11262         that store to memory.
11263         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
11264         New functions.
11265         (determine_max_movement): For statements with memory references,
11266         find the outermost loop in that the reference is independent.
11267         (move_computations_stmt): Mark the virtual operands for renaming.
11268         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
11269         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
11270         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
11271         add_vop_ref_mapping, create_vop_ref_mapping_loop,
11272         create_vop_ref_mapping, analyze_memory_references,
11273         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
11274         get_all_locs_in_loop, ref_always_accessed_p,
11275         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
11276         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
11277         store_motion_loop, store_motion): New functions.
11278         (struct vop_to_refs_elt): New type.
11279         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
11280         memref_hash, memref_eq, hoist_memory_references): Rewritten.
11281         (schedule_sm): Replaced by...
11282         (execute_sm): ... this.
11283         (determine_lsm_ref, hoist_memory_references,
11284         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
11285         find_more_ref_vops, free_mem_ref, free_mem_refs,
11286         determine_lsm_loop, determine_lsm): Removed.
11287         (tree_ssa_lim_finalize): Free data structures used by store motion.
11288         (tree_ssa_lim): Call analyze_memory_references.  Use
11289         store_motion instead of determine_lsm.
11290
11291 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
11292
11293         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
11294         rename tmake_file to m68hc11/t-m68hc11.
11295         (mcore): Set inhibit_libc to true.
11296         * config.host (alpha*-dec-*vms*): Set extra_programs.
11297         (interix3*): Don't use host_xmake_file.
11298         * configure.ac: Let config.gcc override inhibit_libc.
11299         * configure: Regenerate.
11300
11301         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
11302         * config/t-openbsd-thread: Remove commented out lines.
11303         
11304         * config/x-interix: Remove.
11305
11306         * config/m68hc11/t-m68hc11-gas: Rename to...
11307         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
11308
11309         * config/mcore/t-mcore: Remove T_CFLAGS.
11310         * config/mcore/t-mcore-pe: Likewise.
11311
11312 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
11313
11314         * configure.ac: Replace custom __GNU_SOURCE test with
11315         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
11316         * aclocal.m4: Regenerate.
11317         * configure: Regenerate.
11318         * config.in: Regenerate.
11319
11320 2008-03-27  Richard Guenther  <rguenther@suse.de>
11321
11322         * fold-const.c (target.h): Include.
11323         (fold_comparison): Fold comparison of addresses of decls
11324         that bind locally or of constants.  Consolidate address folding code.
11325         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
11326         results from fold_binary_to_constant.
11327         (compare_values_warnv): Likewise.
11328
11329 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
11330
11331         PR middle-end/35429
11332         * fold-const.c (fold_truthop): Check for integeral types when folding
11333         a == 0 && b == 0 and a != 0 || b != 0 .
11334
11335 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
11336
11337         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
11338
11339 2008-03-26  Andreas Schwab  <schwab@suse.de>
11340
11341         * doc/invoke.texi: Fix use of @item vs. @itemx.
11342
11343 2008-03-26  Tom Tromey  <tromey@redhat.com>
11344
11345         * Makefile.in (build/gensupport.o, build/print-rtl.o,
11346         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
11347         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
11348         build/gencodes.o, build/genconditions.o, build/genconfig.o,
11349         build/genconstants.o, build/genemit.o, build/genextract.o,
11350         build/genflags.o, build/genmddeps.o, build/genopinit.o,
11351         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
11352         options.h.
11353
11354 2008-03-26  Richard Guenther  <rguenther@suse.de>
11355
11356         Revert
11357         2008-03-26  Richard Guenther  <rguenther@suse.de>
11358
11359         * fold-const.c (target.h): Include.
11360         (fold_comparison): Fold comparison of addresses of two decls
11361         that bind locally.  Consolidate address folding code.
11362
11363 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11364
11365         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
11366         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
11367         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
11368         dconstsqrt2, dconstthird, dconste and/or dconst10.
11369         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
11370         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
11371         dconstsqrt2, dconste): Delete.
11372         (init_emit_once): Likewise.  Simplify initializing dconstm1.
11373         Constify variable.
11374         * real.c (get_real_const): New.
11375         * real.h (dconst3, dconst10, dconstm2, dconstthird,
11376         dconstsqrt2, dconste): Delete.
11377         (real_value_const, get_real_const): New.
11378
11379 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
11380
11381         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
11382
11383         * config/i386/i386.c (ix86_function_arg_boundary): Check
11384         BIGGEST_ALIGNMENT instead of 128.
11385         (setup_incoming_varargs_64): Likewise.
11386
11387 2008-03-26  Tom Tromey  <tromey@redhat.com>
11388
11389         * Makefile.in (DEPFILES): Add missing '/'.
11390
11391 2008-03-26  Richard Guenther  <rguenther@suse.de>
11392
11393         * fold-const.c (target.h): Include.
11394         (fold_comparison): Fold comparison of addresses of two decls
11395         that bind locally.  Consolidate address folding code.
11396
11397 2008-03-26  Nick Clifton  <nickc@redhat.com>
11398
11399         PR target/31232
11400         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
11401         not allow INT+INT as a legitimate addressing mode.
11402
11403 2008-03-26  Richard Guenther  <rguenther@suse.de>
11404
11405         * tree-flow.h (widen_bitfield): Remove declaration.
11406         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
11407         (widen_bitfield): Remove function.
11408         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
11409         code.
11410
11411 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11412
11413         PR target/31558
11414         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
11415         error_mark_node's.
11416
11417 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
11418
11419         PR rtl-optimization/35232
11420         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
11421         (forget_old_reloads_1, forget_marked_reloads): Don't clear
11422         reg_reloaded_call_part_clobbered here.
11423         (reload_regs_reach_end_p): New function.
11424         (reload_reg_rtx_for_input): New variable.
11425         (reload_reg_rtx_for_output): Likewise.
11426         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
11427         when reassigning a pseudo register.  Load reloadreg from 
11428         reload_reg_rtx_for_input, moving the mode and register
11429         calculation to...
11430         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
11431         instead of the original when deciding whether an input reload
11432         would be a no-op or whether an output reload can be deleted.
11433         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
11434         when setting up new_spill_reg_store.  Load it from
11435         reload_reg_rtx_for_output, moving the mode and register
11436         calculation to...
11437         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
11438         instead of the original when deciding whether an output reload
11439         would be a no-op.  Do the same when modifying insn notes.
11440         Use rtx_equal_p instead of == to compare the registers.
11441         (inherit_piecemeal_p): Take a mode and two register numbers
11442         as argument.
11443         (emit_reload_insns): Clear new_spill_reg_store for every hard
11444         register in the reload register.  Remove spill registers
11445         from reg_reloaded_valid before considering whether to record
11446         inheritance information for them.  Use reload_reg_rtx_for_output
11447         instead of reg_rtx when recording output reloads.  Use
11448         reload_reg_rtx_for_input instead of reg_rtx when recording
11449         input reloads.  Set or clear reg_reloaded_call_part_clobbered
11450         at the same time as setting reg_reloaded_valid.
11451         (delete_output_reload): Add a new_reload_reg parameter and use it
11452         instead of rld[j].reg_rtx.
11453         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
11454         calls accordingly.
11455
11456 2008-03-25  Tom Tromey  <tromey@redhat.com>
11457
11458         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
11459         (build/genattr.o): Likewise.
11460         (build/genattrtab.o): Likewise.
11461         (build/gencodes.o): Likewise.
11462         (build/genconfig.o): Likewise.
11463         (build/genconstants.o): Likewise.
11464         (build/genemit.o): Likewise.
11465         (build/genextract.o): Likewise.
11466         (build/genflags.o): Likewise.
11467
11468 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
11469         
11470         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
11471         instead of size_int for integer types.
11472         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
11473         to match type of MINUS_EXPR.
11474         
11475 2008-03-25  Tom Tromey  <tromey@redhat.com>
11476
11477         * configure: Rebuilt.
11478         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
11479         Makefile.
11480
11481 2008-03-25  Tom Tromey  <tromey@redhat.com>
11482
11483         * config/x-solaris (host-solaris.o): Update.
11484         * config/x-linux (host-linux.o): Update.
11485         * config/x-hpux (host-hpux.o): Update.
11486         * config/x-darwin (host-darwin.o): Update.
11487         * config/v850/t-v850e (v850-c.o): Update.
11488         * config/v850/t-v850 (v850-c.o): Update.
11489         * config/t-vxworks (vxworks.o): Update.
11490         * config/t-sol2 (sol2-c.o, sol2.o): Update.
11491         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
11492         * config/spu/t-spu-elf (spu-c.o): Update.
11493         (spu.o): Remove.
11494         * config/sh/t-symbian (sh-c.o): Update.
11495         (symbian.o): Update.
11496         * config/sh/t-sh (sh-c.o): Update.
11497         * config/score/t-score-elf (score7.o, score3.o): Update.
11498         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
11499         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
11500         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
11501         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
11502         (rs6000.o): Remove.
11503         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
11504         * config/m32c/t-m32c (m32c-pragma.o): Update.
11505         * config/ia64/t-ia64 (ia64-c.o): Update.
11506         * config/i386/x-mingw32 (host-mingw32.o): Update.
11507         * config/i386/x-i386 (driver-i386.o): Update.
11508         * config/i386/x-darwin (host-i386-darwin.o): Update.
11509         * config/i386/x-cygwin (host-cygwin.o): Update.
11510         * config/i386/t-nwld (nwld.o): Update.
11511         * config/i386/t-netware (netware.o): Update.
11512         * config/i386/t-interix (winnt.o): Update.
11513         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
11514         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
11515         msformat-c.o): Update.
11516         * config/bfin/t-bfin-linux (generated_files): Add
11517         linux-sysroot-suffix.h.
11518         * config/arm/t-wince-pe (pe.o): Update.
11519         * config/arm/t-strongarm-pe (pe.o): Update.
11520         * config/arm/t-pe (pe.o): Update.
11521         * config/arm/t-arm (arm-c.o): Update.
11522         * doc/install.texi (Prerequisites): Require make 3.80.
11523         * Makefile.in: Remove .o targets.
11524         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
11525         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
11526         (simple_generated_h, simple_generated_c): Move earlier.
11527         (generated_files): New variable.
11528         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
11529         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
11530         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
11531         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
11532         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
11533         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
11534         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
11535         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
11536         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
11537         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
11538         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
11539         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
11540         (.c.o): Remove.
11541         (COMPILE.base, COMPILE): New variables.
11542         (%.o): New pattern rule.
11543         (ALL_HOST_OBJS): New variable.
11544         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
11545         (dummy-checksum.o, cc1-checksum.o): Remove.
11546         (DRIVER_SHLIB): New variable.
11547         (DRIVER_DEFINES): Use it.
11548         (gencondmd.c): Move out of build/.
11549         (s-conditions): Update.
11550         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
11551         (ALL_BUILD_OBJS): Likewise.
11552         (build/%.o): Use BUILDCOMPILE.
11553         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
11554         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
11555         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
11556         build/gencheck.o, build/gencodes.o, build/genconditions.o,
11557         build/genconfig.o, build/genconstants.o, build/genemit.o,
11558         build/genextract.o, build/genflags.o, build/genmddeps.o,
11559         build/genopinit.o, build/genoutput.o, build/genpeep.o,
11560         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
11561         build/gen-protos.o, build/scan.o, build/fix-header.o,
11562         build/scan-decls.o): Simplify.
11563         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
11564         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
11565         prefix.o, toplev.o): Reduce to variable setting.
11566         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
11567         ($(out_object_file), gcc-options.o): New targets.
11568         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
11569         * configure: Rebuilt.
11570         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
11571         * doc/sourcebuild.texi (Front End Directory): Document new variable.
11572
11573 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
11574
11575         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
11576         complain when we hit an error, return ERROR_MARK_NODE.
11577
11578 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
11579
11580         * config/sh/constraints.md (Pso, Psz): New constraints.
11581         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
11582         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
11583
11584 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
11585
11586         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
11587         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
11588
11589 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
11590
11591         * config/sh/sh.md (prefetch): Add condition for SH2A target.
11592         (prefetch_sh2a): New.   
11593
11594 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
11595             Naveen.H.S  <naveen.hs@kpitcummins.com>
11596
11597         * config/sh/constraints.md (I28): New constraint.
11598         * config/sh/sh.c (broken_move): Add support for movi20s.
11599         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
11600
11601 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
11602             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
11603             Naveen.H.S  <naveen.hs@kpitcummins.com>
11604
11605         * config/sh/sh.c (SH_ATTRIBUTES): Define.
11606         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
11607         (print_operand): Handle resbank in %@ operand code.
11608         (sh_encode_section_info): New.
11609         (push_regs): Add conditions for resbank.
11610         (sh_expand_epilogue): Likewise.
11611         (sh_insert_attributes): Likewise.
11612         (sh_attribute_table): Likewise.
11613         (sh_handle_resbank_handler_attribute): New.
11614         (sh2a_handle_function_vector_handler_attribute): New.
11615         (sh2a_is_function_vector_call): New.
11616         (sh2a_get_function_vector_number): New.
11617         (sh2a_function_vector_p): New.
11618         (sh_cfun_resbank_handler_p): New.
11619         * config/sh/sh.md (calli): Emit jsr/n if possible.
11620         (calli_tbr_rel): New.
11621         (calli_pcrel): Emit jsr/n if possible.
11622         (return_i): Emit rts/n if possible.
11623         (call_valuei_tbr_rel): New.
11624         (call_valuei_pcrel): Add condition for SH2A target.
11625         (call_value): Likewise.
11626         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
11627         (sh2a_get_function_vector_number): Likewise.
11628         (sh2a_is_function_vector_call): Likewise.
11629         * doc/extend.texi: Document TBR relative addressing of SH2A.
11630         (resbank): Add description for SH2A.
11631
11632 2008-03-24  Richard Guenther  <rguenther@suse.de>
11633
11634         PR c/22371
11635         * gimplify.c (gimplify_modify_expr): For frontend type-correct
11636         pointer assignments change conversions according to middle-end rules.
11637         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
11638         * configure.ac: Include type checking in yes.
11639         * configure: Regenerate.
11640
11641 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11642
11643         * diagnostic.c (diagnostic_count_diagnostic): Delete.
11644         (diagnostic_report_diagnostic): Update. Handle ICEs here.
11645         
11646 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
11647
11648         * gthr-vxworks.h (UNUSED): Define.
11649
11650 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
11651
11652         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
11653
11654 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
11655
11656         * doc/extend.texi (Function Attributes): Add missing comma in the
11657         example of the "alloc_size" attribute.
11658         
11659 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
11660
11661         Revert:
11662         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
11663
11664         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
11665         32bit host.
11666
11667         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
11668
11669         PR target/35496
11670         * stor-layout.c (update_alignment_for_field): Set minimum alignment
11671         of the underlying type of a MS bitfield layout to the natural
11672         alignment of the type.
11673
11674         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
11675
11676         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
11677         to their natural alignment to avoid store forwarding stalls.
11678
11679 2008-03-22  Richard Guenther  <rguenther@suse.de>
11680
11681         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
11682         For PHI nodes verify the address is invariant.
11683         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
11684         (get_symbol_constant_value): Use is_gimple_min_invariant.
11685         (maybe_fold_stmt_indirect): Likewise.
11686
11687 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
11688
11689         PR rtl-optimization/33927
11690         * Makefile.in (dse.o): Depend on $(TM_P_H).
11691         * expr.h (extract_low_bits): Declare.
11692         * expmed.c (extract_low_bits): New function.
11693         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
11694         * dse.c: Include tm_p.h.
11695         (find_shift_sequence): Remove the read_reg argument and return the
11696         read value.  Emit the instructions instead of returning them.
11697         Iterate on new_mode rather than calculating it each time.
11698         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
11699         source to NEW_MODE and extract_low_bits to convert the shifted
11700         value to READ_MODE.
11701         (replace_read): Allow the load and store to have different mode
11702         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
11703         or extraction instructions before trying the replacement.  Update
11704         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
11705
11706 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
11707
11708         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
11709         to their natural alignment to avoid store forwarding stalls.
11710
11711 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11712
11713         PR target/27946
11714         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
11715         encouraging but not allowing gprs for input;
11716         change the input constraint to !f#r.
11717         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
11718         gprs for output;
11719         change the output constraint to !f#r.
11720
11721 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
11722
11723         PR target/13958
11724         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
11725         corresponding post-reload splitters.
11726         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
11727         when x87 FP math is selected.
11728         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
11729         New function prototype.
11730         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
11731         unreachable function to ease macroization of insn patterns.
11732
11733 2008-03-21  Martin Jambor  <mjambor@suse.cz>
11734
11735         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
11736         reference dumps if ddr is NULL or dependence is unknown.
11737
11738 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11739
11740         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
11741         unsigned extension into account.
11742         (ATOMIC_COMPARE_AND_SWAP): Likewise.
11743         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
11744         Do computations on a scratch register.
11745
11746 2008-03-21  Richard Guenther  <rguenther@suse.de>
11747
11748         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
11749         Use is_gimple_min_invariant instead of TREE_INVARIANT.
11750         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
11751         * tree-ssa-dom.c (record_equality): Likewise.
11752         * tree-inline.c (copy_body_r): Likewise.
11753         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
11754         TREE_INVARIANT.
11755
11756 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11757
11758         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
11759         as 'delete_unused' argument.
11760
11761 2008-03-20  Richard Guenther  <rguenther@suse.de>
11762
11763         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
11764         special casing of constant qualifiers.
11765         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
11766         care about them in general.
11767         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
11768         regardless of their type.
11769         (fold_stmt_r): Forcefully fold *& if we end up with that.
11770
11771 2008-03-20  Paul Brook  <paul@codesourcery.com>
11772
11773         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
11774         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
11775         linker flags.
11776         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
11777         definition.
11778         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
11779         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
11780
11781 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
11782
11783         * common.opt (Wmudflap): New option.
11784         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
11785         (mx_register_decls): Likewise.
11786         (mudflap_finish_file): Likewise.
11787         * doc/invoke.texi: Document -Wno-mudflap.
11788
11789 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
11790
11791         * c-format.c (replace_format_name_to_system_name): New.
11792         (cmp_attribs): New.
11793         (convert_format_name_to_system_name): New.
11794         (decode_format_attr): Add use of convert_format_name_to_system_name.
11795         (format_types_orig): Add gnu_ prefix to names.
11796         (check_format_info_main): Special treating of \0 escaped names for
11797         supporting multi-character format specifiers as I32, I64.
11798         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
11799         (gnu_target_overrides_format_attributes): New.
11800         * c-format.h: Add structure target_ovr_attr to hold
11801         system specific formatter names.
11802         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
11803         msformat-c.o file to c_target_objs and cxx_target_objs.
11804         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
11805         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
11806         (TARGET_N_FORMAT_TYPES): New.
11807         * config/i386/msformat-c.c: New.
11808         * config/i386/t-cygming: Add build rule for msformat-c.o.
11809         * doc/extend.texi: Add new format names gnu_* and ms_* and
11810         further details.
11811         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
11812
11813 2008-03-20  Ira Rosen  <irar@il.ibm.com>
11814
11815         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
11816         optimizations turned on under -O3.
11817         (ftree-vectorize): Add that the flag is turned on with -O3.
11818
11819 2008-03-20  Ben Elliston  <bje@au.ibm.com>
11820
11821         * regmove.c (try_auto_increment): Fix spelling error in comment.
11822         * final.c (final_scan_insn): Likewise.
11823
11824 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
11825
11826         PR target/14552
11827         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
11828         allocator preferences for "y" and "r" class registers.
11829         ("*mov<mode>_internal"): Ditto.
11830         ("*movv2sf_internal_rex64"): Ditto.
11831         ("*movv2sf_internal"): Ditto.
11832
11833 2008-03-19  Michael Matz  <matz@suse.de>
11834
11835         PR middle-end/35616
11836         * calls.c (expand_call): Check overlap of arguments with call
11837         address for sibcalls.
11838
11839 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
11840
11841         PR target/35496
11842         * stor-layout.c (update_alignment_for_field): Set minimum alignment
11843         of the underlying type of a MS bitfield layout to the natural
11844         alignment of the type.
11845
11846 2008-03-19  Jan Hubicka  <jh@suse.cz>
11847
11848         PR other/35094
11849         * toplev.c (decode_d_option): Handle all CPP flags.
11850         * tree-vrp.c: Update tree_pass descriptors.
11851         * regrename.c: Update tree_pass descriptors.
11852         * fwprop.c: Update tree_pass descriptors.
11853         * doc/invoke.texi: Remove documentation of dropped -d? flags.
11854         * tree-into-ssa.c: Update tree_pass descriptors.
11855         * tree-dump.c: Update tree_pass descriptors.
11856         * tree-complex.c: Update tree_pass descriptors.
11857         * tree-dump.h: Update tree_pass descriptors.
11858         * see.c: Update tree_pass descriptors.
11859         * cgraphbuild.c: Update tree_pass descriptors.
11860         * tracer.c: Update tree_pass descriptors.
11861         * tree-loop-distribution.c: Update tree_pass descriptors.
11862         * cgraph.c: Update tree_pass descriptors.
11863         * postreload-gcse.c: Update tree_pass descriptors.
11864         * postreload.c: Update tree_pass descriptors.
11865         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
11866         * tree-tailcall.c: Update tree_pass descriptors.
11867         * tree-pass.h (tree_opt_pass): Rename to ...
11868         (opt_pass) ... this one; add "type" field and remove letter field.
11869         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
11870         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
11871         all_lowering_passes): Update declaration.
11872         * ipa-cp.c: Update tree_pass descriptors.
11873         * final.c: Update tree_pass descriptors.
11874         * omp-low.c: Update tree_pass descriptors.
11875         * tree-ssa-dse.c: Update tree_pass descriptors.
11876         * ipa-reference.c: Update tree_pass descriptors.
11877         * tree-ssa-uncprop.c: Update tree_pass descriptors.
11878         * auto-inc-dec.c: Update tree_pass descriptors.
11879         * reorg.c: Update tree_pass descriptors.
11880         * cgraphunit.c: Update tree_pass descriptors.
11881         * tree-ssa-copyrename.c: Update tree_pass descriptors.
11882         * tree-ssa-ccp.c: Update tree_pass descriptors.
11883         * df-core.c: Update tree_pass descriptors.
11884         * mode-switching.c: Update tree_pass descriptors.
11885         * tree-nomudflap.c: Update tree_pass descriptors.
11886         * modulo-sched.c: Update tree_pass descriptors.
11887         * ipa-pure-const.c: Update tree_pass descriptors.
11888         * cse.c: Update tree_pass descriptors.
11889         * web.c: Update tree_pass descriptors.
11890         * tree-stdarg.c: Update tree_pass descriptors.
11891         * tree-ssa-math-opts.c: Update tree_pass descriptors.
11892         * tree-ssa-dom.c: Update tree_pass descriptors.
11893         * tree-nrv.c: Update tree_pass descriptors.
11894         * tree-ssa-alias.c: Update tree_pass descriptors.
11895         * loop-init.c: Update tree_pass descriptors.
11896         * gimple-low.c: Update tree_pass descriptors.
11897         * ipa-inline.c: Update tree_pass descriptors.
11898         * tree-ssa-sink.c: Update tree_pass descriptors.
11899         * global.c: Update tree_pass descriptors.
11900         * ifcvt.c: Update tree_pass descriptors.
11901         * jump.c: Update tree_pass descriptors.
11902         * predict.c: Update tree_pass descriptors.
11903         * tree-ssa-loop.c: Update tree_pass descriptors.
11904         * recog.c: Update tree_pass descriptors.
11905         * dse.c: Update tree_pass descriptors.
11906         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
11907         * tree-eh.c: Update tree_pass descriptors.
11908         * regmove.c: Update tree_pass descriptors.
11909         * local-alloc.c
11910         * function.c: Update tree_pass descriptors.
11911         * tree-vectorizer.c: Update tree_pass descriptors.
11912         * gcse.c: Update tree_pass descriptors.
11913         * ipa-type-escape.c: Update tree_pass descriptors.
11914         * tree-if-conv.c: Update tree_pass descriptors.
11915         * init-regs.c: Update tree_pass descriptors.
11916         * ipa.c: Update tree_pass descriptors.
11917         * tree-ssa-phiopt.c: Update tree_pass descriptors.
11918         * rtl-factoring.c: Update tree_pass descriptors.
11919         * lower-subreg.c: Update tree_pass descriptors.
11920         * bt-load.c: Update tree_pass descriptors.
11921         * tree-dfa.c: Update tree_pass descriptors.
11922         * except.c: Update tree_pass descriptors.
11923         * emit-rtl.c: Update tree_pass descriptors.
11924         * cfgexpand.c: Update tree_pass descriptors.
11925         * tree-cfgcleanup.c: Update tree_pass descriptors.
11926         * cfgcleanup.c: Update tree_pass descriptors.
11927         * tree-ssa-pre.c: Update tree_pass descriptors.
11928         * tree-sra.c: Update tree_pass descriptors.
11929         * tree-mudflap.c: Update tree_pass descriptors.
11930         * tree-ssa-copy.c: Update tree_pass descriptors.
11931         * cfglayout.c: Update tree_pass descriptors.
11932         * tree-ssa-forwprop.c: Update tree_pass descriptors.
11933         * tree-ssa-dce.c: Update tree_pass descriptors.
11934         * tree-ssa.c: Update tree_pass descriptors.
11935         * regclass.c: Update tree_pass descriptors.
11936         * integrate.c: Update tree_pass descriptors.
11937         * tree-optimize.c: Update tree_pass descriptors.
11938         * tree-ssa-phiprop.c: Update tree_pass descriptors.
11939         * tree-object-size.c: Update tree_pass descriptors.
11940         * combine.c: Update tree_pass descriptors.
11941         * tree-outof-ssa.c: Update tree_pass descriptors.
11942         * bb-reorder.c: Update tree_pass descriptors.
11943         * stack-ptr-mod.c: Update tree_pass descriptors.
11944         * var-tracking.c: Update tree_pass descriptors.
11945         * tree-profile.c: Update tree_pass descriptors.
11946         * tree-vect-generic.c: Update tree_pass descriptors.
11947         * reg-stack.c: Update tree_pass descriptors.
11948         * sched-rgn.c: Update tree_pass descriptors.
11949         * tree-ssa-structalias.c: Update tree_pass descriptors.
11950         * tree-cfg.c: Update tree_pass descriptors.
11951         * passes.c (current_pass): Update declaration.
11952         (finish_optimization_passes): Update.
11953         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
11954         (register_one_dump_file, register_dump_files_1, next_pass_1):
11955         Update arguments.
11956         (init_optimization_passes): Update handling of new types.
11957         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
11958         * ipa-struct-reorg.c: Update tree_pass descriptors.
11959         * tree-ssa-reassoc.c: Update tree_pass descriptors.
11960         * combine-stack-adj.c: Update tree_pass descriptors.
11961         * cfgrtl.c: Update tree_pass descriptors.
11962         * dce.c: Update tree_pass descriptors.
11963         * tree-ssanames.c: Update tree_pass descriptors.
11964
11965 2008-03-19  Richard Guenther  <rguenther@suse.de>
11966
11967         PR middle-end/35609
11968         * tree-ssa.c (walk_data): New structure.
11969         (warn_uninitialized_var): If not always_executed warn with "maybe"
11970         instead of "is".
11971         (execute_early_warn_uninitialized): Compute post-dominators.
11972         Initialize always_executed before processing each basic block.
11973
11974 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
11975
11976         PR target/35504
11977         * config/i386/i386.c (x86_this_parameter): Calculate correct location
11978         of "this" pointer when "regparm = N" or "fastcall" is in effect.
11979
11980 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11981
11982         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
11983
11984 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
11985
11986         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
11987         is true.
11988         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
11989         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
11990         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
11991         target after ignore has been set, and move there also the commputation
11992         of subtarget and original_target.
11993         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
11994         (LANG_HOOKS_INITIALIZER): Remove it.
11995         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
11996
11997 2008-03-18  Richard Guenther  <rguenther@suse.de>
11998
11999         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
12000         found an expression with constants, note that in the VN for the lhs.
12001         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
12002         fold them to constants if possible.  Run cleanup_cfg if done so.
12003         (execute_pre): Return todo.
12004         (do_pre): Likewise.
12005         (execute_fre): Likewise.
12006         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
12007         of constants.
12008         (get_prop_source_stmt): Look through pointer conversions.
12009
12010 2008-03-18  Jan Hubicka  <jh@suse.cz>
12011
12012         * tree-pretty-print.c: Include predict.h.
12013         (dump_generic_node): Dump predictor.
12014         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
12015         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
12016         * gimple-low.c (lower_stmt): Likewise.
12017         * expr.c (expand_expr_real): Likewise.
12018         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
12019         them.
12020         (build_predict_expr, build_predict_expr): New.
12021         * predict.h (predictor_name, build_predict_expr): Update.
12022         * c-typeck.c (c_finish_bc_stmt): Add prediction.
12023         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
12024         * predict.def (PRED_CONTINUE): Update hitrate.
12025         * tree.def (PREDICT_EXPR): Define.
12026         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
12027         do not handle BIND_EXPR.
12028         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
12029         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
12030         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
12031         operands.
12032
12033 2008-03-18  Michael Matz  <matz@suse.de>
12034
12035         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
12036
12037 2008-03-18  Richard Guenther  <rguenther@suse.de>
12038
12039         * tree-gimple.h (is_gimple_invariant_address): Declare.
12040         (is_gimple_constant): Likewise.
12041         * tree-gimple.c (is_gimple_constant): New function.
12042         (is_gimple_invariant_address): Likewise.
12043         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
12044         and is_gimple_invariant_address.
12045         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
12046         previous change.
12047         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
12048         an addressable base.
12049
12050 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
12051
12052         PR middle-end/35611
12053         * gimplify.c (gimplify_expr): Gimplify second operand of
12054         OMP_ATOMIC_LOAD.
12055
12056 2008-03-17  Richard Guenther  <rguenther@suse.de>
12057
12058         PR tree-optimization/19637
12059         * fold-const.c (fold_unary): Remove restrictions of removing
12060         intermediate pointer-conversions (P2)(P1)P0.
12061         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
12062         conversion to void pointer.
12063         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
12064
12065 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
12066
12067         PR debug/31510
12068         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
12069         emulated thread local variables.
12070
12071 2008-03-16  Richard Guenther  <rguenther@suse.de>
12072
12073         PR middle-end/35607
12074         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
12075         expand TREE_INVARIANT operations that are not gimple invariant.
12076
12077 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
12078
12079         * doc/extend.texi (Alignment): Say that the ABI controls
12080         the __alignof__ for non-strict-alignment targets rather
12081         than being a recommendation.
12082
12083 2008-03-15  Paul Brook  <paul@codesourcery.com>
12084
12085         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
12086         annotations.
12087         (arm_output_fn_unwind): Mark functions that can not be unwound.
12088
12089 2008-03-15  Paul Brook  <paul@codesourcery.com>
12090
12091         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
12092         extension instructions.
12093
12094 2008-03-15  Richard Guenther  <rguenther@suse.de>
12095
12096         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
12097         and fold constant aggregate refs.
12098         (fold_const_aggregate_ref): Handle string constants
12099         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
12100         (evaluate_stmt): Simplify now that ccp_fold folds constant
12101         aggregate refs.
12102
12103 2008-03-15  Paul Brook  <paul@codesourcery.com>
12104
12105         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
12106         (extzv): Use gen_extzv_t2.
12107         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
12108
12109 2008-03-15  Richard Guenther  <rguenther@suse.de>
12110
12111         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
12112         (fold_const_aggregate_ref): Likewise.
12113         (get_value): Return NULL if we don't have any values.
12114         (ccp_finalize): Set const_val to NULL after freeing it.
12115         * tree-flow.h (get_symbol_constant_value): Declare.
12116         (fold_const_aggregate_ref): Likewise.
12117         * tree-ssa-sccvn.c (try_to_simplify): Use them.
12118
12119 2008-03-15  Richard Guenther  <rguenther@suse.de>
12120
12121         PR middle-end/35593
12122         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
12123         to not produce negative array indices if not allowed.  Add
12124         parameter to indicate that.
12125         (maybe_fold_offset_to_component_ref): Allow negative array
12126         indices only for the first member of a structure.
12127         (maybe_fold_offset_to_reference): Allow negative array indices.
12128         (maybe_fold_stmt_addition): Likewise.
12129
12130 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
12131             Anatoly Sokolov <aesok@post.ru>
12132
12133         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
12134         (avr_arch): Add ARCH_AVR6.
12135         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
12136         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
12137         instead of fixed value 2.
12138         (print_operand_address): Use gs() asm specifier instead of pm().
12139         (avr_assemble_integer): (Ditto.).
12140         (avr_output_addr_vec_elt): (Ditto.).
12141         (print_operand): Handle "!" code.
12142         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
12143         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
12144         (AVR_HAVE_EIJMP_EICALL): Define.
12145         (AVR_3_BYTE_PC): Redefine.
12146         (AVR_2_BYTE_PC): (Ditto.).
12147         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
12148         (LINK_SPEC): Add atmega2560 and atmega2561.
12149         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
12150         (crtm2561.o).
12151         * config/avr/avr.md (call_insn): Use eicall instead of icall 
12152         for 3 byte PC devices.
12153         (call_value_insn): (Ditto.).
12154         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
12155         (indirect_jump): Use only for for 2 byte PC devices.
12156         (*tablejump): (Ditto.).
12157         (*indirect_jump_avr6): Add insn.
12158         (*tablejump_rjmp): Don't use for 3 byte PC devices.
12159         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
12160         instead of ijmp for 3 byte PC devices.
12161         (__tablejump2__): (Ditto.).
12162         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
12163         (MULITLIB_DIRNAMES): (Ditto.). 
12164         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
12165
12166 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
12167
12168         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
12169         "sse2_umulsidi3".  Use V1DI mode for operand 0.
12170         ("mmx_psadbw"): Use V1DI mode for operand 0.
12171         * config/i386/i386-modes.def (V1SI): New vector mode.
12172         * config/i386/i386.c (struct builtin_description)
12173         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
12174         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
12175         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
12176         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
12177         v1di_ftype_v8qi_v8qi type.
12178         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
12179
12180         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
12181         __builtin_ia32_pmuludq]: Fix the mode of return value.
12182
12183 2008-03-15  Richard Guenther  <rguenther@suse.de>
12184
12185         PR middle-end/35595
12186         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
12187         being a PHI_NODE.
12188
12189 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
12190         
12191         * doc/invoke.texi (Option Summary, Xtensa Options): Document
12192         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
12193         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
12194         unless TARGET_SERIALIZE_VOLATILE is enabled.
12195         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
12196         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
12197         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
12198
12199 2008-03-14  Richard Guenther  <rguenther@suse.de>
12200
12201         PR tree-optimization/34172
12202         * tree-flow.h (refs_may_alias_p): Declare.
12203         (get_single_def_stmt): Likewise.
12204         (get_single_def_stmt_from_phi): Likewise.
12205         (get_single_def_stmt_with_phi): Likewise.
12206         * tree-dfa.c (refs_may_alias_p): New function.
12207         (get_single_def_stmt): Likewise.
12208         (get_single_def_stmt_from_phi): Likewise.
12209         (get_single_def_stmt_with_phi): Likewise.
12210         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
12211         (vn_reference_lookup_1): New helper function.
12212         (vn_reference_lookup): Walk the virtual use-def chain to
12213         continue searching for a match if the def does not alias the
12214         reference we are looking for.
12215
12216 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
12217
12218         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
12219         archive and Perzl.  Update The Written Word listing.
12220
12221 2008-03-14  Richard Guenther  <rguenther@suse.de>
12222
12223         PR tree-optimization/34043
12224         PR tree-optimization/33989
12225         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
12226         when doing FRE.
12227         (bitmap_find_leader): Use extra argument to verify dominance
12228         relationship inside a basic-block.
12229         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
12230         (find_leader_in_sets): Adjust.
12231         (create_component_ref_by_pieces): Take extra argument for
12232         dominance check, handle lookup failures.
12233         (find_or_generate_expression): Likewise.
12234         (create_expression_by_pieces): Likewise.
12235         (insert_into_preds_of_block): Adjust.
12236         (create_value_expr_from): If asked for, verify all operands
12237         are in the blocks AVAIL_OUT set.
12238         (make_values_for_stmt): Check for SSA_NAMEs that are life
12239         over an abnormal edge.
12240         (compute_avail): Remove such check.
12241         (do_SCCVN_insertion): New function.
12242         (eliminate): If we do not find a leader suitable for replacement
12243         insert a replacement expression from SCCVN if available.
12244         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
12245         (struct vn_ssa_aux): Add needs_insertion flag.
12246         * tree-ssa-sccvn.c (may_insert): New global flag.
12247         (copy_reference_ops_from_ref): Value-number union member access
12248         based on its size, not type and member if insertion is allowed.
12249         (visit_reference_op_load): For a weak match from union type
12250         punning lookup a view-converted value and insert a SSA_NAME
12251         for that value if that is not found.
12252         (visit_use): Make dumps shorter.  Do not disallow value numbering
12253         SSA_NAMEs that are life over an abnormal edge to constants.
12254         (free_scc_vn): Release inserted SSA_NAMEs.
12255         (run_scc_vn): New flag to specify whether insertion is allowed.
12256         Process SSA_NAMEs in forward order.
12257         * tree-ssa-loop-im.c (for_each_index): Handle invariant
12258         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
12259         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
12260         pointer type to/from integral types that do not change the
12261         precision to regular conversions.
12262
12263 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
12264
12265         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
12266         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
12267         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
12268         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
12269         input arguments and the mode of return value.  Built-in functions
12270         that operate on whole 64-bit MMX register now use V1DI mode.
12271
12272 2008-03-13  Alon Dayan  <alond@il.ibm.com>
12273             Olga Golovanevsky  <olga@il.ibm.com>
12274
12275         PR tree-optimization/35041
12276         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
12277         to locate the right position in a statement.
12278
12279 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
12280
12281         PR target/34000
12282         PR target/35553
12283         * config/i386/xmmintrin.h:  Change all static inline functions to
12284         extern inline and add __gnu_inline__ attribute.
12285         * config/i386/bmintrin.h: Ditto.
12286         * config/i386/smmintrin.h: Ditto.
12287         * config/i386/tmmintrin.h: Ditto.
12288         * config/i386/mmintrin-common.h: Ditto.
12289         * config/i386/ammintrin.h: Ditto.
12290         * config/i386/emmintrin.h: Ditto.
12291         * config/i386/pmmintrin.h: Ditto.
12292         * config/i386/mmintrin.h: Ditto.
12293         * config/i386/mm3dnow.h: Ditto.
12294
12295 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
12296
12297         PR middle-end/35185
12298         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
12299         (lower_omp_2): New function.
12300         (lower_omp_1, lower_omp): Rewritten.
12301
12302 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
12303
12304         PR 35054
12305         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
12306         with the phrase "Microsoft Windows compilers".
12307         (Push/Pop Macro Pragmas): New subsection. Document
12308         #pragma push_macro and pragma pop_macro.
12309
12310 2008-03-12  Paul Brook  <paul@codesourcery.com>
12311
12312         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
12313
12314 2008-03-12  Paul Brook  <paul@codesourcery.com>
12315
12316         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
12317         (thumb2_alusi3_short): Exclude PLUS and MINUS.
12318         (thumb2_addsi_shortim): Rename ...
12319         (thumb2_addsi_short): ... to this.  Allow register operands.
12320         (thumb2_subsi_short): New pattern.
12321         (thumb2_one_cmplsi2_short,
12322         thumb2_negsi2_short): New patterns and peepholes.
12323
12324 2008-03-12  Paul Brook  <paul@codesourcery.com>
12325
12326         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
12327
12328 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
12329
12330         * config/i386/i386.md (int_cond): New code iterator.
12331         (fp_cond): Ditto.
12332         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
12333         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
12334         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
12335         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
12336         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
12337         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
12338         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
12339         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
12340
12341 2008-03-12  Paul Brook  <paul@codesourcery.com>
12342
12343         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
12344         instead of {arm,thumb}_compute_save_reg_mask.
12345         (output_return_instruction): Ditto.
12346         (thumb_unexpanded_epilogue): Ditto.
12347         (thumb1_expand_prologue): Ditto.
12348         (thumb1_output_function_prologue): Ditto.
12349         (arm_set_return_address): Ditto.
12350         (thumb_set_return_address): Ditto.
12351         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
12352         regs to achieve stack alignment.
12353         (thumb1_compute_save_reg_mask): Fix compiler warning.
12354         (arm_output_epilogue): Use offsets->saved_regs_mask.
12355         Adjust stack pointer by poping call clobered registers.
12356         (arm_expand_prologue): Use offsets->saved_regs_mask.
12357         Adjust stack pointer by pushing extra registers.
12358         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
12359
12360 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
12361
12362         PR tree-opt/35422
12363         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
12364         conversion to the operands of a multiplication.
12365
12366 2008-03-12  Richard Guenther  <rguenther@suse.de>
12367
12368         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
12369         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
12370         * timevar.def (TV_TREE_PHIPROP): Add.
12371         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
12372         pass description.  Use TV_TREE_PHIPROP.
12373         * tree-ssa-forwprop.c: Remove phiprop code.
12374
12375 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
12376
12377         PR middle-end/35549
12378         * omp-low.c (maybe_lookup_decl): Constify first argument.
12379         (use_pointer_for_field): Change last argument from bool to
12380         omp_context *.  Disallow shared copy-in/out in nested
12381         parallel if decl is shared in outer parallel too.
12382         (build_outer_var_ref, scan_sharing_clauses,
12383         lower_rec_input_clauses, lower_copyprivate_clauses,
12384         lower_send_clauses, lower_send_shared_vars): Adjust callers.
12385
12386 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
12387             Ira Rosen  <irar@il.ibm.com>
12388
12389         * tree-vectorizer.c (free_stmt_vec_info): New function.
12390         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
12391         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
12392         * tree-vectorizer.h (free_stmt_vec_info): Declare.
12393         * tree-vect-transform.c (vectorizable_conversion): Free
12394         vec_oprnds0 if it was allocated.
12395         (vect_permute_store_chain): Remove unused VECs.
12396         (vectorizable_store): Free VECs that are allocated in the..
12397         function.
12398         (vect_transform_strided_load, vectorizable_load): Likewise.
12399         (vect_remove_stores): Simplify the code.
12400         (vect_transform_loop): Move code to vect_remove_stores().
12401         Call vect_remove_stores() and free_stmt_vec_info().
12402
12403 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12404
12405         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
12406         TARGET_HPUX.  Revise comment.
12407         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
12408         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
12409         Use sr4 variant of `be' instruction when not generating PIC code.
12410         (attr_length_call): Adjust for above change.
12411
12412 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12413
12414         * ipa-reference.c (static_execute): Remove module_statics_const and
12415         associated setting code.
12416
12417 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
12418
12419         PR target/35540
12420         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
12421         predicate for operand 1.
12422         (paritysi2_cmp): Use register_operand predicate for operand 2.
12423         Use earlyclobber modifier for operand 1.  Remove support for
12424         memory operands.
12425         (paritydi2_cmp): Use register_operand predicate for operand 3.
12426         Use earlyclobber modifier for operand 1.  Remove support for
12427         memory operands.
12428
12429 2008-03-11  Paul Brook  <paul@codesourcery.com>
12430             Vladimir Prus  <vladimir@codesourcery.com>
12431
12432         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
12433         (arm_compute_save_reg0_reg12_mask): Always
12434         check if register 11 must be saved.  Always safe hard frame pointer
12435         when frame_pointer_needeed.
12436         (arm_compute_save_reg_mask): Save IP and PC
12437         only with apcs frames.
12438         (arm_output_epilogue): Adjust Thumb2 codepath to
12439         be also invoked and work for ARM non-apcs frames.
12440         (arm_expand_prologue): Don't bother saving IP
12441         for non-apcs frame, since it's not clobbered by
12442         prologue code.  Implement non-apcs frame
12443         layout.
12444
12445 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
12446
12447         PR rtl-optimization/35281
12448         * expr.c (convert_move): Use a new pseudo for the intermediate
12449         from_mode->word_mode result.
12450
12451 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
12452
12453         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
12454         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
12455         * toplev.c (compile_file): Don't call it.
12456
12457 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
12458
12459         PR middle-end/35526
12460         * expr.c (store_expr): Call emit_block_move if the mode
12461         of "temp" RTX is BLKmode.
12462
12463 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12464             Richard Guenther  <rguenther@suse.de>
12465
12466         PR tree-optimization/31358
12467         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
12468         the step with a NULL_TREE.
12469         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
12470         to sizetype if type is a pointer type.
12471         (add_candidate_1): Don't convert the base and step to
12472         the generic type if the orginal type is a pointer type.
12473         (add_iv_value_candidates): Use sizetype for the step
12474         if type is a pointer type.
12475         (cand_value_at): Likewise.
12476         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
12477         for pointer types.
12478         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
12479         Don't convert the tem affine to the type.
12480         (add_elt_to_tree): Use sizetype for the step if a pointer.
12481         Use POINTER_PLUS_EXPR for pointers.
12482         (aff_combination_to_tree): Use sizetype for the step if a
12483         pointer.
12484
12485 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
12486
12487         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
12488         Remove commutativity hint.
12489
12490 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
12491
12492         PR c/35438
12493         PR c/35439
12494         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
12495         errorneous type.  Check that v is a VAR_DECL.
12496
12497         PR middle-end/35099
12498         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
12499
12500 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
12501
12502         PR tree-optimization/35494
12503         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
12504         may be overriden at link and run time.
12505
12506 2008-03-10  Richard Guenther  <rguenther@suse.de>
12507
12508         PR tree-optimization/34677
12509         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
12510         (poolify_tree): Likewise.
12511         (modify_expr_template): Likewise.
12512         (poolify_modify_stmt): Likewise.
12513         (insert_fake_stores): Handle all component-ref style stores
12514         in addition to INDIRECT_REF.  Also handle complex types.
12515         Do not poolify the inserted load.
12516         (realify_fake_stores): Do not rebuild the tree but only
12517         make it a SSA_NAME copy.
12518         (init_pre): Remove initialzation of modify_expr_template.
12519         Do not allocate modify_expr_node_pool.
12520         (fini_pre): Do not free modify_expr_node_pool.
12521
12522 2008-03-10  Paul Brook  <paul@codesourcery.com>
12523
12524         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
12525         to avoid conflicts.
12526
12527 2008-03-10  Paul Brook  <paul@codesourcery.com>
12528             Mark Shinwell  <shinwell@codesourcery.com>
12529
12530         * config/arm/cortex-r4.md: New.
12531         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
12532         insn attributes.
12533         * config/arm/arm.md: Include cortex-r4.md.
12534         (insn): Add smmls, sdiv and udiv values.
12535         (generic_sched): Don't use generic scheduling for Cortex-R4.
12536         (arm_issue_rate): New function.
12537         (TARGET_SCHED_ISSUE_RATE): Define.
12538
12539 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
12540
12541         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
12542
12543 2008-03-10  Richard Guenther  <rguenther@suse.de>
12544
12545         * tree-ssa-pre.c (get_sccvn_value): Simplify.
12546         (compute_avail): Do not add stmt uses to AVAIL_OUT.
12547
12548 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
12549
12550         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
12551         Set default to true.
12552
12553 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12554
12555         * c.opt (Wsynth): Deprecate.
12556         * doc/invoke.texi (Option Summary, Warning Options): Document
12557         -Wno-format-contains-nul.
12558
12559 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
12560
12561         PR target/35496
12562         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
12563         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
12564
12565 2008-03-09  Ira Rosen  <irar@il.ibm.com>
12566
12567         * config/rs6000/rs6000.c (builtin_description): Rename vector
12568         left shift operations.
12569         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
12570         (altivec_vsl<VI_char>): Rename to ...
12571         (ashl<mode>3): ... new name.
12572         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
12573         gen_ashlv4si3.
12574         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
12575
12576 2008-03-08  Richard Guenther  <rguenther@suse.de>
12577
12578         * coverage.h (tree_coverage_counter_addr): Declare.
12579         * coverage.c (tree_coverage_counter_addr): New function.
12580         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
12581         before using again.
12582         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
12583         (tree_gen_one_value_profiler): Likewise.
12584         (tree_gen_ic_profiler): Likewise.
12585         (tree_gen_average_profiler): Likewise.
12586         (tree_gen_ior_profiler): Likewise.
12587
12588 2008-03-08  Richard Guenther  <rguenther@suse.de>
12589
12590         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
12591         (vn_binary_op_insert): Likewise.
12592         (vn_unary_op_lookup): Likewise.
12593         (vn_unary_op_insert): Likewise.
12594         (vn_nary_op_lookup): Declare.
12595         (vn_nary_op_insert): Likewise.
12596         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
12597         and binary hashes, use a single obstack for unary_op_pool
12598         and binary_op_pool.
12599         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
12600         a single struct vn_nary_op_s.  Store tree code length and
12601         a variable number of operands.
12602         (struct vn_reference_op_struct): Remove unused op2.
12603         (vn_reference_op_eq): Do not compare op2.
12604         (vn_reference_op_compute_hash): Do not compute hash of op2.
12605         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
12606         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
12607         with vn_nary_op_compute_hash.
12608         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
12609         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
12610         vn_nary_op_lookup.
12611         (vn_unary_op_insert, vn_binary_op_insert): Replace with
12612         vn_nary_op_insert.
12613         (visit_unary_op): Call nary functions.
12614         (visit_binary_op): Likewise.
12615         (process_scc): Adjust for struct vn_tables_s changes.
12616         (allocate_vn_table): Likewise.
12617         (free_vn_table): Likewise.
12618         * tree-vn.c (vn_add): Call nary functions.
12619         (vn_lookup): Likewise.
12620
12621 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
12622
12623         PR target/35498
12624         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
12625         wdst back after sync_compare_and_swapqhi_internal.
12626
12627 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
12628
12629         PR target/22152
12630         * config/i386/i386-modes.def (V1DI): New vector mode.
12631         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
12632         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
12633         (MMXMODE248): Ditto.
12634         (MMXMODE): Add V1DI mode.
12635         (mmxvecsize): Change DI mode to V1DI mode.
12636         ("mov<mode>): Use MMXMODEI8 mode iterator.
12637         ("*mov<mode>_internal_rex64"): Ditto.
12638         ("*mov<mode>_internal"): Ditto.
12639         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
12640         ("mmx_sub<mode>3"): Ditto.
12641         ("mmx_adddi3"): Remove insn pattern.
12642         ("mmx_subdi3"): Ditto.
12643         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
12644         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
12645         ("mmx_ashl<mode>3"): Ditto.
12646         ("mmx_lshrdi3"): Remove insn pattern.
12647         ("mmx_ashldi3"): Ditto.
12648         * config/i386/i386.c (classify_argument): Handle V1DImode.
12649         (function_arg_advance_32): Ditto.
12650         (function_arg_32): Ditto.
12651         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
12652         mmx_addv1di3 insn pattern.
12653         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
12654         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
12655         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
12656         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
12657         Remove definitions of built-in functions.
12658         (V1DI_type_node): New node.
12659         (v1di_ftype_v1di_int): Ditto.
12660         (v1di_ftype_v1di_v1di): Ditto.
12661         (v2si_ftype_v2si_si): Ditto.
12662         (v4hi_ftype_v4hi_di): Remove node.
12663         (v2si_ftype_v2si_di): Ditto.
12664         (ix86_init_mmx_sse_builtins): Handle V1DImode.
12665         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
12666         Redefine builtins using def_builtin_const with *_ftype_*_int node.
12667         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
12668         Add new builtins using def_builtin_const.
12669         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
12670         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
12671         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
12672         * config/i386/mmintrin.h (__v1di): New typedef.
12673         (_mm_add_si64): Cast arguments to __v1di type.
12674         (_mm_sub_si64): Ditto.
12675         (_mm_sll_pi16): Cast __count to __v4hi type.
12676         (_mm_sll_pi32): Cast __count to __v2si type.
12677         (_mm_sll_si64): Cast arguments to __v1di type.
12678         (_mm_srl_pi16): Cast __count to __v4hi type.
12679         (_mm_srl_pi32): Cast __count to __v2si type.
12680         (_mm_srl_si64): Cast arguments to __v1di type.
12681         (_mm_sra_pi16): Cast __count to __v4hi type.
12682         (_mm_sra_pi32): Cast __count to __v2si type.
12683         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
12684         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
12685         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
12686         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
12687         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
12688         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
12689         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
12690         (_mm_srai_pi32): Use __builtin_ia32_psradi.
12691         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
12692         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
12693         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
12694         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
12695
12696 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
12697
12698         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
12699
12700 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
12701
12702         PR target/35373
12703         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
12704         reg+const addressing for Altivec modes.  Don't generate reg+reg
12705         addressing for TFmode or TDmode quantities.
12706
12707 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
12708
12709         * c-common.c (vector_types_convertible_p): Call langhook
12710         instead of comptypes.
12711
12712 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12713
12714         PR tree-opt/35402
12715         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
12716         integral and scalar float variables which have a
12717         NULL DECL_INITIAL.
12718
12719 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
12720
12721         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
12722         dwarf_register_span hook when emitting unwind information for
12723         register-to-memory saves.
12724         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
12725         (rs6000_frame_related): Remove call to spe_synthesize_frame.
12726
12727 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
12728
12729         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
12730         for the same VAR_DECL.
12731
12732 2008-03-06  Tom Tromey  <tromey@redhat.com>
12733
12734         * treelang: Delete.
12735         * doc/standards.texi (Standards): Don't mention treelang.
12736         * doc/invoke.texi (Overall Options): Don't mention treelang.
12737         * doc/install.texi (Prerequisites): Don't mention bison or
12738         treelang.
12739         (Configuration): Don't mention treelang.
12740         (Building): Likewise.
12741         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
12742
12743 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
12744
12745         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
12746         word-extractions out of a multi-word object.
12747
12748 2008-03-06  Richard Guenther  <rguenther@suse.de>
12749
12750         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
12751         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
12752         result type and precision.
12753         * expr.c (get_inner_reference): Set unsignedp based on the result
12754         type of BIT_FIELD_REF.
12755         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
12756         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
12757         (try_instantiate_multiple_fields): Likewise.  Use the correct type
12758         for BIT_FIELD_REF.
12759         (sra_build_assignment): Likewise.
12760         (sra_build_elt_assignment): Likewise.
12761         (sra_explode_bitfield_assignment): Likewise.
12762         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
12763         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
12764         set BIT_FIELD_REF_UNSIGNED.
12765         (vectorizable_load): Likewise.
12766
12767 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
12768
12769         * cse.c (cse_extended_basic_block): Invalidate artificial defs
12770         at bb start.
12771
12772 2008-03-06  Richard Guenther  <rguenther@suse.de>
12773
12774         * alias.c (struct alias_set_entry): Move has_zero_child field
12775         to pack with alias_set.
12776
12777 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
12778
12779         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
12780         32bit host.
12781
12782 2008-03-05  Ian Lance Taylor  <iant@google.com>
12783
12784         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
12785
12786 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
12787
12788         * fwprop.c (update_df): Support width and offset parameters of
12789         df_ref_create.
12790         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
12791         global_conflicts): Change DF_REF_EXTRACT to either
12792         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
12793         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
12794         * df-scan.c (df_ref_record, df_defs_record,
12795         df_ref_create_structure, df_def_record_1, df_uses_record,
12796         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
12797         df_bb_refs_collect, df_entry_block_defs_collect,
12798         df_exit_block_uses_collect): Support new width and offset fields.
12799         (ref_extract_pool): New storage pool.
12800         (df_free_ref): New function.
12801         (df_reg_chain_unlink, df_free_collection_rec,
12802         df_sort_and_compress_refs): Call df_free_ref.
12803         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
12804         of df_ref_extract.
12805         (df_ref_create_structure): Allocate df_ref_extract if offset and
12806         width fields are used.
12807         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
12808         (df_uses_record): Get offset and width from ZERO_EXTRACT 
12809         and SIGN_EXTRACT.
12810         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
12811         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
12812         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
12813         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
12814         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
12815         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
12816         (df_ref_extract): New structure.
12817         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
12818         (df_ref_create): Add width and offset parameters.
12819         
12820 2008-03-05  Richard Guenther  <rguenther@suse.de>
12821
12822         * tree-ssa-structalias.c (get_constraint_for_component_ref):
12823         Use ranges_overlap_p.
12824         (offset_overlaps_with_access): Rename
12825         to ranges_overlap_p and move ...
12826         * tree-flow-inline.h (ranges_overlap_p): ... here.
12827
12828         * tree.h (get_inner_reference, handled_component_p): Update
12829         comments.
12830
12831         * tree.h (record_component_aliases, get_alias_set,
12832         alias_sets_conflict_p, alias_sets_must_conflict_p,
12833         objects_must_conflict_p): Move declarations ...
12834         * alias.h (record_component_aliases, get_alias_set,
12835         alias_sets_conflict_p, alias_sets_must_conflict_p,
12836         objects_must_conflict_p): ... here.
12837         Include coretypes.h.
12838         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
12839
12840 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
12841
12842         * cfg.c: Include tree-flow.h.
12843         (remove_edge_raw): Call redirect_edge_var_map_clear.
12844         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
12845         * tree-flow-inline.h (redirect_edge_var_map_def): New.
12846         (redirect_edge_var_map_result): New.
12847         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
12848         PENDING_STMT use with redirect_edge_var_map_*.
12849         * tree-ssa.c (edge_var_maps): New definition.
12850         (redirect_edge_var_map_add): New.
12851         (redirect_edge_var_map_clear): New.
12852         (redirect_edge_var_map_dup): New.
12853         (redirect_edge_var_map_vector): New.
12854         (redirect_edge_var_map_destroy): New.
12855         (ssa_redirect_edge): Replace PENDING_STMT use with
12856         redirect_edge_var_map_*.
12857         (flush_pending_stmts): Same.
12858         (delete_tree_ssa): Destroy edge var map.
12859         * tree-flow.h (struct _edge_var_map): New.
12860         Define edge_var_map vector type.
12861         Declare redirect_edge_var_map_* prototypes.
12862         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
12863         * tree-cfg.c (reinstall_phi_args): Replace
12864         PENDING_STMT use with redirect_edge_var_map_*.
12865
12866 2008-03-05  Richard Guenther  <rguenther@suse.de>
12867
12868         PR tree-optimization/35472
12869         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
12870         whose single use_stmt has a overlapping set of loaded and
12871         stored symbols as that use_stmt might be a noop assignment then.
12872
12873 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
12874
12875         * gthr-rtems.h: Implement __gthread_mutex_destroy.
12876
12877 2008-03-05  Richard Guenther  <rguenther@suse.de>
12878
12879         PR c++/35336
12880         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
12881         should be constants.
12882         * tree-cfg.c (verify_expr): Verify it.
12883         * fold-const.c (fold_truthop): Remove code generating
12884         BIT_FIELD_REFs of structure bases.
12885         (fold_binary): Likewise.
12886         (fold_ternary): Position and size of BIT_FIELD_REFs are
12887         always host integers.
12888         (make_bit_field_ref): Remove.
12889         (optimize_bit_field_compare): Remove.
12890         (all_ones_mask_p): Remove.
12891
12892 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
12893
12894         PR gcc/33009
12895         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
12896         (split_block_and_df_analyze): New. Split basic block and rebuild
12897         dataflow.
12898         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
12899         SPLIT_BLOCK.
12900         (split_pattern_seq): Likewise.
12901         (erase_matching_seqs): Likewise.
12902         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
12903
12904 2008-03-04  Geoff Keating  <geoffk@apple.com>
12905
12906         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
12907         declaration and code.
12908         (tree_invalid_nonnegative_warnv_p): Likewise.
12909
12910 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
12911
12912         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
12913         examples.  Truncate option-names then causing overfull hbox.
12914
12915 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12916
12917         PR target/35222
12918         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
12919         on hpux10.
12920         * configure: Rebuilt.
12921
12922 2008-03-04  Rafael Espindola  <espindola@google.com>
12923
12924         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
12925         (tree_unary_nonnegative_warnv_p): New.
12926         (tree_binary_nonnegative_warnv_p): New.
12927         (tree_single_nonnegative_warnv_p): New.
12928         (tree_invalid_nonnegative_warnv_p): New.
12929         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
12930
12931 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12932
12933         PR 28322
12934         * opts.c (handle_option): Postpone 'unknown option' errors only for
12935         warning options.
12936
12937 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
12938
12939         PR target/35453
12940         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
12941         (_SIDD_XXX): This.
12942
12943 2008-03-04  Rafael Espindola  <espindola@google.com>
12944
12945         * fold-const.c (tree_unary_nonzero_warnv_p): New.
12946         (tree_binary_nonzero_warnv_p): New.
12947         (tree_single_nonzero_warnv_p): New.
12948         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
12949
12950 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
12951
12952         PR middle-end/35456
12953         * fold-const.c (fold_cond_expr_with_comparison): Prevent
12954         transformations for modes that have signed zeros.
12955         * ifcvt.c (noce_try_abs): Ditto.
12956
12957 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
12958
12959         * config/i386/i386.c (override_options): Force
12960         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
12961
12962 2008-03-04  Jan Hubicka  <jh@suse.cz>
12963
12964         PR c++/35262
12965         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
12966         in last commit.
12967
12968 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
12969
12970         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
12971         label to probe the stack.
12972
12973 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
12974
12975         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
12976         (__gthr_win32_mutex_destroy): Declare.
12977         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
12978         __gthr_win32_mutex_destroy.
12979         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
12980
12981 2008-03-03  Jan Hubicka  <jh@suse.cz>
12982
12983         PR c++/35262
12984         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
12985         aggressive on inlining cold calls.
12986
12987 2008-03-03  Richard Guenther  <rguenther@suse.de>
12988
12989         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
12990         struct copies into the expression table.
12991         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
12992         (try_to_simplify): Likewise.
12993         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
12994         integral and pointer arguments which do not change the
12995         precision to NOP_EXPRs.
12996         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
12997         VIEW_CONVERT_EXPR case.
12998
12999 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
13000
13001         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
13002         defined in a loop at depth 0 is invariant.
13003         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
13004         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
13005         be called at loop depth 0.
13006
13007 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
13008
13009         PR driver/35420
13010         * gcc.c (process_command): Update copyright notice dates.
13011         * gcov.c (print_version): Likewise.
13012         * gcov-dump.c (print_version): Likewise.
13013         * mips-tfile.c (main): Likewise.
13014         * mips-tdump.c (main): Likewise.
13015
13016 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13017
13018         PR 24924
13019         * c-common.c (flag_permissive): Delete.
13020         (constant_expression_warnings): Check flags first.
13021         (constant_expression_error): New.
13022         * c-common.h (flag_permissive): Delete.
13023         (constant_expression_error): Declare.
13024         * flags.h (flag_permissive): Declare. Update description.
13025         * diagnostic.c (pedwarn): Update.
13026         (permerror): New.
13027         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
13028         (permissive_error_kind): New.
13029         * toplev.c (flag_permissive): Define. Update description.
13030         * toplev.h (permissive_error_kind): Declare.
13031         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
13032         (pedwarn_c90): Use pedantic_warning_kind.
13033         * c-opts.c (c_common_post_options): flag_permissive does not affect
13034         flag_pedantic_errors.
13035
13036 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
13037
13038         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
13039         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
13040         __absvsi2, __absvDI2): Use unsigned arithmetic.
13041
13042 2008-03-02  Andi Kleen  <ak@suse.de>
13043             Richard Guenther  <rguenther@suse.de>
13044
13045         * struct-equiv.c: Remove file.
13046         * cfg_cleanup.c (condjump_equiv_p): Remove.
13047         * Makefile.in (OBJS-common): Remove struct-equiv.o.
13048         (struct-equiv.o): Remove rule.
13049         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
13050         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
13051         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
13052
13053 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
13054
13055         * ifcvt.c (noce_process_if_block): Try to handle only the then
13056         block if the else block exists but isn't suitable.
13057
13058 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
13059
13060         PR gcc/35063
13061         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
13062         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
13063         regression from previous patch.
13064
13065 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
13066
13067         PR gcc/35063
13068         * gthr.h: Add __gthread_mutex_destroy as a function that must be
13069         implemented.
13070         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
13071         * gthr-single.h (__gthread_mutex_destroy): Likewise.
13072         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
13073         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
13074         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
13075         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
13076         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
13077         (__gthread_mutex_destroy_function): Rename to
13078         __gthread_mutex_destroy.
13079         * gthr-dce.h (__gthread_mutex_destroy): Call
13080         pthread_mutex_destroy.
13081         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
13082         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
13083         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
13084
13085 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
13086
13087         * df-scan.c (df_ref_chain_change_bb): Simplify.
13088         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
13089         set_block_for_insn if there's any change.
13090         * df.h ((df_insn_change_bb): Fix prototype.
13091         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
13092         df_insn_change_bb, don't call set_block_for_insn.
13093         * emit-rtl.c (reorder_insns): Likewise.
13094         * haifa-sched.c (move_insn): Likewise.
13095
13096 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
13097
13098         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
13099
13100 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
13101
13102         * tree-flow-inline.h (next_readonly_imm_use): Return
13103         NULL_USE_OPERAND_P after the end.
13104
13105 2008-03-01  Richard Guenther  <rguenther@suse.de>
13106
13107         PR tree-optimization/35411
13108         * tree-sra.c (sra_build_assignment): Split conversion to
13109         final type to a separate statement if we are not assigning
13110         to a register.
13111
13112 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
13113
13114         * fold-const.c (fold_convertible_p): Correct the logic to follow
13115         that in fold_convert().
13116
13117 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
13118
13119         PR c++/35315
13120         * tree-inline.c (build_duplicate_type): When we make a
13121         duplicate type, make it unique in the canonical types system.
13122
13123 2008-02-29  Tom Tromey  <tromey@redhat.com>
13124
13125         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
13126         input_file_stack_history, input_file_stack_restored): Remove.
13127         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
13128         * input.h (struct file_stack): Remove.
13129         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
13130         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
13131         Likewise.
13132         * diagnostic.h (struct diagnostic_context) <last_module>: Change
13133         type.
13134         (diagnostic_last_module_changed): Add 'map' argument.
13135         (diagnostic_set_last_function): Likewise.
13136         * diagnostic.c (undiagnostic_report_current_module): Iterate using
13137         line map, not input_file_stack.
13138         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
13139
13140 2008-02-29  Paul Brook  <paul@codesourcery.com>
13141
13142         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
13143
13144 2008-02-29  Paul Brook  <paul@codesourcery.com>
13145
13146         * config/arm/ieee754-df.S (muldf3): Use RET macros.
13147
13148 2008-02-29  Richard Guenther  <rguenther@suse.de>
13149
13150         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
13151         vn_lookup_or_add.
13152         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
13153         value for comparing for a store match.
13154         (simplify_unary_expression): Do nothing for SSA_NAMEs.
13155         (try_to_simplify): Do not do a full-blown reference lookup.
13156
13157 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
13158
13159         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
13160         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
13161
13162         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
13163
13164 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
13165
13166         * tree-loop-linear.c (try_interchange_loops): Compare memory access
13167         strides against cache sizes.
13168
13169 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
13170
13171         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
13172         constant to fpul.
13173
13174 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
13175
13176         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
13177         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
13178         is smaller than the original promoted value.
13179         (simplify_subreg): If OP is a SUBREG, try to preserve its
13180         SUBREG_PROMOTED_VAR_P information.
13181
13182 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
13183
13184         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
13185         (VN_INFO_GET): Allocate new objects on the obstack.
13186         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
13187         for rpo_numbers_temp, for consistency.
13188         (free_scc_vn): Free the obstack.
13189
13190 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
13191
13192         * doc/invoke.texi: Document -ftree-loop-distribution.
13193         * tree-loop-distribution.c: New.
13194         * tree-pass.h (pass_loop_distribution): New.
13195         * graphds.h (struct graph): Add htab_t indices.
13196         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
13197         * tree-vectorizer.c (rename_variables_in_loop): Extern.
13198         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
13199         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
13200         * tree-data-ref.c (debug_data_dependence_relations): New.
13201         (dump_data_dependence_relation): Also print data references.
13202         (free_data_ref): Extern.
13203         (same_access_functions): Moved...
13204         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
13205         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
13206         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
13207         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
13208         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
13209         (stmts_from_loop): Skip LABEL_EXPR.
13210         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
13211         New.
13212         (build_rdg): Initialize rdg->indices htab.
13213         (free_rdg, stores_from_loop, ref_base_address,
13214         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
13215         have_similar_memory_accesses_1, ref_base_address_1,
13216         remove_similar_memory_refs): New.
13217         * tree-data-ref.h: Depend on tree-chrec.h.
13218         (debug_data_dependence_relations, free_data_ref): Declared.
13219         (same_access_functions): ... here.
13220         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
13221         New.
13222         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
13223         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
13224         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
13225         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
13226         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
13227         rdg_vertex_for_stmt): Declared.
13228         (struct rdg_edge): Add level.
13229         (RDGE_LEVEL): New.
13230         (free_rdg, stores_from_loop, remove_similar_memory_refs,
13231         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
13232         Declared.
13233         (rdg_has_similar_memory_accesses): New.
13234         * tree-vect-analyze.c: Remove unused static decls.
13235         * lambda.h (dependence_level): New.
13236         * common.opt (ftree-loop-distribution): New.
13237         * tree-flow.h (mark_virtual_ops_in_bb, 
13238         slpeel_tree_duplicate_loop_to_edge_cfg,
13239         rename_variables_in_loop): Declared.
13240         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
13241         (OBJS-common): Add tree-loop-distribution.o.
13242         (tree-loop-distribution.o): New rule.
13243         * tree-cfg.c (mark_virtual_ops_in_bb): New.
13244         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
13245         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
13246
13247 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
13248
13249         PR target/33963
13250         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
13251         other than structures and unions.
13252
13253 2008-02-28  Richard Guenther  <rguenther@suse.de>
13254
13255         Revert:
13256         2008-02-26  Richard Guenther  <rguenther@suse.de>
13257
13258         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
13259         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
13260         (lookup_decl_from_uid): Declare.
13261         (remove_decl_from_map): Likewise.
13262         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
13263         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
13264         (decl_for_uid_map): New global hashtable mapping DECL_UID
13265         to the decl tree.
13266         (init_ttree): Allocate it.
13267         (insert_decl_to_uid_decl_map): New helper function.
13268         (make_node_stat): Insert new decls into the map.
13269         (copy_node_stat): Likewise.
13270         (lookup_decl_from_uid): New function.
13271         (remove_decl_from_map): Likewise.
13272         (print_decl_for_uid_map_statistics): New helper.
13273         (dump_tree_statistics): Call it.
13274
13275         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
13276         (referenced_var_iterator): Adjust.
13277         (FOR_EACH_REFERENCED_VAR): Adjust.
13278         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
13279         (num_referenced_vars): Adjust.
13280         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
13281         (first_referenced_var): Remove.
13282         (end_referenced_vars_p): Likewise.
13283         (next_referenced_var): Likewise.
13284         (referenced_var_iterator_set): New helper function.
13285         * tree-dfa.c (referenced_var_lookup): Adjust.
13286         (referenced_var_check_and_insert): Likewise.
13287         (remove_referenced_var): Likewise.
13288         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
13289         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13290         (verify_call_clobbering): Likewise.
13291         (verify_memory_partitions): Likewise.
13292         (init_tree_ssa): Allocate bitmap instead of hashtable for
13293         referenced_vars.
13294         (delete_tree_ssa): Adjust.
13295         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
13296         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13297         (compute_tag_properties): Likewise.
13298         (set_initial_properties): Likewise.
13299         (find_partition_for): Likewise.
13300         (update_reference_counts): Likewise.
13301         (dump_may_aliases_for): Likewise.
13302         * tree-ssa-operands.c (add_virtual_operand): Likewise.
13303         (add_call_clobber_ops): Likewise.
13304         (add_call_read_ops): Likewise.
13305         (get_asm_expr_operands): Likewise.
13306         * tree-into-ssa.c (dump_decl_set): Likewise.
13307         (update_ssa): Likewise.
13308         * tree-sra.c (scan_function): Likewise.
13309         (decide_instantiations): Likewise.
13310         (scalarize_parms): Likewise.
13311         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
13312         (dsa_named_for): Likewise.
13313         * tree-ssa-structalias.c (update_alias_info): Likewise.
13314         (merge_smts_into): Likewise.
13315
13316 2008-02-27  David Daney  <ddaney@avtrex.com>
13317
13318         PR target/34409
13319         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
13320         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
13321         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
13322         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
13323         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
13324
13325 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
13326
13327         PR target/25477
13328         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
13329         (BUILT_IN_NEXTTOWARD): Remove.
13330         (BUILT_IN_NEXTTOWARDF): Ditto.
13331         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
13332         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
13333
13334 2008-02-27  Tom Tromey  <tromey@redhat.com>
13335
13336         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
13337         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
13338
13339 2008-02-27  Jan Beulich  <jbeulich@novell.com>
13340
13341         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
13342         update the respective field on newdecl.
13343
13344 2008-02-27  Revital Eres  <eres@il.ibm.com>
13345
13346         PR rtl-optimization/34999
13347         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
13348         crossing edges that ends with a call insn.
13349         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
13350         call insn and clear the EDGE_CROSSING flag of the crossing edge
13351         when fixing fallthru edges.
13352
13353 2008-02-27  Richard Guenther  <rguenther@suse.de>
13354
13355         PR middle-end/35390
13356         * fold-const.c (fold_unary): Return the correct argument,
13357         converted to the result type.
13358
13359 2008-02-27  Richard Guenther  <rguenther@suse.de>
13360
13361         PR middle-end/34971
13362         * expr.c (expand_expr_real_1): Assert on rotates that operate
13363         on partial modes.
13364         * fold-const.c (fold_binary): Use the types precision, not the
13365         bitsize of the mode if folding rotate expressions.  Build rotates
13366         only for full modes.
13367
13368 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
13369
13370         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
13371         and CPP_PRAGMA_EOL.
13372         * c-pragma.c (pragma_ns_name): New typedef.
13373         (registered_pp_pragmas): New variable.
13374         (c_pp_lookup_pragma): New function.
13375         (c_register_pragma_1): If flag_preprocess_only, do nothing
13376         for non-expanded pragmas, for expanded ones push pragma's
13377         namespace and name into registered_pp_pragmas vector.
13378         (c_invoke_pragma_handler): Register OpenMP pragmas even when
13379         flag_preprocess_only, don't register GCC pch_preprocess
13380         pragma if flag_preprocess_only.
13381         * c-opts.c (c_common_init): Call init_pragma even if
13382         flag_preprocess_only.
13383         * c-pragma.c (c_pp_lookup_pragma): New prototype.
13384         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
13385         cpp_register_pragma if flag_preprocess_only.
13386
13387 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13388
13389         PR c/28800
13390         * c-parser.c (c_parser_translation_unit): Warn for empty
13391         translation unit, not empty source file.
13392
13393 2008-02-26  Paul Brook  <paul@codesourcery.com>
13394
13395         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
13396         operand for Thumb-2.
13397         * config/arm/arm.h (reg_class): Add CORE_REGS.
13398         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
13399         (BASE_REG_CLASS): Use CORE_REGS.
13400         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
13401         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
13402         (REGNO_OK_FOR_INDEX_P): Exclude SP.
13403         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
13404         ARM_REGNO_OK_FOR_INDEX_P.
13405         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
13406         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
13407         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
13408         (ldm/stm peepholes): Ditto.
13409         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
13410         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
13411         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
13412         * config/arm/constraints.md: Enable "k" constraint on ARM.
13413
13414 2008-02-27  Ben Elliston  <bje@au.ibm.com>
13415
13416         * config/rs6000/rs6000.c: Annotate cache line size field in all
13417         instances of struct processor_costs.
13418
13419 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
13420
13421         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
13422         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
13423         jump_bypass): New counters.
13424         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
13425         * dce.c (gate_ud_dce): Same.
13426         (gate_fast_dce): Same.
13427         * dse.c (gate_dse1): New function.
13428         (gate_dse2): New function.
13429         (gate_dse): Merge results of new gate functions.
13430         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
13431         (gate_handle_jump_bypass): Add dbg_cnt.
13432         (gate_handle_gcse): Add dbg_cnt.
13433         * ifcvt.c (gate_handle_if_conversion): Same.
13434         (gate_handle_if_after_combine): Same.
13435         (gate_handle_if_after_reload): Same.
13436         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
13437
13438 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
13439
13440         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
13441         line sizes.
13442         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
13443
13444 2008-02-26  Jason Merrill  <jason@redhat.com>
13445
13446         PR c++/35315
13447         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
13448         alone if it's the naming decl for the type's main variant.
13449
13450 2008-02-26  Tom Tromey  <tromey@redhat.com>
13451
13452         * system.h (USE_MAPPED_LOCATION): Poison.
13453         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
13454         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
13455         (make_goto_expr_edges): Likewise.
13456         (remove_bb): Likewise.
13457         (execute_warn_function_return): Likewise.
13458         * basic-block.h (struct edge_def) <goto_locus>: Change type to
13459         location_t.
13460         * c-common.c (fname_decl): Remove old location code.
13461         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
13462         location code.
13463         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
13464         variant.
13465         (ASM_INPUT_SOURCE_LOCATION): Likewise.
13466         (gen_rtx_ASM_INPUT): Likewise.
13467         (gen_rtx_ASM_INPUT_loc): Likewise.
13468         (get_rtx_asm_OPERANDS): Remove.
13469         * cfglayout.c (insn_locators_alloc): Remove old location code.
13470         (set_curr_insn_source_location): Likewise.
13471         (curr_insn_locator): Likewise.
13472         * print-tree.c (print_node): Remove old location code.
13473         * tree-mudflap.c (mf_varname_tree): Remove old location code.
13474         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
13475         * cfgexpand.c (expand_gimple_cond_expr): Don't use
13476         location_from_locus.
13477         (construct_exit_block): Remove old location code.
13478         * emit-rtl.c (force_next_line_note): Remove old location code.
13479         * profile.c (branch_prob): Remove old location code.
13480         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
13481         LOC_LINE): Remove old-location variants.
13482         * langhooks.c (lhd_print_error_function): Remove old location
13483         code.
13484         * configure, config.in: Rebuilt.
13485         * configure.ac (--enable-mapped-location): Remove.
13486         * c-decl.c (c_init_decl_processing): Remove old location code.
13487         (finish_function): Likewise.
13488         * recog.c (decode_asm_operands): Remove old location code.
13489         * c-pch.c (c_common_read_pch): Remove old location code.
13490         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
13491         variants.
13492         * gimple-low.c (lower_function_body): Remove old location code.
13493         * toplev.c (unknown_location): Remove.
13494         (push_srcloc): Remove old-location variant.
13495         (process_options): Remove old location code.
13496         (lang_dependent_init): Likewise.
13497         * input.h (UNKNOWN_LOCATION): Move definition.
13498         (location_t): Undeprecate.
13499         (source_locus): Remove.
13500         (location_from_locus): Remove.
13501         (struct location_s): Remove.
13502         Remove all old-location code.
13503         (input_line, input_filename): Remove.
13504         * final.c (final_scan_insn): Remove old location code.
13505         * diagnostic.c (diagnostic_build_prefix): Remove
13506         USE_MAPPED_LOCATION test.
13507         * tree.h (gimple_stmt) <locus>: Now a location_t.
13508         (tree_exp) <locus>: Likewise.
13509         (DECL_IS_BUILTIN): Remove old-location variant.
13510         (annotate_with_file_line, annotate_with_locus): Likewise.
13511         (expr_locus, set_expr_locus): Update.
13512         * tree.c (build1_stat): Remove old location code.
13513         (last_annotated_node): Remove.
13514         (annotate_with_file_line): Remove old-location variant.
13515         (annotate_with_locus): Likewise.
13516         (expr_location): Remove old location code.
13517         (set_expr_location): Likewise.
13518         (expr_has_location): Likewise.
13519         (expr_locus): Likewise.
13520         (set_expr_locus): Likewise.
13521         (expr_filename): Don't use location_from_locus.
13522         (expr_lineno): Likewise.
13523         * rtl-error.c (location_for_asm): Remove old location code.
13524         * c-lex.c (cb_line_change): Remove old location code.
13525         (fe_file_change): Likewise.
13526         (cb_def_pragma): Likewise.
13527         (c_lex_with_flags): Likewise.
13528         * gengtype.c (do_typedef): Don't special-case location types.
13529         (define_location_structures): Remove.
13530         (main): Don't call define_location_structures.
13531         * tree-pretty-print.c (dump_implicit_edges): Remove old location
13532         code.
13533
13534 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13535
13536         PR 26264
13537         * builtins.def (BUILT_IN_STDARG_START): Remove.
13538         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
13539         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
13540         * tree-inline.c (inline_forbidden_p_1): Likewise.
13541         
13542 2008-02-26  Richard Guenther  <rguenther@suse.de>
13543
13544         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
13545         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
13546         (lookup_decl_from_uid): Declare.
13547         (remove_decl_from_map): Likewise.
13548         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
13549         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
13550         (decl_for_uid_map): New global hashtable mapping DECL_UID
13551         to the decl tree.
13552         (init_ttree): Allocate it.
13553         (insert_decl_to_uid_decl_map): New helper function.
13554         (make_node_stat): Insert new decls into the map.
13555         (copy_node_stat): Likewise.
13556         (lookup_decl_from_uid): New function.
13557         (remove_decl_from_map): Likewise.
13558         (print_decl_for_uid_map_statistics): New helper.
13559         (dump_tree_statistics): Call it.
13560
13561         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
13562         (referenced_var_iterator): Adjust.
13563         (FOR_EACH_REFERENCED_VAR): Adjust.
13564         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
13565         (num_referenced_vars): Adjust.
13566         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
13567         (first_referenced_var): Remove.
13568         (end_referenced_vars_p): Likewise.
13569         (next_referenced_var): Likewise.
13570         (referenced_var_iterator_set): New helper function.
13571         * tree-dfa.c (referenced_var_lookup): Adjust.
13572         (referenced_var_check_and_insert): Likewise.
13573         (remove_referenced_var): Likewise.
13574         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
13575         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13576         (verify_call_clobbering): Likewise.
13577         (verify_memory_partitions): Likewise.
13578         (init_tree_ssa): Allocate bitmap instead of hashtable for
13579         referenced_vars.
13580         (delete_tree_ssa): Adjust.
13581         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
13582         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13583         (compute_tag_properties): Likewise.
13584         (set_initial_properties): Likewise.
13585         (find_partition_for): Likewise.
13586         (update_reference_counts): Likewise.
13587         (dump_may_aliases_for): Likewise.
13588         * tree-ssa-operands.c (add_virtual_operand): Likewise.
13589         (add_call_clobber_ops): Likewise.
13590         (add_call_read_ops): Likewise.
13591         (get_asm_expr_operands): Likewise.
13592         * tree-into-ssa.c (dump_decl_set): Likewise.
13593         (update_ssa): Likewise.
13594         * tree-sra.c (scan_function): Likewise.
13595         (decide_instantiations): Likewise.
13596         (scalarize_parms): Likewise.
13597         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
13598         (dsa_named_for): Likewise.
13599         * tree-ssa-structalias.c (update_alias_info): Likewise.
13600         (merge_smts_into): Likewise.
13601
13602 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13603
13604         PR 34351
13605         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
13606         * c-opts.c (c_common_handle_option): Wall enables
13607         Wvolatile-register-var.
13608         * common.opt: Move Wvolatile-register-var to...
13609         * c.opt: ...here.
13610         
13611 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13612
13613         * common.opt (Wlarger-than=): New.
13614         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
13615         -Wlarger-than=.
13616         * opts.c (common_handle_option): Handle -Wlarger-than=.
13617         * optc-gen.awk: Likewise.
13618         * opth-gen.awk: Likewise.
13619         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
13620         * tree-optimize.c (tree_rest_of_compilation): Likewise.
13621         
13622 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13623
13624         * c-common.c (match_case_to_enum_1): Add appropriate
13625         OPT_W* parameter to warning.
13626         (c_do_switch_warnings): Likewise.
13627         * c-typeck.c (warning_init): Add one more parameter following
13628         'warning' function.
13629         (push_init_level): Update call to warning_init.
13630         (pop_init_level): Likewise.
13631         (add_pending_init): Likewise.
13632         (output_init_element: Likewise.
13633
13634 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13635
13636         PR 28322
13637         * toplev.c (toplev_main): If there are warnings or error, print
13638         errors for ignored options.
13639         * opts.c (ignored_options): New static variable.
13640         (postpone_unknown_option_error): New.
13641         (print_ignored_options): New.
13642         (handle_option): Postpone errors for unknown -Wno-* options.
13643         * opts.h (print_ignored_options): Declare.
13644         
13645 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
13646
13647         * config/mips/mips.md (loadgp_blockage, blockage): Change type
13648         to "ghost".
13649
13650 2008-02-25  Richard Guenther  <rguenther@suse.de>
13651
13652         Revert:
13653         2008-02-25  Richard Guenther  <rguenther@suse.de>
13654
13655         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
13656         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
13657         (lookup_decl_from_uid): Declare.
13658         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
13659         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
13660         (decl_for_uid_map): New global hashtable mapping DECL_UID
13661         to the decl tree.
13662         (init_ttree): Allocate it.
13663         (insert_decl_to_uid_decl_map): New helper function.
13664         (make_node_stat): Insert new decls into the map.
13665         (copy_node_stat): Likewise.
13666         (lookup_decl_from_uid): New function.
13667         (print_decl_for_uid_map_statistics): New helper.
13668         (dump_tree_statistics): Call it.
13669
13670         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
13671         (referenced_var_iterator): Adjust.
13672         (FOR_EACH_REFERENCED_VAR): Adjust.
13673         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
13674         (num_referenced_vars): Adjust.
13675         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
13676         (first_referenced_var): Remove.
13677         (end_referenced_vars_p): Likewise.
13678         (next_referenced_var): Likewise.
13679         (referenced_var_iterator_set): New helper function.
13680         * tree-dfa.c (referenced_var_lookup): Adjust.
13681         (referenced_var_check_and_insert): Likewise.
13682         (remove_referenced_var): Likewise.
13683         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
13684         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13685         (verify_call_clobbering): Likewise.
13686         (verify_memory_partitions): Likewise.
13687         (init_tree_ssa): Allocate bitmap instead of hashtable for
13688         referenced_vars.
13689         (delete_tree_ssa): Adjust.
13690         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
13691         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13692         (compute_tag_properties): Likewise.
13693         (set_initial_properties): Likewise.
13694         (find_partition_for): Likewise.
13695         (update_reference_counts): Likewise.
13696         (dump_may_aliases_for): Likewise.
13697         * tree-ssa-operands.c (add_virtual_operand): Likewise.
13698         (add_call_clobber_ops): Likewise.
13699         (add_call_read_ops): Likewise.
13700         (get_asm_expr_operands): Likewise.
13701         * tree-into-ssa.c (dump_decl_set): Likewise.
13702         (update_ssa): Likewise.
13703         * tree-sra.c (scan_function): Likewise.
13704         (decide_instantiations): Likewise.
13705         (scalarize_parms): Likewise.
13706         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
13707         (dsa_named_for): Likewise.
13708         * tree-ssa-structalias.c (update_alias_info): Likewise.
13709         (merge_smts_into): Likewise.
13710
13711 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
13712
13713         PR fortran/29549
13714         * doc/invoke.texi (-fcx-limited-range): Document new option.
13715         * toplev.c (process_options): Handle -fcx-fortran-rules.
13716         * common.opt: Add documentation for -fcx-fortran-rules.
13717
13718 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
13719
13720         PR c/35162
13721         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
13722         actual behaviour and C99.
13723         
13724 2008-02-26  Ben Elliston  <bje@au.ibm.com>
13725
13726         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
13727         (ASM_CPU_POWER6_SPEC): Likewise.
13728         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
13729         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
13730         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
13731
13732 2008-02-25  Richard Guenther  <rguenther@suse.de>
13733
13734         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
13735         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
13736         (lookup_decl_from_uid): Declare.
13737         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
13738         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
13739         (decl_for_uid_map): New global hashtable mapping DECL_UID
13740         to the decl tree.
13741         (init_ttree): Allocate it.
13742         (insert_decl_to_uid_decl_map): New helper function.
13743         (make_node_stat): Insert new decls into the map.
13744         (copy_node_stat): Likewise.
13745         (lookup_decl_from_uid): New function.
13746         (print_decl_for_uid_map_statistics): New helper.
13747         (dump_tree_statistics): Call it.
13748
13749         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
13750         (referenced_var_iterator): Adjust.
13751         (FOR_EACH_REFERENCED_VAR): Adjust.
13752         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
13753         (num_referenced_vars): Adjust.
13754         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
13755         (first_referenced_var): Remove.
13756         (end_referenced_vars_p): Likewise.
13757         (next_referenced_var): Likewise.
13758         (referenced_var_iterator_set): New helper function.
13759         * tree-dfa.c (referenced_var_lookup): Adjust.
13760         (referenced_var_check_and_insert): Likewise.
13761         (remove_referenced_var): Likewise.
13762         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
13763         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13764         (verify_call_clobbering): Likewise.
13765         (verify_memory_partitions): Likewise.
13766         (init_tree_ssa): Allocate bitmap instead of hashtable for
13767         referenced_vars.
13768         (delete_tree_ssa): Adjust.
13769         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
13770         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13771         (compute_tag_properties): Likewise.
13772         (set_initial_properties): Likewise.
13773         (find_partition_for): Likewise.
13774         (update_reference_counts): Likewise.
13775         (dump_may_aliases_for): Likewise.
13776         * tree-ssa-operands.c (add_virtual_operand): Likewise.
13777         (add_call_clobber_ops): Likewise.
13778         (add_call_read_ops): Likewise.
13779         (get_asm_expr_operands): Likewise.
13780         * tree-into-ssa.c (dump_decl_set): Likewise.
13781         (update_ssa): Likewise.
13782         * tree-sra.c (scan_function): Likewise.
13783         (decide_instantiations): Likewise.
13784         (scalarize_parms): Likewise.
13785         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
13786         (dsa_named_for): Likewise.
13787         * tree-ssa-structalias.c (update_alias_info): Likewise.
13788         (merge_smts_into): Likewise.
13789
13790 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
13791
13792         PR target/35258
13793         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
13794         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
13795         * alias.h (nonoverlapping_memrefs_p): Likewise.
13796
13797 2008-02-25  Jan Beulich  <jbeulich@novell.com>
13798
13799         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
13800         * config/i386/netware-libgcc.exp: Add __bswap?i2,
13801         __emultls_get_address, __emultls_register_common,
13802         __floatundi?f, and _Unwind_GetIPInfo.
13803         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
13804         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
13805         (gen_regparm_prefix): Likewise.
13806         (i386_nlm_encode_section_info): Sync with
13807         config/i386/winnt.c:i386_pe_encode_section_info().
13808         (i386_nlm_maybe_mangle_decl_assembler_name): New.
13809         i386_nlm_mangle_decl_assembler_name): New.
13810         (netware_override_options): New.
13811         * config/i386/netware.h (netware_override_options): Declare.
13812         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
13813         (i386_nlm_mangle_decl_assembler_name): Declare.
13814         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
13815
13816 2008-02-25  Ben Elliston  <bje@au.ibm.com>
13817
13818         PR other/32948
13819         * c-decl.c (grokdeclarator): Remove unused local variables
13820         `typedef_type' and `type_as_written'.
13821         * bb-reorder.c
13822         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
13823         unused local variable `has_hot_blocks'.
13824         (fix_crossing_conditional_branches): Remove unused local variable
13825         `prev_bb'.
13826         
13827 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
13828
13829         PR middle-end/19984
13830         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
13831         using DEF_C99_BUILTIN.
13832         (BUILT_IN_NANF): Ditto.
13833         (BUILT_IN_NANL): Ditto.
13834
13835 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
13836             Revital Eres  <eres@il.ibm.com>
13837
13838         * modulo-sched.c (calculate_must_precede_follow): Address TODO
13839         regarding the order of two dependent insns in the same row.
13840
13841 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
13842
13843         * stor-layout.c (layout_decl): Do not bump the alignment of a
13844         bit-field to more than byte alignment if it is packed.
13845
13846 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
13847
13848         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
13849         e300c2 and e300c3.
13850
13851 2008-02-24  Diego Novillo  <dnovillo@google.com>
13852
13853         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
13854
13855         PR 33738
13856         * tree-vrp.c (vrp_evaluate_conditional): With
13857         -Wtype-limits, emit a warning when comparing against a
13858         constant outside the natural range of OP0's type.
13859         * c.opt (Wtype-limits): Move ...
13860         * common.opt (Wtype-limits): ... here.
13861
13862 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
13863
13864         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
13865         * config/rs6000/e300c2c3.md: New file.
13866         * config/rs6000/rs6000.c (processor_costs): Add new costs for
13867         e300c2 and e300c3.
13868         (rs6000_override_options): Add e300c2 and e300c3 cases to
13869         processor_target_table. Do not allow usage of Altivec or Spe
13870         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
13871         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
13872         * config/rs6000/rs6000.h (processor_type): Add
13873         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
13874         (ASM_CPU_SPEC): Add e300c2 and e300c3.
13875         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
13876         and ppce300c3. Include e300c2c3.md.
13877
13878 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
13879
13880         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
13881         instead of TARGET_STRICT_ALIGN.
13882
13883 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
13884
13885         * explow.c (memory_address): Assert that the generated address is
13886         valid.
13887
13888 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
13889
13890         PR target/25477
13891         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
13892         * config/darwin-ppc-ldouble-patch.def: New file.
13893         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
13894         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
13895         SUBTARGET_INIT_BUILTINS if defined.
13896         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
13897         New functions.
13898
13899 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13900
13901         PR rtl-opt/33512
13902         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
13903         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
13904
13905 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13906
13907         PR pch/35027
13908         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
13909         file" warning condtional on -Winvalid-PCH.
13910
13911 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
13912
13913         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
13914
13915 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
13916
13917         PR target/22076
13918         PR target/34256 
13919         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
13920         prevent reload from using MMX registers.
13921         (*mov<mode>_internal): Ditto.
13922         (*movv2sf_internal_rex64): Ditto.
13923         (*movv2sf_internal): Ditto.
13924
13925 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13926
13927         PR documentation/31569
13928         * doc/install.texi2html: Use makeinfo --no-number-sections.
13929
13930 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
13931
13932         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
13933         ensure that we can address an entire entity > 8 bytes.  Don't
13934         generate reg+reg addressing for such data.
13935
13936 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
13937
13938         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
13939         strings when optimizing for size, unless the target cares about
13940         alignment.
13941
13942 2008-02-22  Tom Tromey  <tromey@redhat.com>
13943
13944         * regclass.c (current_pass): Remove declaration.
13945
13946 2008-02-22  Anatoly Sokolov <aesok@post.ru>
13947
13948         * config/avr/libgcc.S (__RAMPZ__): Define.
13949         (__do_copy_data): Add for devices with 128KB code memory.
13950
13951 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
13952
13953         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
13954         Use spe_abi.
13955         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
13956
13957 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
13958
13959         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
13960         GENNONACR_REGS.
13961
13962 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13963
13964         PR c/19999
13965         * c-typeck.c (build_binary_op): Warn about floating point
13966         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
13967
13968 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
13969
13970         PR target/34526
13971         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
13972         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
13973         add vrsave.
13974         (rs6000_override_options): Set altivec_abi as default, not override,
13975         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
13976         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
13977         is used; use new member spe_abi.
13978         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
13979         spe_abi and altivec_abi.
13980
13981 2008-02-22  Tomas Bily  <tbily@suse.cz>
13982
13983         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
13984
13985 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13986
13987         PR bootstrap/35273
13988         * config.build (build_file_translate): Set to `CMD //c' only if
13989         it works.
13990         * Makefile.in (build_file_translate): Improve comment.
13991
13992 2008-02-21  Jan Hubicka  <jh@suse.cz>
13993
13994         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
13995         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
13996         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
13997
13998 2008-02-21  Michael Matz  <matz@suse.de>
13999
14000         PR target/35264
14001         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
14002
14003 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
14004
14005         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
14006         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
14007         as insn constraint.
14008         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
14009         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
14010         SSE_VEC_FLOAT_MODE_P as insn constraint.
14011         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
14012         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
14013         sse4a_movntdf using MODEF mode iterator.
14014         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
14015         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
14016         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
14017         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
14018         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
14019         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
14020         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
14021
14022 2008-02-21  Richard Guenther  <rguenther@suse.de>
14023
14024         * tree.def (PAREN_EXPR): New tree code.
14025         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
14026         and PAREN_EXPR.
14027         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
14028         * expr.c (expand_expr_real_1): Likewise.
14029         * tree-inline.c (estimate_num_insns_1): Likewise.
14030         * tree-complex.c (expand_complex_move): Likewise.
14031         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
14032         as plain x.
14033
14034 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14035
14036         PR target/35225
14037         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
14038
14039 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14040
14041         PR target/35190
14042         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
14043
14044         * config/sh/sh.c (find_barrier): Don't go past
14045         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
14046
14047 2008-02-20  DJ Delorie  <dj@redhat.com>
14048
14049         * config/h8300/h8300.md (insv): Force source operand to be a register.
14050
14051         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
14052         as a jump, not as a plain insn.
14053         
14054 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
14055
14056         * doc/invoke.texi (Warning Options): Add new option
14057         -Wframe-larger-than=.
14058         (-Wframe-larger-than): Document.
14059
14060         * flags.h (warn_frame_larger_than, frame_larger_than_size):
14061         Add declarations for new option variables.
14062
14063         * final.c (final_start_function): Check the frame size
14064         before emission and issue a Wframe-larger-than warning.
14065
14066         * opts.c (warn_frame_larger_than, frame_larger_than_size):
14067         Add definitions for new option variables.
14068         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
14069
14070         * common.opt (Wframe-larger-than=): New option.
14071
14072 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
14073
14074         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
14075         (<sse>_div<mode>3): Ditto.
14076         (<sse>_vmdiv<mode>3): Ditto.
14077         (<sse>_vmsqrt<mode>2): Ditto.
14078         (*smax<mode>3): Ditto.
14079         (sse5_frcz<mode>2): Ditto.
14080         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
14081         as insn constraint.
14082
14083 2008-02-20  Richard Guenther  <rguenther@suse.de>
14084
14085         PR middle-end/35265
14086         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
14087         be happy with INTEGRAL_TYPE_P.
14088
14089 2008-02-20  Richard Guenther  <rguenther@suse.de>
14090
14091         * fold-const.c (split_tree): Associate floatig-point expressions
14092         if flag_associative_math is set.
14093
14094 2008-02-20  Richard Guenther  <rguenther@suse.de>
14095
14096         * tree.h (fold_real_zero_addition_p): Declare.
14097         * fold-const.c (fold_real_zero_addition_p): Export.
14098         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
14099         floating-point operations with zero and one.
14100
14101 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
14102
14103         * doc/install.texi: Correct references to CFLAGS, replacing them
14104         with BOOT_CFLAGS.  Document flags used during bootstrap for
14105         target libraries.
14106                                 
14107 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
14108
14109         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
14110         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
14111         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
14112         insn constraint.
14113         (smin<mode>3): Ditto from similar patterns.
14114         (smax<mode>3): Ditto.
14115         (*ieee_smin<mode>3): Ditto.
14116         (*ieee_smax<mode>3): Ditto.
14117         * config/i386/sse.md (sse): New mode attribute.
14118         (mov<mode>): Macroize expander from movv4sf and movv2df using
14119         SSEMODEF2P mode iterator.
14120         (<sse>_movnt<mode>): Ditto from similar patterns. Use
14121         SSE_VEC_FLOAT_MODE_P as insn constraint.
14122         (storent<mode>): Ditto.
14123         (storent<mode>): Macroize expander from storentsf and storentdf using
14124         MODEF mode iterator.
14125         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
14126         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
14127         (abs<mode>2): Ditto from similar patterns.
14128         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
14129         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
14130         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
14131         (<sse>_vmsqrt<mode>2): Ditto.
14132         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
14133         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
14134         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
14135         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
14136         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
14137         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
14138         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
14139         insn constraint.
14140         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
14141         iterator and SSE_FLOAT_MODE_P as insn constraint.
14142         (<sse>_ucomi): Ditto from similar patterns.
14143         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
14144         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
14145         SSE_VEC_FLOAT_MODE_P as insn constraint.
14146         (vcond<mode>): Ditto from similar patterns.
14147         (and<mode>3, *and<mode>3): Ditto.
14148         (<sse>_nand<mode>3): Ditto.
14149         (ior<mode>3, *ior<mode>3): Ditto.
14150         (xor<mode>3, *xor<mode>3): Ditto.
14151         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
14152         iterator and SSE_FLOAT_MODE_P as insn constraint.
14153         (*nand<mode>3): Ditto from similar patterns.
14154         (*ior<mode>3): Ditto.
14155         (*xor<mode>3): Ditto.
14156
14157 2008-02-20  Ira Rosen  <irar@il.ibm.com>
14158
14159         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
14160         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
14161         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
14162
14163 2008-02-19  Jan Hubicka  <jh@suse.cz>
14164
14165         * predict.c (tree_bb_level_predictions): Remove variable next
14166         mistakely introduced by previous commit.
14167
14168 2008-02-19  Jan Hubicka  <jh@suse.cz>
14169
14170         * predict.c (predict_paths_leading_to): Rewrite.
14171         (predict_paths_for_bb): New.
14172         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
14173
14174 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14175
14176         PR bootstrap/35218
14177         * Makefile.in (build_file_translate): New.
14178         (gcc-vers.texi): Use it for translating $(abs_srcdir).
14179         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
14180         * configure.ac (build_file_translate): Substitute it.
14181         * configure: Regenerate.
14182
14183 2008-02-19  Jan Hubicka  <jh@suse.cz>
14184
14185         PR rtl-optimization/34408
14186         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
14187         invalid sharing.
14188
14189 2008-02-19  Jan Hubicka  <jh@suse.cz>
14190
14191         PR middle-end/28779
14192         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
14193         call_expr.
14194
14195 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
14196
14197         PR Ada/35186
14198         * config/i386/i386-modes.def: Revert the last DI alignment
14199         change until Ada people can look into it.
14200
14201 2008-02-19  Nick Clifton  <nickc@redhat.com>
14202
14203         * opts.c (print_specific_help): Fix typo in --help text.
14204
14205 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
14206
14207         PR target/35239
14208         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
14209         32-bit inline asm without asm alternatives for host GCC < 3.0.
14210
14211 2008-02-19  Richard Guenther  <rguenther@suse.de>
14212
14213         PR tree-optimization/34989
14214         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
14215         Allow propagation to INDIRECT_REF if we can simplify only.
14216
14217 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14218
14219         * c-common.c (warn_for_collisions_1): Use appropriate option when
14220         warning.
14221
14222 2008-02-19  Nick Clifton  <nickc@redhat.com>
14223
14224         PR other/31349
14225         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
14226         (handle_options): Fix indentation.
14227         (print_filtered_help): If no language-specific options were
14228         displayed tell the user how to list all the options supported by
14229         the language's front-end.
14230         (print_specific_help): Fix indentation and remove duplicate line.
14231         (common_handle_option): Handle the -v option.
14232         For --help enable the display of undocumented options if the -v
14233         switch has been included on the command line.
14234         For --help= check for overlaps in the arguments between the option
14235         classes and the language names and issue a warning when they
14236         cannot be disambiguated.
14237         * c.opt (v): Pass on to the common option handler.
14238
14239 2008-02-19  Revital Eres  <eres@il.ibm.com> 
14240
14241         * modulo-sched.c (sms_schedule): Change dump message when
14242         create_ddg function fails.
14243         (try_scheduling_node_in_cycle): Rename row to cycle.
14244         (print_partial_schedule): Rename CYCLE to ROW.
14245
14246 2008-02-19  Christian Bruel  <christian.bruel@st.com>
14247             Zdenek Dvorak  <ook@ucw.cz>
14248
14249         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
14250
14251 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
14252
14253         PR target/33555
14254         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
14255         (*x86_movdicc_0_m1_se): Ditto.
14256
14257 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
14258
14259         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
14260         (CMPtype): Define as __gcc_CMPtype.
14261         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
14262         (CMPtype): Define as __gcc_CMPtype.
14263
14264 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
14265
14266         Support valgrind 3.3 for --enable-checking=valgrind.
14267         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
14268         here.
14269         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
14270         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
14271         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
14272         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
14273         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
14274         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
14275         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
14276         respectively.
14277         * ggc-zone.c: Similar.
14278         * ggc-page.c: Similar.
14279
14280 2008-02-19  Paul Brook  <paul@codesourcery.com>
14281
14282         PR target/35071
14283         * config/arm/ieee754-df.S: Fix do_it typo.
14284         * config/arm/ieee754-sf.S: Fix do_it typo.
14285
14286 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
14287
14288         PR target/35189
14289         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
14290         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
14291         (OPTION_MASK_ISA_SSE_SET): Likewise.
14292         (OPTION_MASK_ISA_SSE2_SET): Likewise.
14293         (OPTION_MASK_ISA_SSE3_SET): Likewise.
14294         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
14295         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
14296         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
14297         (OPTION_MASK_ISA_SSE4_SET): Likewise.
14298         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
14299         (OPTION_MASK_ISA_SSE5_SET): Likewise.
14300         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
14301         (OPTION_MASK_ISA_MMX_UNSET): Updated.
14302         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
14303         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
14304         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
14305         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
14306         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
14307         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
14308         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
14309         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
14310         (OPTION_MASK_ISA_SSE4): Removed.
14311         (ix86_handle_option): Turn on bits in ix86_isa_flags and
14312         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
14313         (override_options): Don't turn on implied SSE/MMX bits in
14314         ix86_isa_flags.
14315
14316 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
14317
14318         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
14319         32bit host.
14320
14321 2008-02-18  Joey Ye  <joey.ye@intel.com>
14322
14323         PR middle-end/34921
14324         * tree-nested.c (insert_field_into_struct): Set type alignment
14325         to field alignment if the former is less than the latter.
14326
14327 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
14328
14329         * BASE-VER: Set to 4.4.0.
14330
14331 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14332
14333         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
14334         * doc/cfg.texi: Likewise.
14335         * doc/extend.texi: Likewise.
14336         * doc/gty.texi: Likewise.
14337         * doc/invoke.texi: Likewise.
14338         * doc/loop.texi: Likewise.
14339         * doc/md.texi: Likewise.
14340         * doc/passes.texi: Likewise.
14341         * doc/rtl.texi: Likewise.
14342         * doc/sourcebuild.texi: Likewise.
14343         * doc/tm.texi: Likewise.
14344         * doc/tree-ssa.texi: Likewise.
14345
14346 2008-02-17  Richard Guenther  <rguenther@suse.de>
14347
14348         PR middle-end/35227
14349         * tree-complex.c (init_parameter_lattice_values): Handle parameters
14350         without default definition.
14351
14352 2008-02-17  Richard Guenther  <rguenther@suse.de>
14353
14354         PR tree-optimization/35231
14355         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
14356         if A | B != 1.
14357
14358 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
14359
14360         Revert:
14361         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
14362         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
14363         libgcc_cmp_return mode.
14364
14365 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14366
14367         PR c/28368
14368         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
14369
14370 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
14371
14372         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
14373         multilibs.
14374
14375 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14376
14377         * doc/c-tree.texi: Use `@.' where appropriate.
14378         * doc/extend.texi: Likewise.
14379         * doc/install.texi: Likewise.
14380         * doc/invoke.texi: Likewise.
14381         * doc/loop.texi: Likewise.
14382         * doc/makefile.texi: Likewise.
14383         * doc/md.texi: Likewise.
14384         * doc/passes.texi: Likewise.
14385         * doc/standards.texi: Likewise.
14386         * doc/tm.texi: Likewise.
14387
14388 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
14389
14390         PR middle-end/35196
14391         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
14392         in entry_bb.
14393         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
14394         rather than in entry_bb.
14395
14396 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
14397
14398         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
14399         libgcc_cmp_return mode.
14400
14401 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
14402
14403         PR middle-end/35130
14404         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
14405         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
14406
14407 2008-02-15  Richard Guenther  <rguenther@suse.de>
14408             Zdenek Dvorak  <ook@ucw.cz>
14409
14410         PR tree-optimization/35164
14411         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
14412         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
14413         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
14414         Only propagate addresses which do not have abnormal SSA_NAMEs
14415         in their operands.
14416
14417 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
14418
14419         PR target/35088
14420         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
14421
14422 2008-02-15  Jan Hubicka  <jh@suse.cz>
14423
14424         PR middle-end/35149
14425         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
14426
14427 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
14428
14429         PR middle-end/34621
14430         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
14431         when calculating alignment_pad.
14432
14433 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
14434
14435         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
14436         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
14437         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
14438         and STACK_BOUNDARY define.
14439
14440 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
14441
14442         PR preprocessor/35061
14443         * c-pragma.c (handle_pragma_pop_macro): Check that
14444         pushed_macro_table has been allocated.
14445
14446 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
14447
14448         PR middle-end/35136
14449         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
14450         (force_gimple_operand): Likewise.
14451         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
14452         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
14453         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
14454         (find_interesting_uses_address): Check addressability and alignment
14455         of the base expression only after substituting bases of IVs into it.
14456
14457 2008-02-14  Michael Matz  <matz@suse.de>
14458
14459         PR target/34930
14460         * function.c (instantiate_virtual_regs_in_insn): Reload address
14461         before falling back to reloading the whole operand.
14462
14463 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
14464
14465         * config/s390/s390.c (s390_mainpool_start): Emit the pool
14466         before the first section switch note.
14467
14468 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14469
14470         * doc/bugreport.texi: Update copyright years.
14471         * doc/c-tree.texi: Likewise.
14472         * doc/cfg.texi: Likewise.
14473         * doc/cpp.texi: Likewise.
14474         * doc/cppinternals.texi: Likewise.
14475         * doc/fragments.texi: Likewise.
14476         * doc/frontends.texi: Likewise.
14477         * doc/gcc.texi: Likewise.
14478         * doc/gty.texi: Likewise.
14479         * doc/hostconfig.texi: Likewise.
14480         * doc/implement-c.texi: Likewise.
14481         * doc/libgcc.texi: Likewise.
14482         * doc/loop.texi: Likewise.
14483         * doc/makefile.texi: Likewise.
14484         * doc/options.texi: Likewise.
14485         * doc/passes.texi: Likewise.
14486         * doc/rtl.texi: Likewise.
14487         * doc/sourcebuild.texi: Likewise.
14488         * doc/standards.texi: Likewise.
14489         * doc/tree-ssa.texi: Likewise.
14490         * doc/trouble.texi: Likewise.
14491
14492         * doc/extend.texi: Use @: or add comma where appropriate.
14493         * doc/invoke.texi: Likewise.
14494         * doc/tm.texi: Likewise.
14495
14496 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
14497
14498         PR target/34393
14499         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
14500         to a reg.
14501
14502 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
14503
14504         * doc/md.texi (clz, ctz): Add reference.
14505         * doc/rtl.texi (clz, ctz): Likewise.
14506
14507 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14508
14509         PR other/35148
14510         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
14511         srcdir.
14512
14513 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
14514
14515         * config/s390/s390.c (struct constant_pool): New field
14516         emit_pool_after added.
14517         (s390_mainpool_start): Set the emit_pool_after flag according
14518         to the section switch notes.
14519         (s390_mainpool_finish): Consider emit_pool_after when emitting
14520         the literal pool at the end of the function.
14521         (s390_chunkify_start): Force literal pool splits at section
14522         switch notes.
14523
14524 2008-02-13  Michael Matz  <matz@suse.de>
14525
14526         PR debug/35065
14527         * var-tracking.c (clobber_variable_part): Correctly traverse the
14528         list.
14529
14530 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14531
14532         PR 29673
14533         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
14534         Add -fdump-ipa-inline.
14535         * tree-dump.c (dump_files): Remove tree-inlined dump.
14536         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
14537         
14538 2008-02-12  Richard Guenther  <rguenther@suse.de>
14539
14540         PR tree-optimization/35171
14541         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
14542         default defs.
14543
14544 2008-02-12  Richard Guenther  <rguenther@suse.de>
14545
14546         PR middle-end/35163
14547         * fold-const.c (fold_widened_comparison): Use get_unwidened in
14548         value-preserving mode.  Disallow final truncation.
14549
14550 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
14551
14552         PR middle-end/35136
14553         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
14554         code from here to...
14555         (force_gimple_operand): ...here.
14556
14557 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
14558
14559         PR c++/35144
14560         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
14561         non-compatible pointers.
14562         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
14563         different FIELD_DECLs, try harder by comparing field offsets, sizes
14564         and types.
14565
14566         PR inline-asm/35160
14567         * function.c (match_asm_constraints_1): Don't replace the same input
14568         multiple times.
14569
14570 2008-02-12  Anatoly Sokolov <aesok@post.ru>
14571
14572         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
14573         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
14574         (expand_epilogue): Restore RAMPZ register.
14575         * config/avr/avr.md (RAMPZ_ADDR): New constant.
14576
14577 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
14578
14579         * config/i386/cygwin.asm: (__alloca): Correct calling
14580         convention and alignment.
14581         (__chkstk): Force 8 byte stack alignment.
14582
14583 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
14584             Richard Guenther  <rguenther@suse.de>
14585
14586         PR tree-optimization/33992
14587         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
14588         the zero we compare against.
14589
14590 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
14591
14592         PR libfortran/35063
14593         * gthr-win32.h (__gthread_mutex_destroy_function): New function
14594         to CloseHandle after unlocking to prevent accumulation of handle
14595         count.
14596
14597 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14598
14599         PR middle_end/34150
14600         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
14601         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
14602         and update LABEL_NUSES during and after reload.
14603
14604 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
14605
14606         PR middle-end/34627
14607         * combine.c (simplify_if_then_else): Make sure the comparison is
14608         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
14609
14610 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
14611
14612         PR bootstrap/35051
14613         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
14614         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
14615         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
14616         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
14617         * tree.h (get_type_static_bounds): Likewise.
14618
14619 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14620
14621         * doc/invoke.texi (Option Summary, C++ Dialect Options)
14622         (Objective-C and Objective-C++ Dialect Options, Warning Options):
14623         Make -Wfoo language annotations match what the compiler outputs.
14624
14625 2008-02-08  Sa Liu  <saliu@de.ibm.com>
14626
14627         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
14628         intrinsics spu_convts, spu_convtu, spu_convtf.
14629
14630 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
14631
14632         * doc/extend.texi (Function Attributes) <noinline>: Mention
14633         asm ("") as method to keep calls.
14634
14635 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14636
14637         PR other/32754
14638         * doc/options.texi (Options): Replace references to opts.sh with
14639         optc-gen.awk.
14640         * opts-common.c: Likewise.
14641         * optc-gen.awk: Likewise.
14642         
14643 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
14644
14645         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
14646
14647 2008-02-07  Richard Henderson  <rth@redhat.com>
14648
14649         PR rtl-opt/33410
14650         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
14651         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
14652         funny mode.
14653
14654 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
14655
14656         PR tree-optimization/35085
14657         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
14658         for operand entry oe2 in addition to operand entry oe3 in order to
14659         expose more opportunities for vectorizer sum reduction.
14660
14661 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14662
14663         PR other/35107
14664         * Makefile.in (LIBS): Remove $(GMPLIBS).
14665         (cc1-dummy, cc1): Add $(GMPLIBS).
14666
14667 2008-02-06  Jan Hubicka  <jh@suse.cz>
14668
14669         PR target/23322
14670         * i386.md (moddf_integer): Do not produce partial memory stalls for
14671         targets where it hurts.
14672
14673 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
14674
14675         PR target/35083
14676         * optabs.c (expand_float): Do not check for decimal modes when
14677         expanding unsigned integer through signed conversion.
14678
14679 2008-02-06  Nick Clifton  <nickc@redhat.com>
14680
14681         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
14682         inside the clobber with a match_operand and duplicated operand
14683         number in the constraint.
14684         (ineqbranchsi): Delete redundant comment.
14685
14686 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
14687
14688         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
14689         builtin_define ("__USE_INIT_FINI__").
14690         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
14691         -msx multilibs.
14692         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
14693
14694 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14695
14696         PR documentation/30330
14697         * doc/invoke.texi (C++ Dialect Options)
14698         (Objective-C and Objective-C++ Dialect Options, Warning Options):
14699         For each warning option -Wfoo that allows -Wno-foo, ensure both
14700         -Wfoo and -Wno-foo are listed in the option index.  Fix index
14701         entry of -Wswitch-default, index -Wnormalized= including the
14702         `=', and -Wlarger-than-@var{len} including @var{len}.
14703
14704 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
14705
14706         * config/i386/i386.md (floatunssisf2): Use
14707         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
14708         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
14709         Macroize expander using MODEF mode iterator.
14710
14711 2008-02-05  Diego Novillo  <dnovillo@google.com>
14712
14713         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
14714
14715         PR 33738
14716         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
14717
14718 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14719
14720         PR other/35070
14721         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
14722
14723 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
14724
14725         PR target/35084
14726         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
14727         to indicate if a message should be generated.
14728         (init_cumulative_args): Updated.
14729         (function_value_32): Likewise.
14730
14731 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
14732
14733         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
14734
14735 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
14736
14737         PR target/35083
14738         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
14739         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
14740
14741 2008-02-04  Diego Novillo  <dnovillo@google.com>
14742
14743         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
14744
14745         PR 33738
14746         * tree-vrp.c (vrp_evaluate_conditional): With
14747         -Wtype-limits, emit a warning when comparing against a
14748         constant outside the natural range of OP0's type.
14749
14750 2008-02-04  Richard Guenther  <rguenther@suse.de>
14751
14752         PR middle-end/33631
14753         * expr.c (count_type_elements): Give for unions instead of
14754         guessing.
14755
14756 2008-02-04  Richard Guenther  <rguenther@suse.de>
14757
14758         PR middle-end/35043
14759         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
14760         to TYPE_DOMAINs base type instead of using bitsizetype here.
14761
14762 2008-02-03  Jason Merrill  <jason@redhat.com>
14763
14764         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
14765
14766 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14767
14768         PR other/29972
14769         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
14770         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
14771         (RS/6000 and PowerPC Options): Fix typos and markup.
14772         * doc/passes.texi (Tree-SSA passes): Likewise.
14773
14774 2008-02-02  Michael Matz  <matz@suse.de>
14775
14776         PR target/35045
14777         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
14778         from record_last_reg_set_info.
14779         (record_last_reg_set_info): Take an RTX argument, iterate over all
14780         constituent hardregs.
14781         (record_last_set_info, record_opr_changes): Change calls to
14782         new signature or to record_last_reg_set_info_regno.
14783
14784 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
14785
14786         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
14787
14788 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
14789
14790         PR rtl-optimization/34773
14791         * reg-notes.def (EQUAL): Mention significance of combination of
14792         REG_EQUAL and REG_RETVAL.
14793         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
14794         insn that has a REG_RETVAL.
14795
14796 2008-02-01  Roger Sayle  <roger@eyesopen.com>
14797
14798         PR bootstrap/33781
14799         * configure.ac (--enable-fixed-point): Disable unless explicitly
14800         requested on IRIX.
14801         * configure: Regenerate.
14802
14803 2008-02-01  Richard Guenther  <rguenther@suse.de>
14804
14805         PR other/35042
14806         * invoke.texi (-finline-limit): Remove no longer true parts
14807         of the documentation.  Note that there is no default value.
14808
14809 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
14810             Mark Mitchell  <mark@codesourcery.com>
14811             Ben Elliston  <bje@au.ibm.com>
14812
14813         PR c/29326
14814         * doc/extend.texi (Other Builtins): Document.
14815
14816 2008-01-31  Tom Browder <tom.browder@gmail.com>
14817
14818         * doc/c-tree.texi (Types): Fix grammar.
14819         (Expression trees): Ditto.
14820         * doc/passes.texi (Tree-SSA passes): Ditto.
14821         
14822         * doc/configterms.texi (Configure Terms): Fix typo.
14823         * doc/cpp.texi (Common Predefined Macros): Ditto.
14824         * doc/md.texi (Machine Constraints): Ditto.
14825         
14826         * doc/makefile.texi (Makefile): Add comma.
14827
14828 2008-01-31  Tom Browder  <tom.browder@gmail.com>
14829             Gerald Pfeifer  <gerald@pfeifer.com>
14830         
14831         * doc/sourcebuild.texi (Front End): Remove references to CVS
14832         and CVSROOT/modules.
14833         (Texinfo Manuals): Replace reference to CVS by one to SVN.
14834         (Back End): Remove reference to CVS.
14835
14836 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
14837
14838         PR target/34900
14839         * config/mips/mips.c (gen_load_const_gp): New function, taking a
14840         comment from...
14841         (mips16_gp_pseudo_reg): ...here.
14842         * config/mips/mips.md (load_const_gp): Replace with...
14843         (load_const_gp_<mode>): ...this :P-based insn.
14844
14845 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14846
14847         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
14848         options. Minor fixes.
14849         (-std): Move reference to standards closer to where language
14850         standards are first mentioned.
14851         
14852 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
14853
14854         PR rtl-optimization/34995
14855         * reload.c (alternative_allows_const_pool_ref): Take an rtx
14856         parameter and return a bool.  If the rtx parameter is nonnull,
14857         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
14858         (find_reloads): Update call accordingly.  Pass the new operand
14859         if it needed no address reloads, otherwise pass null.
14860
14861 2008-01-30  Richard Henderson  <rth@redhat.com>
14862
14863         PR c/34993
14864         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
14865         for unbounded arrays.
14866
14867 2008-01-30  Silvius Rus  <rus@google.com>
14868
14869         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
14870
14871 2008-01-30  Jan Hubicka  <jh@suse.cz>
14872
14873         PR target/34982
14874         * i386.c (init_cumulative_args): Use real function declaration when
14875         calling locally.
14876
14877 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
14878
14879         PR rtl-optimization/34998
14880         * global.c (build_insn_chain): Treat non-subreg_lowpart
14881         SUBREGs of pseudos as clobbering all the words covered by the
14882         SUBREG, not just all the bytes.
14883         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
14884         original df_ref rather than an extract parameter.
14885         (global_conflicts): Update call accordingly.
14886
14887 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
14888
14889         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
14890         the overflow check to make it easier to read.
14891         (__fixtfdi): Change the type of the ll member in union
14892         long_double to UDItype_x.
14893
14894 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
14895
14896         PR middle-end/34969
14897         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
14898         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
14899         * tree-inline.c (fold_marked_statements): Call
14900         cgraph_update_edges_for_call_stmt if folding a call statement.
14901         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
14902         debug_generic_stmt calls, reset it back afterwards.
14903
14904         PR c/35017
14905         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
14906         static decls.
14907         * c-typeck.c (build_external_ref): Don't pedwarn about
14908         static vars in current function's scope.
14909
14910 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
14911
14912         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
14913
14914 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
14915
14916         PR c/35002
14917         * ipa-struct-reorg.c: Fix spelling.
14918         * params.def: Ditto.
14919
14920 2008-01-29  Richard Guenther  <rguenther@suse.de>
14921
14922         PR middle-end/35006
14923         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
14924         field.
14925         * tree-inline.c (remap_type): Increment remapping_type_depth
14926         around remapping types.
14927         (copy_body_r): Only add referenced variables if they are referenced
14928         from code, not types.
14929
14930 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
14931
14932         PR c++/34055
14933         PR c++/34103
14934         PR c++/34219
14935         PR c++/34606
14936         PR c++/34753
14937         PR c++/34754
14938         PR c++/34755
14939         PR c++/34919
14940         PR c++/34961
14941         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
14942         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
14943
14944 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
14945
14946         PR target/34412
14947         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
14948         pointer for tiny stack.
14949
14950 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
14951
14952         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
14953
14954 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
14955
14956         * config/vx-common.h: Fix typo in comment.
14957
14958 2008-01-28  Ian Lance Taylor  <iant@google.com>
14959
14960         PR c++/34862
14961         PR c++/33407
14962         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
14963         coalesce pointers if they have different DECL_NO_TBAA_P values.
14964         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
14965         between variables with different DECL_NO_TBAA_P values.
14966
14967 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
14968
14969         PR 31535
14970         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
14971         are not legitimate small data references on SPE targets.
14972
14973 2008-01-28  David Daney  <ddaney@avtrex.com>
14974
14975         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
14976
14977 2008-01-28  David Daney  <ddaney@avtrex.com>
14978
14979         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
14980
14981 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
14982
14983         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
14984         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
14985         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
14986         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
14987         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
14988         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
14989         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
14990         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
14991
14992 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
14993
14994         * basic-block.h (condjump_equiv_p): Fix comment.
14995
14996 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
14997
14998         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
14999         print_generic_stmt_indented): Fix comment.
15000
15001 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
15002
15003         * configure.ac (__stack_chk_fail): Add detecion for availability
15004         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
15005         * configure: Regenerate.
15006
15007 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
15008
15009         PR middle-end/34688
15010         * final.c (output_addr_const): Handle TRUNCATE.
15011
15012 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
15013
15014         PR target/34711
15015         * tree-ssa-loop-ivopts.c (comp_cost): New type.
15016         (zero_cost, infinite_cost): New constants.
15017         (struct cost_pair): Change type of cost to comp_cost.
15018         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
15019         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
15020         New functions.
15021         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
15022         split_address_cost, ptr_difference_cost, difference_cost,
15023         get_computation_cost_at, get_computation_cost,
15024         determine_use_iv_cost_generic, determine_use_iv_cost_address,
15025         determine_use_iv_cost_condition, determine_use_iv_costs,
15026         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
15027         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
15028         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
15029         Change type of cost to comp_cost.
15030         (determine_iv_cost): Increase cost of non-original ivs, instead
15031         of decreasing the cost of original ones.
15032         (get_address_cost): Indicate the complexity of the addressing mode 
15033         in comp_cost.
15034         (try_add_cand_for): Prefer using ivs not specific to some object.
15035         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
15036
15037 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
15038             Janis Johnson  <janis187@us.ibm.com>
15039
15040         PR target/34814
15041         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
15042         (TARGET_INSTANTIATE_DECLS): Likewise.
15043         * target.h (expand_to_rtl_hook): New target hook.
15044         (instantiate_decls): Likewise.
15045         * function.c (instantiate_decl): Make non-static.  Rename to...
15046         (instantiate_decl_rtl): ... this.
15047         (instantiate_expr): Use instantiate_decl_rtl.
15048         (instantiate_decls_1): Likewise.
15049         (instantiate_decls): Likewise.
15050         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
15051         * function.h (instantiate_decl_rtl): Add prototype.
15052         * cfgexpand.c (target.h): New include.
15053         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
15054         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
15055         (TARGET_INSTANTIATE_DECLS): Likewise.
15056         (TARGET_INITIALIZER): New target hooks added.
15057         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
15058         New prototype.
15059         * config/rs6000/rs6000.c (tree-flow.h): New include.
15060         (machine_function): Add sdmode_stack_slot field.
15061         (rs6000_alloc_sdmode_stack_slot): New function.
15062         (rs6000_instantiate_decls): Likewise.
15063         (rs6000_secondary_memory_needed_rtx): Likewise.
15064         (rs6000_check_sdmode): Likewise.
15065         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
15066         (TARGET_INSTANTIATE_DECLS): Likewise.
15067         (rs6000_hard_regno_mode_ok): Allow SDmode.
15068         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
15069         (rs6000_emit_move): Handle SDmode.
15070         (function_arg_advance): Likewise.
15071         (function_arg): Likewise.
15072         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
15073         SDmode var args for 32-bit compiles.
15074         (rs6000_secondary_reload_class): Handle SDmode.
15075         (rs6000_output_function_epilogue): Likewise.
15076         (rs6000_function_value): Simplify if statement.
15077         (rs6000_libcall_value): Likewise.
15078         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
15079         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
15080         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
15081         (movsd_hardfloat): New define_insn.
15082         (movsd_softfloat): Likewise.
15083         (movsd_store): Likewise.
15084         (movsd_load): Likewise.
15085         (extendsddd2): Likewise.
15086         (extendsdtd2): Likewise.
15087         (truncddsd2): Likewise.
15088         (movdd_hardfloat64): Fixup comment.
15089         (UNSPEC_MOVSD_LOAD): New constant.
15090         (UNSPEC_MOVSD_STORE): Likewise.
15091
15092 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
15093
15094         PR c++/34965
15095         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
15096         TRUTH_XOR_EXPR.
15097         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
15098         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
15099         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
15100         and TRUTH_XOR_EXPR.
15101
15102 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
15103
15104         PR target/34794
15105         * config.gcc: Separate AIX 5.3 from AIX 6.1.
15106         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
15107         __LONGDOUBLE128 too.
15108         * config/rs6000/aix61.h: New file.
15109
15110 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
15111
15112         PR rtl-optimization/34959
15113         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
15114         popcount and parity rtxes the same mode as their operand.
15115         Truncate or extend the result to the return value's mode
15116         if necessary.
15117
15118 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
15119
15120         PR target/34981
15121         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
15122         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
15123         to GOT_VERSION_REGNUM.
15124         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
15125         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
15126         * config/mips/mips.c (mips_emit_call_insn): New function.
15127         (mips_call_tls_get_addr): Call mips_expand_call directly.
15128         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
15129         emit_call_insn.
15130         (mips16_build_call_stub): Likewise.  Return the call insn or null.
15131         (mips_expand_call): Update the call to mips16_build_call_stub
15132         accordingly and a remove redundant condition.  Assert that MIPS16
15133         stubs do not use lazy binding.  Use mips_emit_call_insn and return
15134         the call insn.
15135         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
15136         TARGET_USE_GOT.
15137         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
15138         (mips_avoid_hazard): Remove hazard_set handling.
15139         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
15140         (UNSPEC_RESTORE_GP): ...this.
15141         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
15142         (FAKE_CALL_REGNO): Rename to...
15143         (GOT_VERSION_REGNUM): ...this.
15144         (type): Add "ghost" value.  Add an associated insn reservation.
15145         (hazard_set): Remove.
15146         (exception_receiver): Rename to...
15147         (restore_gp): ...this and update the unspec identifier accordingly.
15148         (exception_receiver, nonlocal_got_receiver): New expanders.
15149         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
15150         FAKE_CALL_REGNO.  Remove hazard_set attribute.
15151         (set_got_version, update_got_version): New patterns.
15152
15153 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
15154
15155         PR target/34970
15156         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
15157
15158 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
15159
15160         PR other/31955
15161         * doc/install.texi2html: Generate gcc-vers.texi.
15162
15163 2008-01-25  DJ Delorie  <dj@redhat.com>
15164
15165         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
15166
15167 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
15168
15169         * config/c4x: Remove directory.
15170         * config.gcc (crx-*, mt-*): Mark obsolete.
15171         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
15172         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
15173         sh-*-rtemscoff*): Remove cases.
15174         * defaults.h (C4X_FLOAT_FORMAT): Remove.
15175         * real.c (encode_c4x_single, decode_c4x_single,
15176         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
15177         c4x_extended_format): Remove.
15178         * real.h (c4x_single_format, c4x_extended_format): Remove.
15179         * doc/extend.texi (interrupt, naked): Remove mention of attributes
15180         on C4x.
15181         (Pragmas): Remove comment about c4x pragmas.
15182         * doc/install.texi (c4x): Remove target-specific instructions.
15183         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
15184         * doc/md.texi (Machine Constraints): Remove C4x documentation.
15185         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
15186         refer to C4x source files as examples.
15187         (C4X_FLOAT_FORMAT): Remove documentation.
15188
15189 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
15190
15191         * config/bfin/bfin.c (override_options): Reorder tests so that
15192         flag_pic gets enabled for -msep-data.
15193
15194 2008-01-25  Richard Guenther  <rguenther@suse.de>
15195
15196         PR middle-end/32244
15197         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
15198         to its bitfield precision if required.
15199
15200 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
15201
15202         PR middle-end/33880
15203         * tree-nested.c (walk_omp_for): New function.
15204         (convert_nonlocal_reference, convert_local_reference): Call
15205         walk_omp_for on OMP_FOR.
15206         (convert_call_expr): Call walk_body on OMP_FOR's
15207         OMP_FOR_PRE_INIT_BODY.
15208
15209 2008-01-25  Richard Guenther  <rguenther@suse.de>
15210
15211         PR tree-optimization/34966
15212         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
15213         default defs and PHI_NODEs we have to insert after the
15214         defining statement.
15215
15216 2008-01-24  Nick Clifton  <nickc@redhat.com>
15217
15218         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
15219         Provide a default definition.
15220         (LIBGCC2_UNITS_PER_WORD): Likewise.
15221
15222         * config/stormy16/stormy16.c: Include df.h for the prototype
15223         for df_regs_ever_live_p.
15224         (xstormy16_expand_builtin_va_start): Convert the stack offset
15225         into a component_ref and then use POINTER_PLUS_EXPR to add it
15226         to the incoming_virtual_args_rtx.
15227         (xstormy16_gimplify_va_arg_expr): Rename to
15228         xstormy16_gimplify_va_arg_expr.
15229         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
15230         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
15231         xstormy16_gimplify_va_arg_expr.
15232         Fix up some formatting issues.
15233
15234         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
15235         Move to predicates.md.
15236         (xs_hi_general_operand): Likewise.
15237         (xs_hi_nonmemory_operand): Likewise.
15238         * config/stormy16/predicates.md:
15239         (xstormy16_carry_plus_operand): New predicate.
15240         (xs_hi_general_operand): New predicate.
15241         (xs_hi_nonmemory_operand): New predicate.
15242         * config/stormy16/stormy16-protos.h:
15243         (xstormy16_carry_plus_operand): Delete prototype.
15244         (xs_hi_general_operand): Likewise.
15245         (xs_hi_nonmemory_operand): Likewise.
15246
15247         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
15248         modifiers as they are no longer needed and they can trigger
15249         reload spill failures.
15250
15251         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
15252         with a match_operand in order to help reload.
15253
15254         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
15255         constraint with 'e' for the 8th alternative as this version of
15256         the mov.w instruction only accepts the lower 8 registers.
15257
15258 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
15259
15260         PR target/34856
15261         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
15262         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
15263         vector elements.
15264
15265 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
15266
15267         PR middle-end/33333
15268         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
15269
15270 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
15271
15272         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
15273         New functions.
15274         (remove_structure): Update allocations list before removing structure.
15275         
15276 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
15277
15278         * ipa-struct-reorg.c (is_safe_cond_expr, 
15279         create_new_stmts_for_cond_expr): Use integer_zerop function,
15280         that recognize not only zero-pointer, but zero-integer too.
15281
15282 2008-01-25  Ben Elliston  <bje@au.ibm.com>
15283
15284         PR other/22232
15285         * fixproto: Escape "." in sed expression that strips leading "./".
15286
15287 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
15288
15289         PR driver/34904
15290         * gcc.c (SWITCH_OK): Removed.
15291         (SWITCH_LIVE): Changed to bit.
15292         (SWITCH_FALSE): Likewise.
15293         (SWITCH_IGNORE): Likewise.
15294         (switchstr): Change live_cond to unsigned int.
15295         (process_command): Replace SWITCH_OK with 0.
15296         (do_self_spec): Likewise.
15297         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
15298         (give_switch): Likewise.
15299         (used_arg): Likewise.
15300         (do_spec_1): Set the SWITCH_IGNORE bit.
15301         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
15302         bits.  Set the SWITCH_LIVE bit.
15303
15304 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
15305
15306         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
15307
15308 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
15309
15310         PR tree-optimization/34472
15311         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
15312         parameter to a "bool *" and set *DATA to false if there is
15313         an unsafe access.  Do not delete the structure here.
15314         (check_cond_exprs): Delete it here instead.
15315         (check_cond_exprs, exclude_cold_structs): Do not increase
15316         I when removing a structure.
15317
15318 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
15319
15320         PR target/34856
15321         * config/i386/i386.c (ix86_expand_vector_init): Consider only
15322         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
15323
15324 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
15325
15326         PR middle-end/34934
15327         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
15328         a fixed vector for stack.
15329
15330 2008-01-24  Ben Elliston  <bje@au.ibm.com>
15331
15332         PR c++/25701
15333         * doc/gcc.texi (Software development): Add a direntry for g++.
15334         
15335 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
15336
15337         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
15338         stale and straggling -fforce-addr comments above.
15339
15340         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
15341         define.
15342         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
15343         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
15344
15345 2008-01-23  Michael Matz  <matz@suse.de>
15346
15347         PR debug/34895
15348         * dwarf2out.c (force_type_die): Use modified_type_die instead of
15349         gen_type_die.
15350
15351 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
15352
15353         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
15354         malloc result type.
15355
15356 2008-01-23 Anatoly Sokolov <aesok@post.ru>
15357
15358         * config/avr/avr.c (avr_current_arch): New variable.
15359         (avr_arch_types): Add 'avr31' and 'avr51' entries.
15360         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
15361         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
15362         (avr_override_options): Init 'avr_current_arch'. 
15363         (base_arch_s): Move from here...
15364         * config/avr/avr.h (base_arch_s): ... here. Add new members 
15365         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
15366         'mega' to 'have_jmp_call'.
15367         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
15368         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
15369         macros.
15370         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
15371         architectures.
15372         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
15373         MULTILIB_MATCHES): (Ditto.).
15374
15375 2008-01-23  Richard Guenther  <rguenther@suse.de>
15376
15377         PR middle-end/31529
15378         * cgraphunit.c (cgraph_reset_node): Always mark the node
15379         not reachable if it is not queued already.
15380
15381 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
15382
15383         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
15384         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
15385         (cputype_selected): New static variable.
15386         (bfin_handle_option): Set it if -mcpu is used.
15387         (override_option): Select default set of workarounds if no cpu type
15388         selected on the command line.
15389         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
15390
15391         From  Michael Frysinger  <michael.frysinger@analog.com>
15392         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
15393         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
15394
15395         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
15396         for bf547, bf523, bf524, and bf526.
15397         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
15398         bf526.
15399         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
15400         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
15401         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
15402         __ADSPBF547__ and __ADSPBF54x__ for bf547.
15403         * doc/invoke.texi (Blackfin Options): Document that
15404         -mcpu now accept bf547, bf523, bf524, and bf526.
15405
15406 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
15407
15408         PR rtl-optimization/34628
15409         * combine.c (try_combine): Stop and undo after the first combination
15410         if an autoincrement side-effect on the first insn has effectively
15411         been lost.
15412
15413 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
15414
15415         PR target/34529
15416         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
15417         Offset addresses are not valid for Altivec or paired float modes.
15418
15419 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
15420
15421         PR c++/34607
15422         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
15423         if DECL_INITIAL (decl) is error_mark_node.
15424
15425         PR c++/34914
15426         * c-common.c (handle_vector_size_attribute): Only allow
15427         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
15428         the same way as pointer, array etc. types.
15429         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
15430
15431         PR c++/34917
15432         * tree.c (build_type_attribute_qual_variant): Call
15433         build_qualified_type if attributes are equal, but quals are not.
15434
15435 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15436
15437         PR 32102
15438         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
15439         * flags.h (warn_strict_aliasing): Remove.
15440         (warn_strict_overflow): Remove.
15441         * opts.c (warn_strict_aliasing): Remove.
15442         (warn_strict_overflow): Remove.
15443         * c-opts.c (c_common_handle_option): -Wall only sets
15444         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
15445         (c_common_post_options): Give default values to -Wstrict-aliasing
15446         and -Wstrict-overflow if they are uninitialized.
15447         * common.opt (Wstrict-aliasing): Specify Var and Init.
15448         (Wstrict-overflow): Likewise.
15449
15450 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
15451
15452         PR rtl-optimization/26854
15453         PR rtl-optimization/34400
15454         PR rtl-optimization/34884
15455         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
15456         DF_RD->gen.
15457         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
15458         (df_rd_bb_info.expanded_lr_out): Deleted
15459         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
15460         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
15461         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
15462         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
15463         Removed code to allocate, initialize or free expanded_lr_out.
15464         (df_rd_bb_local_compute_process_def): Restructured to make more
15465         understandable.
15466         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
15467         sets if the sets are being trimmed.
15468
15469 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
15470
15471         PR bootstrap/32287
15472         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
15473         (as_vers): Likewise.
15474         * configure: Regenerated.
15475
15476 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15477
15478         PR middle-end/33092
15479         * tree-pass.h (pass_build_alias): New pass.
15480         * tree-ssa-alias.c (gate_build_alias): New.
15481         (pass_build_alias): New.
15482         * passes.c (init_optimization_passes): Add pass_build_alias after
15483         pass_create_structure_vars.
15484
15485 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
15486
15487         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
15488         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
15489         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
15490         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
15491         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
15492         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
15493         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
15494         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
15495         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
15496         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
15497         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
15498         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
15499         * config/s390/s390.md (FP_ALL): New mode iterator.
15500         (_d): New mode attribute.
15501         ("*signbit<mode>2>"): Changed mode of first operand.
15502         ("isinf<mode>2"): Changed mode of first operand.
15503         ("*TDC_insn"): Adaptation for DFP modes.
15504
15505 2008-01-22  Ben Elliston  <bje@au.ibm.com>
15506
15507         * tree.c (check_qualified_type): Improve function description.
15508
15509 2008-01-21  Jason Merrill  <jason@redhat.com>
15510
15511         PR c++/34196
15512         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
15513         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
15514         if it is set.
15515
15516 2008-01-21  DJ Delorie  <dj@redhat.com>
15517
15518         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
15519         return zero.
15520
15521 2008-01-21  Richard Guenther  <rguenther@suse.de>
15522
15523         PR middle-end/34856
15524         * tree-cfg.c (verify_expr): Allow all invariant expressions
15525         instead of just constant class ones as reference argument.
15526         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
15527         like any other constant.
15528         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
15529
15530 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
15531
15532         * regmove.c (fixup_match_1): Update call crossed frequencies.
15533
15534 2008-01-21  Richard Guenther  <rguenther@suse.de>
15535
15536         PR c/34885
15537         * tree-inline.c (setup_one_parameter): Deal with mismatched
15538         types using a VIEW_CONVERT_EXPR.
15539
15540 2008-01-21  Alon Dayan  <alond@il.ibm.com>
15541             Olga Golovanevsky  <olga@il.ibm.com>
15542         
15543         PR tree-optimization/34701
15544         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
15545         when the structure size is not a power of 2.
15546
15547 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
15548
15549         * doc/install.texi: Add doc for --enable-checking=df.
15550         
15551 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
15552
15553         PR rtl-optimization/34808
15554         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
15555
15556 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
15557
15558         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
15559         input.
15560
15561 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
15562
15563         PR rtl-optimization/26854
15564         PR rtl-optimization/34400
15565         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
15566         DF_RD->gen.
15567         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
15568         (df_rd_bb_info.expanded_lr_out): New.
15569         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
15570         * loop_iv.c (iv_analysis_loop_init): Ditto.
15571         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
15572         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
15573         Added code to allocate, initialize or free expanded_lr_out.
15574         (df_rd_bb_local_compute_process_def): Restructured to make
15575         more understandable.
15576         (df_rd_confluence_n): Add code to do nothing with fake edges and
15577         code to no apply invalidate_by_call sets if the sets are being trimmed.
15578         (df_lr_local_finalize): Renamed to df_lr_finalize.
15579         (df_live_local_finalize): Renamed to df_live_finalize.
15580
15581 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
15582
15583         PR target/34831
15584         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
15585         deciding whether to use reciprocal instructions.
15586
15587 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
15588
15589         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
15590         dwarf2out_note_section_used if cold_text_section is NULL.
15591
15592 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
15593
15594         PR gcov-profile/34610
15595         * tree-cfg.c (make_edges): Mark both outgoing edges from
15596         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
15597         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
15598         from OMP_FOR and OMP_CONTINUE outgoing edges.
15599
15600         * tree-profile.c (tree_profiling): Return early if
15601         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
15602         at the end.
15603         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
15604         from cfun to child_cfun.
15605         * function.h (struct function): Add after_tree_profile bit.
15606
15607 2008-01-19 Anatoly Sokolov <aesok@post.ru>
15608
15609         * config/avr/avr.S (_exit): Disable interrupt.
15610
15611 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
15612             Steven Bosscher  <stevenb.gcc@gmail.com>
15613
15614         PR rtl-optimization/26854
15615         PR rtl-optimization/34400
15616         * df-problems.c (df_live_scratch): New scratch bitmap.
15617         (df_live_alloc): Allocate df_live_scratch when doing df_live.
15618         (df_live_reset): Clear the proper bitmaps.
15619         (df_live_bb_local_compute): Only process the artificial defs once
15620         since the order is not important.
15621         (df_live_init): Init the df_live sets only with the variables
15622         found live by df_lr.
15623         (df_live_transfer_function): Use the df_lr sets to prune the
15624         df_live sets as they are being computed.  
15625         (df_live_free): Free df_live_scratch.
15626
15627 2008-01-18  Ian Lance Taylor  <iant@google.com>
15628
15629         * common.opt: Add fmerge-debug-strings.
15630         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
15631         flag_merge_debug_strings rather than flag_merge_constants.
15632         * doc/invoke.texi (Option Summary): Mention
15633         -fmerge-debug-strings.
15634         (Debugging Options): Document -fmerge-debug-strings.
15635
15636 2008-01-18  Ian Lance Taylor  <iant@google.com>
15637
15638         PR c++/33407
15639         * tree.h (DECL_IS_OPERATOR_NEW): Define.
15640         (struct tree_function_decl): Add new field operator_new_flag.
15641         * tree-inline.c (expand_call_inline): When inlining a call to
15642         operator new, force the return value to go into a variable, and
15643         set DECL_NO_TBAA_P on that variable.
15644         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
15645
15646 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
15647
15648         PR debug/34484
15649         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
15650         DWARF2_DEBUGGING_INFO.
15651         (dwarf2out_note_section_used): Ditto.  Add prototype.
15652         (have_multiple_function_sections, text_section_used,
15653         cold_text_section_used, *cold_text_sections): Move declarations
15654         before their uses.
15655
15656 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
15657
15658         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
15659         field and add signal_ra.
15660         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
15661         assignments to frame state pc.  Move end of stack check after
15662         MD_FALLBACK_FRAME_STATE_FOR.
15663         (uw_update_context_1): Use frame state signal_regs if set, instead
15664         of checking signal_frame flag.
15665         (uw_update_context): Use frame state signal_ra if set.
15666         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
15667         * config/xtensa/linux-unwind.h: New file.
15668
15669 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
15670
15671         * modulo-sched.c (get_sched_window): Fix comment typo.
15672
15673 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
15674
15675         PR tree-optimization/34648
15676         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
15677
15678 2008-01-17  Anatoly Sokolov <aesok@post.ru>
15679
15680         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
15681         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
15682
15683 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
15684
15685         PR rtl-optimization/34400
15686         * df-core.c (df_worklist_dataflow_overeager,
15687         df_worklist_dataflow_doublequeue): New functions.
15688         (df_worklist_dataflow): Two different worklist solvers.
15689         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
15690         New param.
15691
15692 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
15693
15694         PR testsuite/34821
15695         * doc/invoke.texi: Document the dependence on pthread for fopenmp
15696         and ftree-parallelize-loops.
15697
15698 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
15699
15700         PR rtl-optimization/34826
15701         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
15702
15703 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
15704
15705         * global.c (find_reg): Mark the eh regs as used if necessary.
15706         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
15707         * ra.h (struct allocno): no_eh_reg field added.  Changed
15708         no_stack_reg type to bitfield.
15709
15710 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
15711
15712         * tree.c (substitute_in_expr): Add missing 'break'.
15713
15714 2008-01-17  Richard Guenther  <rguenther@suse.de>
15715
15716         PR tree-optimization/34825
15717         * tree-ssa-math-opts.c (is_division_by): Do not recognize
15718         x / x as division to handle.
15719
15720 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15721
15722         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
15723         "-pthread" is specified.
15724         * pa-hpux11.h (LIB_SPEC): Likewise.
15725
15726 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
15727             Peter Bergner  <bergner@vnet.ibm.com>
15728
15729         PR rtl-optimization/33796
15730         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
15731
15732 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15733
15734         PR libgfortran/34699
15735         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
15736         static links.
15737         * pa-hpux10.h (LINK_SPEC): Likewise.
15738         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
15739
15740 2008-01-16  Richard Guenther  <rguenther@suse.de>
15741
15742         PR middle-end/32628
15743         * fold-const.c (fold_convert_const_int_from_int): Do not
15744         set overflow if that occured only because of a sign extension
15745         change when converting from/to a sizetype with the same
15746         precision and signedness.
15747
15748 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
15749
15750         PR debug/34249
15751         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
15752         location address to the correct place.  Update copyright year.
15753
15754 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
15755
15756         * lambda-code.c (lambda_transform_legal_p): Handle the case of
15757         no dependences in the dependence_relations vector.
15758
15759 2008-01-16  Jan Hubicka  <jh@suse.cz>
15760
15761         PR rtl-optimization/31396
15762         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
15763         * cfg.c (dump_reg_info): Print it.
15764         * regs.h (struct reg_info_t): add freq_calls_crossed.
15765         (REG_FREQ_CALLS_CROSSED): New macro.
15766         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
15767         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
15768         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
15769         regmove_optimize): Update call crossed frequencies.
15770         * local-alloc.c (struct qty): Add freq_calls_crossed.
15771         (alloc_qty): Copute freq_calls_crossed.
15772         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
15773         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
15774         * ra.h (struct allocno): Add freq_calls_crossed.
15775
15776 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
15777
15778         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
15779         libgomp when compiling with ftree-parallelize-loops.
15780         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
15781
15782 2008-01-16  Richard Guenther  <rguenther@suse.de>
15783
15784         PR tree-optimization/34769
15785         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
15786         * tree.c (int_cst_value): Instead make this function more
15787         permissive in what it accepts as valid input.  Document this
15788         function always sign-extends the value.
15789
15790 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
15791             Richard Guenther  <rguenther@suse.de>
15792
15793         PR c/34668
15794         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
15795         (gimple_fold_indirect_ref_rhs): ... this.
15796         (gimple_fold_indirect_ref): New function with foldings
15797         that preserve lvalueness.
15798         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
15799         * tree-flow.h (gimple_fold_indirect_ref): Declare.
15800         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
15801         to fold an INDIRECT_REF, fall back to the old use of
15802         fold_indirect_ref_1.
15803
15804 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
15805
15806         * tree-data-ref.c (subscript_dependence_tester_1): Call 
15807         free_conflict_function.
15808         (compute_self_dependence): Same.
15809
15810 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
15811
15812         PR debug/34249
15813         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
15814         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
15815         function global.
15816         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
15817         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
15818         for DWARF2_UNWIND_INFO targets.
15819
15820 2008-01-16  Richard Guenther  <rguenther@suse.de>
15821
15822         PR c/34768
15823         * c-typeck.c (common_pointer_type): Do not merge inconsistent
15824         type qualifiers for function types.
15825
15826 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
15827
15828         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
15829         loop_iterator li from previous commit.
15830
15831 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
15832
15833         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
15834
15835 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
15836
15837         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
15838         (parallelize_loops): Don't parallelize irreducible components.
15839
15840 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15841
15842         PR c++/24924
15843         * c-opts (c_common_post_options): Do not enable CPP
15844         flag_pedantic_errors by default.
15845         
15846 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
15847
15848         PR rtl-optimization/31944
15849         * cse.c (remove_pseudo_from_table): New function.
15850         (merge_equiv_classes): Use above function to remove pseudo-registers.
15851         (invalidate): Likewise.
15852
15853 2008-01-13  Richard Guenther  <rguenther@suse.de>
15854
15855         PR middle-end/34601
15856         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
15857         instead of TYPE_MODE to deal with calls from expand_one_error_var.
15858
15859 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
15860
15861         * gcse.c (cprop_jump): Call validate_unshare_change instead of
15862         validate_change to unshare the source of the PC set.
15863
15864 2008-01-12  Jan Hubicka  <jh@suse.cz>
15865
15866         PR middle-end/32135
15867         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
15868         references above array bounds.  This might trigger bounds checks for
15869         pointers to arrays.
15870
15871 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
15872
15873         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
15874         new_replaceable_dependencies.
15875
15876 2008-01-12  Doug Kwan  <dougkwan@google.com>
15877
15878         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
15879         instead of OPT_Wreturn_type in warning due to ignored return type
15880         qualifiers.
15881         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
15882         options included in -Wextra.
15883         * c.opt: New option -Wignored_qualifiers.
15884         * doc/invoke.texi (Warning Options, -Wextra): Add new option
15885         -Wignore_qualifiers.
15886         (-Wignored-qualifiers): Document.
15887         (-Wreturn-type): Remove description of functionality now handled
15888         by -Wignored-qualifiers.
15889
15890 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
15891
15892         PR ada/33788
15893         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
15894         NOP_EXPR if it is between integral types with the same precision.
15895
15896 2008-01-12  Jan Hubicka  <jh@suse.cz>
15897
15898         PR other/28023
15899         * invoke.texi (max-inline-recursive-depth): Fix default value.
15900
15901 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
15902
15903         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
15904         correct type.
15905
15906 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
15907         
15908         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
15909         
15910 2008-01-11  James E. Wilson  <wilson@specifix.com>
15911
15912         PR target/26015
15913         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
15914
15915 2008-01-11  Anatoly Sokolov <aesok@post.ru>
15916
15917         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
15918         save/restore frame pointer register and don't use 'call-prologues' 
15919         optimization in function with "OS_task" attribute.
15920
15921 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
15922
15923         PR middle-end/31309
15924         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
15925         when copying to memory.
15926
15927 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
15928
15929         PR rtl-optimization/30905
15930         * cfgcleanup.c: Include dce.h
15931         (crossjumps_occured): New global variable.
15932         (try_crossjump_bb): Exit loop after finding a fallthru edge.
15933         If something changed, set crossjumps_occured to true.
15934         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
15935         Don't add/remove fake edges to exit here...
15936         (cleanup_cfg): ...but do it here, when crossjumping.
15937         Run a fast DCE when successful crossjumps occured in the latest
15938         iteration of try_optimize_cfg.
15939
15940 2008-01-11  Richard Guenther  <rguenther@suse.de>
15941
15942         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
15943         (struct vn_unary_op_s): Likewise.
15944         (vn_reference_insert): Free old reference on hash collision.
15945
15946 2008-01-10  Raksit Ashok  <raksit@google.com>
15947
15948         PR rtl-optimization/27971
15949         * combine.c (find_split_point): Split PLUS expressions which are
15950         inside a MEM rtx, and whose first operand is complex.
15951
15952 2008-01-10  DJ Delorie  <dj@redhat.com>
15953
15954         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
15955         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
15956         (m32c_hard_regno_ok): Call the underlying function.
15957
15958 2008-01-10  Richard Guenther  <rguenther@suse.de>
15959
15960         PR middle-end/34683
15961         * tree-cfg.c (tree_merge_blocks): Do not go through the
15962         full-blown folding and stmt updating path if we just deal
15963         with virtual operands.
15964         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
15965         test for abnormal SSA_NAMEs.
15966
15967 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
15968
15969         PR middle-end/34641
15970         * reload.c (push_reload): Add assertions.  All constants from
15971         reg_equiv_constant should have been used for replacing the respective
15972         pseudo earlier.
15973         (find_reloads_address): Invoke find_reloads_address_part for
15974         constant taken from the reg_equiv_constant array.
15975
15976 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
15977
15978         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
15979         field (valnum) the first in the struct.  Replace bools with
15980         unit bit fields.
15981
15982 2008-01-10  Richard Guenther  <rguenther@suse.de>
15983
15984         PR tree-optimization/34651
15985         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
15986         types and ordering for masking and converting.
15987
15988 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
15989
15990         PR tree-optimization/34017
15991         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
15992         also for PHI_NODE expressions.
15993
15994 2008-01-09  Jan Hubicka  <jh@suse.cz>
15995
15996         PR tree-optimization/34708
15997         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
15998         based on number of case labels.
15999         (init_inline_once): Remove switch_cost.
16000         * tree-inline.h (eni_weights_d): Remove switch_cost.
16001
16002 2008-01-09  Richard Guenther  <rguenther@suse.de>
16003         Andrew Pinski  <andrew_pinski@playstation.sony.com>
16004
16005         PR middle-end/30132
16006         * gimplify.c (gimplify_cond_expr): Do not create an addressable
16007         temporary if an rvalue is ok or an lvalue is not required.
16008
16009 2008-01-09  Richard Guenther  <rguenther@suse.de>
16010
16011         PR middle-end/34458
16012         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
16013         adjust return type.
16014
16015 2008-01-09  Richard Guenther  <rguenther@suse.de>
16016
16017         PR middle-end/34679
16018         * tree.c (host_integerp): Check for sizetype only if the
16019         type is an integer type.
16020
16021 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
16022
16023         PR debug/26364
16024         * opts.c (decode_options): Disable inlining of functions called
16025         once if not in unit-at-a-time mode.
16026
16027 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
16028
16029         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
16030
16031 2008-01-08  Richard Guenther  <rguenther@suse.de>
16032
16033         PR middle-end/31863
16034         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
16035         out early if the result will be unused.
16036
16037 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
16038
16039         PR target/34709
16040         Revert:
16041
16042         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
16043         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
16044         for TARGET_RECIP.       
16045         
16046 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
16047         
16048         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
16049         for vectorization tuned.
16050         
16051 2008-01-08  Richard Guenther  <rguenther@suse.de>
16052
16053         PR tree-optimization/34683
16054         * tree-ssa-operands.c (operand_build_cmp): Export.
16055         * tree-ssa-operands.h (operand_build_cmp): Declare.
16056         * tree-vn.c (vuses_compare): Remove.
16057         (sort_vuses): Use operand_build_cmp.
16058         (sort_vuses_heap): Likewise.
16059         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
16060         to re-use old VEC if available.  Do not sort already sorted VUSEs.
16061         (vdefs_to_vec): Do not sort already sorted VDEFs.
16062
16063 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
16064
16065         PR middle-end/34694
16066         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
16067
16068 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
16069
16070         PR target/34702
16071         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
16072         limitations of reciprocal sequences on x86 targets.
16073
16074 2008-01-08  Richard Guenther  <rguenther@suse.de>
16075
16076         PR tree-optimization/34683
16077         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
16078
16079 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
16080
16081         PR target/34622
16082         * config/darwin.c (darwin_mergeable_string_section): Don't use
16083         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
16084
16085 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
16086
16087         PR target/34682
16088         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
16089         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
16090         predicates of op0 and op1 to register_operand.
16091         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
16092         expander using X87MODEF mode iterator.  Change predicates of
16093         op0 and op1 to register_operand.
16094         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
16095         corresponding patterns and macroize using MODEF macro.  Change
16096         predicates of op0 and op1 to register_operand and remove
16097         "m" constraint. Disparage "r" alternative with "!".
16098         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
16099         macroize using X87MODEF macro.  Change predicates of op0 and op1
16100         to register_operand and remove "m" constraint.  Disparage "r"
16101         alternative with "!".
16102         (absneg splitter with memory operands): Remove.
16103         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
16104         patterns and macroize using X87MODEF mode iterator.
16105         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
16106         Change predicate of op1 to register_operand.
16107         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
16108         for memory operands.
16109
16110 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
16111
16112         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
16113
16114 2008-01-07  Richard Guenther  <rguenther@suse.de>
16115
16116         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
16117         fields.
16118
16119 2008-01-07  Richard Guenther  <rguenther@suse.de>
16120
16121         PR tree-optimization/34683
16122         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
16123         VOPs of the needed size to save memory.  Use VEC_quick_push
16124         to save compile-time.
16125         (vdefs_to_vec): Likewise.
16126
16127 2008-01-07  Sa Liu  <saliu@de.ibm.com>
16128
16129         * config/spu/spu.md (divdf3): Genetate inline code for double
16130         division.  The implementation doesn't handle INF or NAN, therefore it
16131         only applies when -ffinite-math-only is given.
16132
16133 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
16134
16135         PR libstdc++/34680
16136         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
16137         * doc/cpp.texi ([Common Predefined Macros]): Document.
16138
16139 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
16140
16141         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
16142         order to use commutative addition instead of subtraction.
16143
16144 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16145             Mircea Namolaru  <namolaru@il.ibm.com>
16146             Vladimir Yanovsky  <yanov@il.ibm.com>
16147             Revital Eres  <eres@il.ibm.com>
16148
16149         PR tree-optimization/34263
16150         * tree-outof-ssa.c (process_single_block_loop_latch,
16151         contains_tree_r): New functions.
16152         (analyze_edges_for_bb): Call process_single_block_loop_latch
16153         function to empty single-basic-block latch block if possible.
16154
16155 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
16156
16157         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
16158         for TARGET_RECIP.
16159         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
16160
16161 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
16162
16163         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
16164
16165 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
16166
16167         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
16168
16169 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
16170
16171         PR tree-optimization/34618
16172         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
16173         flag from T.
16174
16175 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
16176
16177         PR target/34673
16178         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
16179         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
16180         Update copyright year.
16181
16182         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
16183         Update copyright year.
16184         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
16185         using NR fixup.
16186
16187 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
16188
16189         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
16190         edge does not point to current bb before changing need_assert.
16191
16192 2008-01-04  Richard Guenther  <rguenther@suse.de>
16193
16194         PR middle-end/34029
16195         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
16196         for verifying purposes if they are is_gimple_min_invariant.
16197
16198 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
16199
16200         PR tree-optimization/34448
16201         PR tree-optimization/34465
16202         * gimplify.c (gimplify_init_constructor): Add new parameter
16203         notify_temp_creation.  Use it.
16204         (gimplify_modify_expr_rhs): Take volatiles into account when
16205         optimizing constructors.
16206         Do not optimize constructors if gimplify_init_constructor will dump to
16207         memory.
16208         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
16209         * gcc.c-torture/compile/pr34448.c: New.
16210
16211 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
16212
16213         PR gcov-profile/34609
16214         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
16215         return_slot if result is TREE_ADDRESSABLE.
16216
16217 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
16218
16219         * config/mips/mips.md (sqrt_condition): Tweak comment.
16220         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
16221
16222 2008-01-03  Tom Tromey  <tromey@redhat.com>
16223
16224         PR c/34457
16225         * c-common.c (c_type_hash): Handle VLAs.
16226
16227 2008-01-03  Jan Hubicka  <jh@suse.cz>
16228
16229         PR tree-optimization/31081
16230         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
16231         0 when inlining and not inlining to first basic block.
16232         (remap_decl): When var is initialized to 0, don't set default_def.
16233         (expand_call_inline): Set entry_bb.
16234         * tree-inline.h (copy_body_data): Add entry_bb.
16235
16236 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
16237
16238         PR c++/34619
16239         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
16240         before returning.
16241
16242         PR tree-optimization/29484
16243         * tree-inline.c (inline_forbidden_p_2): New function.
16244         (inline_forbidden_p): Disallow inlining if some static var
16245         has an address of a local LABEL_DECL in its initializer.
16246         * doc/extend.texi (Labels as Values): Document &&foo behaviour
16247         vs. inlining.
16248
16249 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
16250
16251         PR tree-optimization/34635
16252         * tree-data-ref.c (add_other_self_distances): Make sure that the
16253         evolution step is constant.
16254
16255 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
16256
16257         PR middle-end/34608
16258         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
16259
16260 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
16261
16262         * tree-sra.c (scalarize_init): Insert the generate_element_init
16263         statements after the generate_element_zero statements.
16264
16265 2008-01-02  Richard Guenther  <rguenther@suse.de>
16266
16267         PR middle-end/34093
16268         PR middle-end/31976
16269         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
16270         for very large number of operands instead of ICEing.
16271
16272 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
16273
16274         PR target/34013
16275         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
16276         while stack probing.
16277
16278 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
16279
16280         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
16281         in C++0x mode.
16282
16283 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
16284
16285         PR libmudflap/26442
16286         * tree-mudflap.c (mx_register_decls): Guard warning by
16287         !DECL_ARTIFICIAL check.
16288
16289 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
16290
16291         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
16292         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
16293         sse5_perm<mode>): Fix constraints.