OSDN Git Service

2008-07-23 Chris Fairles <chris.fairles@gmail.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-07-23  Martin Jambor  <mjambor@suse.cz>
2
3         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
4         rather than for DECL_SAVED_TREE.
5         * ipa-prop.c: Include diagnostic.h.
6         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
7         thoroughly.
8         (ipa_detect_param_modifications): Function rewritten from scratch.
9         (ipa_compute_jump_functions): Changed accesses to modification flags.
10         (ipa_free_node_params_substructures): Update flags destruction.
11         (ipa_node_duplication_hook): Update flags duplication.
12         (ipa_print_all_params_modified): Updated flag access.
13         * ipa-prop.h (struct ipa_param_flags): New structure.
14         (struct ipa_node_params): New field modification_analysis_done,
15         modified_flags changed into param_flags.
16         (ipa_is_ith_param_modified): Changed to use new flags.
17         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
18
19         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
20         ipa-cp.c and split into two functions.
21         (ipa_print_node_jump_functions): New function.
22         (compute_scalar_jump_functions): New function.
23         (type_like_member_ptr_p): New function.
24         (compute_pass_through_member_ptrs): New function.
25         (fill_member_ptr_cst_jump_function): New function.
26         (determine_cst_member_ptr): New function.
27         (compute_cst_member_ptr_arguments): New function.
28         (ipa_compute_jump_functions): Complete rewrite.
29         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
30         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
31         (struct ipa_member_ptr_cst): New structure.
32         (union jump_func_value): New field member_cst.
33         * ipa-cp.c (ipcp_lat_is_insertable): New function.
34         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
35         jump function types.
36         (ipcp_print_all_lattices): Slight fprintf rearrangement.
37         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
38         instead of ipcp_print_all_jump_functions.
39         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
40         only for replacable scalars.
41
42         * doc/invoke.texi (Optimize options): Add description of
43         -findirect-inlining.
44         * common.opt (flag_indirect_inlining): New flag.
45         * opts.c (decode_options): Set flag_indirect_inlining when 
46         optimize >= 3.
47
48         * ipa-inline.c: Include ipa-prop.h.
49         (inline_indirect_intraprocedural_analysis): New function.
50         (inline_generate_summary): Allocate parameter and argument info
51         structures, call inline_indirect_intraprocedural_analysis on each
52         node when doing indirect inlining and deallocate indirect inlining 
53         data structures in the end.
54         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
55         (free_all_ipa_structures_after_iinln): New function.
56         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be 
57         done.
58         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
59
60         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
61         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
62         of computing the frequency separately.
63         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
64         of computing the frequency separately.
65         * ipa-cp.c (ipcp_print_all_structures): Replace a call to 
66         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
67         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
68         (ipa_get_stmt_member_ptr_load_param): New function.
69         (ipa_is_ssa_with_stmt_def): New function.
70         (ipa_note_param_call): New function.
71         (ipa_analyze_call_uses): New function.
72         (ipa_analyze_stmt_uses): New function.
73         (ipa_analyze_params_uses): New function.
74         (ipa_free_node_params_substructures): Also free the param_calls linked
75         list.
76         (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
77         (ipa_print_node_param_flags): New function.
78         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
79         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
80         * ipa-prop.h (struct ipa_param_flags): New field called.
81         (struct ipa_param_call_note): New structure.
82         (struct ipa_node_params): New fields param_calls and
83         uses_analysis_done.
84         (ipa_is_ith_param_called): New function.
85         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
86         ipa_analyze_params_uses and dump parameter flags.
87
88         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
89         ipa_propagate_indirect_call_infos if performing indirect inlining,
90         pass a new parameter new_edges to it.
91         (add_new_edges_to_heap): New fucntion.
92         (cgraph_decide_inlining_of_small_functions): New vector
93         new_indirect_edges for newly found indirect edges , call
94         ipa_propagate_indirect_call_infos after inlining.
95         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
96         inlining if performing indirect inlining.  Call
97         free_all_ipa_structures_after_iinln when doing so too.
98         (inline_generate_summary): Do not call
99         free_all_ipa_structures_after_iinln here.
100         * ipa-prop.c (update_jump_functions_after_inlining): New function.
101         (print_edge_addition_message): New function.
102         (update_call_notes_after_inlining): New function.
103         (propagate_info_to_inlined_callees): New function.
104         (ipa_propagate_indirect_call_infos): New function.
105         * ipa-prop.h: Include cgraph.h
106         (struct ipa_param_call_note): Fields reordered, new field processed.
107         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
108         flag indirect_call.
109         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
110         rediscovered call statements.
111         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
112         (dump_cgraph_node): Dump also the indirect_call flag.
113         (cgraph_clone_edge): Copy also the indirect_call flag.
114         * tree-inline.c (copy_bb): Do not check for fndecls from call
115         expressions, check for edge availability when moving clones.
116         (get_indirect_callee_fndecl): New function.
117         (expand_call_inline): If callee declaration is not apprent from
118         the statement, try calling get_indirect_callee_fndecl.  Do not
119         issue warnings or call sorry when not inlinings an indirect edge.
120         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
121
122         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
123         bit more frandly to matching.
124         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
125         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
126         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
127         
128 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
129
130         PR 36907
131         * opth-gen.awk: Suppress function specific features when building
132         target libraries.
133         * optc-gen.awk: Ditto.
134
135 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
136
137         PR 35058
138         * diagnostic.c (pedwarn): Add opt parameter.
139         (pedwarn0): New.
140         * c-tree.h (pedwarn_init): Add opt parameter.
141         (pedwarn_c90): Likewise.
142         (pedwarn_c99): Likewise.
143         * c-errors.c (pedwarn_c99): Likewise.
144         (pedwarn_c90): Likewise.
145         * toplev.h (pedwarn): Update declaration.
146         (pedwarn0): Declare.
147         * c-lex.c: All calls to pedwarn changed.
148         * builtins.c: All calls to pedwarn changed.
149         * toplev.c: All calls to pedwarn changed.
150         * c-decl.c: All calls to pedwarn changed.
151         * c-typeck.c: All calls to pedwarn changed.
152         * c-common.c: All calls to pedwarn changed.
153         * c-parser.c: All calls to pedwarn changed.
154         
155 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
156             Karthik Kumar  <karthikkumar@gmail.com>
157
158         * attribs.c (file scope): Include c-common.h.
159         (decl_attributes): Add support for #pragma GCC optimize and
160         #pragma GCC option.
161
162         * targhooks.c (default_can_inline_p): New function that is the
163         default for the TARGET_CAN_INLINE_P target hook.
164
165         * targhooks.h (default_can_inline_p): Add declaration.
166
167         * tree.c (cl_optimization_node): New static tree for building
168         OPTIMIZATION_NODE tree.
169         (cl_target_option_node): New static tree for building
170         TARGET_OPTION_NODE tree.
171         (cl_option_hash_table): New hash table for hashing
172         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
173         (cl_option_hash_hash): New function to provide the hash value for
174         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
175         (cl_option_hash_eq): New function to provide an equality test for
176         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
177         (tree_code_size): Add support for OPTIMIZATION_NODE and
178         TARGET_OPTION_NODE trees.
179         (tree_code_structure): Add support for OPTIMIZATION_NODE and
180         TARGET_OPTION_NODE trees.
181         (build_optimization_node): Build a tree that has all of the
182         current optimization options.
183         (build_target_option_node): Build a tree that has the target
184         options that might be changed on a per function basis.
185
186         * tree.h (file scope): Include options.h.
187         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
188         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
189         (TREE_OPTIMIZATION): Ditto.
190         (TREE_TARGET_SPECIFIC): Ditto.
191         (struct tree_function_decl): Add fields for remembering the
192         current optimization options and target specific options.
193         (struct tree_optimization_option): New tree variant that remembers
194         the optimization options.
195         (struct tree_target_option): New tree variant that remembers the
196         target specific flags that might change for compiling a particular
197         function.
198         (union tree_node): Include tree_optimization_option and
199         tree_target_option fields.
200         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
201         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
202         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
203         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
204         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
205         optimization and target options.
206         (optimization_default_node): New macro to refer to global_trees
207         field.
208         (optimization_current_node): Ditto.
209         (optimization_cold_node): Ditto.
210         (optimization_hot_node): Ditto.
211         (target_option_default_node): Ditto.
212         (target_option_current_node): Ditto.
213         (current_option_pragma): Ditto.
214         (current_optimize_pragma): Ditto.
215
216         * target.h (struct gcc_target): Add valid_option_attribute_p,
217         target_option_save, target_option_restore, target_option_print,
218         target_option_pragma_parse, and can_inline_p hooks.
219
220         * toplev.h (parse_optimize_options): Add declaration.
221         (fast_math_flags_struct_set_p): Ditto.
222
223         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
224         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
225         optimize is used.
226
227         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
228         tree_can_inline_p hook to see if one function can inline another.
229         (cgraph_decide_inlining): Ditto.
230         (cgraph_decide_inlining_incrementally): Ditto.
231
232         * opts.c (decode_options): Add support for running multiple times
233         to allow functions with different target or optimization options
234         than was specified on the command line.
235         (fast_math_flags_struct_set_p): New function that is similar to
236         fast_math_flags_set_p, except it uses the values in the
237         cl_optimization structure instead of global variables.
238
239         * optc-gen.awk: Add support for TargetSave to allow a back end to
240         declare new fields that need to be saved when using function
241         specific options.  Include flags.h and target.h in the options.c
242         source.  Add support for Save to indicate which options can be set
243         for individual functions.  Generate cl_optimize_save,
244         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
245         cl_target_option_restore, cl_target_option_print functions to
246         allow functions to use different optimization or target options.
247
248         * opt-functions.awk (var_type_struct): Return the type used for
249         storing the field in a structure.
250
251         * opth-gen.awk: Add support for TargetSave to allow a back end to
252         declare new fields that need to be saved when using function
253         specific options.  Add support for Save to indicate which options
254         can be set for individual functions.  Only generate one extern for
255         Mask fields.  Generate cl_optimization and cl_target_option
256         structures to remember optimization and target options.
257
258         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
259         collecting new tree nodes.
260         (TS_TARGET_OPTION): Ditto.
261
262         * c-decl.c (merge_decls): Merge function specific target and
263         optimization options.
264
265         * function.c (invoke_set_current_function_hook): If the function
266         uses different optimization options, change the global variables
267         to reflect this.
268
269         * coretypes.h (struct cl_optimization): Add forward reference.
270         (struct cl_target_option): Ditto.
271
272         * c-pragma.c (option_stack): New static vector to remember the
273         current #pragma GCC option stack.
274         (handle_pragma_option): New function to support #pragma GCC option
275         to change target options.
276         (optimize_stack): New static vector to remember the current
277         #pragma GCC optimize stack.
278         (handle_pragma_optimize): New function to support #pragma GCC
279         optimize to change optimization options.
280         (init_pragma): Add support for #pragma GCC optimize and #pragma
281         GCC option.
282
283         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
284         optimization options.
285         (TARGET_OPTION_NODE): New tree code for remembering certain target
286         options.
287
288         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
289         TARGET_OPTION_NODE trees.
290
291         * common.opt (-O): Add Optimization flag.
292         (-Os): Ditto.
293         (-fmath-errno): Ditto.
294         (-falign-functions): Add UInteger flag to make sure flag gets full
295         int in cl_optimization structure.
296         (-falign-jumps): Ditto.
297         (-falign-labels): Ditto.
298         (-falign-loops): Ditto.
299         (-fsched-stalled-insns): Ditto.
300         (-fsched-stalled-insns-dep): Ditto.
301
302         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
303         definition.
304         (TARGET_OPTION_SAVE): Ditto.
305         (TARGET_OPTION_RESTORE): Ditto.
306         (TARGET_OPTION_PRINT): Ditto.
307         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
308         (TARGET_CAN_INLINE_P): Ditto.
309         (TARGET_INITIALIZER): Add new hooks.
310
311         * tree-inline.c (tree_can_inline_p): New function to determine
312         whether one function can inline another.  Check if the functions
313         use compatible optimization options, and also call the backend
314         can_inline_p hook.
315
316         * tree-inline.h (tree_can_inline_p): Add declaration.
317
318         * c-common.c (c_common_attribute): Add support for option and
319         optimize attributes.
320         (handle_option_attribute): Add support for the option attribute to
321         allow the user to specify different target options for compiling a
322         specific function.
323         (handle_optimize_attribute): Add support for the optimize
324         attribute to allow the user to specify different optimization
325         options for compiling a specific function.
326         (handle_hot_attribute): Turn on -O3 optimization for this one
327         function if it isn't the default optimization level.
328         (handle_cold_attribute): Turn on -Os optimization for this one
329         function if it insn't the default optimization.
330         (const_char_p): New const char * typedef.
331         (optimize_args): New static vector to remember the optimization
332         arguments.
333         (parse_optimize_options): New function to set up the optimization
334         arguments from either the optimize attribute or #pragma GCC
335         optimize.
336
337         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
338         (builtin_define_std): Ditto.
339
340         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
341         Add t-i386 Makefile fragment to add i386-c.o and i386.o
342         dependencies.
343         (x86_64-*-*): Ditto.
344
345         * Makefile.in (TREE_H): Add options.h.
346         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
347
348         * doc/extend.texi (option attribute): Document new attribute.
349         (optimize attribute): Ditto.
350         (hot attribute): Document hot attribute sets -O3.
351         (cold attribute): Document cold attribute sets -Os.
352         (#pragma GCC option): Document new pragma.
353         (#pragma GCC optimize): Ditto.
354
355         * doc/options.texi (TargetSave): Document TargetSave syntax.
356         (UInteger): Document UInteger must be used for certain flags.
357         (Save): Document Save option to create target specific options
358         that can be saved/restored on a function specific context.
359
360         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new
361         macro.
362         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
363
364         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new
365         hook.
366         (TARGET_OPTION_SAVE): Ditto.
367         (TARGET_OPTION_RESTORE): Ditto.
368         (TARGET_OPTION_PRINT): Ditto.
369         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
370         (TARGET_CAN_INLINE_P): Ditto.
371
372         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
373         -mfpmath=sse,387.
374         (-mfpmath=both): Ditto.
375
376 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
377             Karthik Kumar  <karthikkumar@gmail.com>
378
379         * config/i386/i386.h (TARGET_ABM): Move switch into
380         ix86_isa_flags.
381         (TARGET_POPCNT): Ditto.
382         (TARGET_SAHF): Ditto.
383         (TARGET_AES): Ditto.
384         (TARGET_PCLMUL): Ditto.
385         (TARGET_CMPXCHG16B): Ditto.
386         (TARGET_RECIP): Move switch into target_flags.
387         (TARGET_FUSED_MADD): Ditto.
388         (ix86_arch_features): Make an unsigned char type.
389         (ix86_tune_features): Ditto.
390         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
391         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
392         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
393
394         * config/i386/i386.opt (arch): New TargetSave field to define
395         fields that need to be saved for function specific option
396         support.
397         (tune): Ditto.
398         (fpmath): Ditto.
399         (branch_cost): Ditto.
400         (ix86_isa_flags_explicit): Ditto.
401         (tune_defaulted): Ditto.
402         (arch_specified): Ditto.
403         (-m128-long-double): Add Save flag to save option for target
404         specific option support.
405         (-m80387): Ditto.
406         (-maccumulate-outgoing-args): Ditto.
407         (-malign-double): Ditto.
408         (-malign-stringops): Ditto.
409         (-mfancy-math-387): Ditto.
410         (-mhard-float): Ditto.
411         (-mieee-fp): Ditto.
412         (-minline-all-stringops): Ditto.
413         (-minline-stringops-dynamically): Ditto.
414         (-mms-bitfields): Ditto.
415         (-mno-align-stringops): Ditto.
416         (-mno-fancy-math-387): Ditto.
417         (-mno-push-args): Ditto.
418         (-mno-red-zone): Ditto.
419         (-mpush-args): Ditto.
420         (-mred-zone): Ditto.
421         (-mrtd): Ditto.
422         (-msseregparm): Ditto.
423         (-mstack-arg-probe): Ditto.
424         (-m32): Ditto.
425         (-m64): Ditto.
426         (-mmmx): Ditto.
427         (-m3dnow): Ditto.
428         (-m3dnowa): Ditto.
429         (-msse): Ditto.
430         (-msse2): Ditto.
431         (-msse3): Ditto.
432         (-msse4.1): Ditto.
433         (-msse4.2): Ditto.
434         (-msse4): Ditto.
435         (-mno-sse4): Ditto.
436         (-msse4a): Ditto.
437         (-msse5): Ditto.
438         (-mrecip): Move flag into target_flags.
439         (-mcld): Ditto.
440         (-mno-fused-madd): Ditto.
441         (-mfused-madd): Ditto.
442         (-mabm): Move flag into ix86_isa_flags.
443         (-mcx16): Ditto.
444         (-mpopcnt): Ditto.
445         (-msahf): Ditto.
446         (-maes): Ditto.
447         (-mpclmul): Ditto.
448
449         * config/i386/i386-c.c: New file for #pragma support.
450         (ix86_target_macros_internal): New function to #define or #undef
451         target macros based when the user uses the #pragma GCC option to
452         change target options.
453         (ix86_pragma_option_parse): New function to add #pragma GCC option
454         support.
455         (ix86_target_macros): Move defining the target macros here from
456         TARGET_CPU_CPP_BUILTINS in i386.h.
457         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
458         defined, initialize any subtarget #pragmas.
459
460         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
461         REGISTER_TARGET_PRAGMAS.
462
463         * config/i386/t-i386: New file for x86 dependencies.
464         (i386.o): Make dependencies mirror the include files used.
465         (i386-c.o): New file, add dependencies.
466
467         * config/i386/i386-protos.h (override_options): Add bool
468         argument.
469         (ix86_valid_option_attribute_tree): Add declaration.
470         (ix86_target_macros): Ditto.
471         (ix86_register_macros): Ditto.
472
473         * config/i386/i386.c (ix86_tune_features): Move initialization of
474         the target masks to initial_ix86_tune_features to allow functions
475         to have different target options.  Make type unsigned char,
476         instead of unsigned int.
477         (initial_ix86_tune_features): New static vector to hold processor
478         masks for the tune variables.
479         (ix86_arch_features): Move initialization of the target masks to
480         initial_ix86_arch_features to allow functions to have different
481         target options.  Make type unsigned char, instead of unsigned
482         int.
483         (initial_ix86_arch_features): New static vector to hold processor
484         masks for the arch variables.
485         (enum ix86_function_specific_strings): New enum to describe the
486         string options used for attribute((option(...))).
487         (ix86_target_string): New function to return a string that
488         describes the target options.
489         (ix86_debug_options): New function to print the current options in
490         the debugger.
491         (ix86_function_specific_save): New function hook to save the
492         function specific global variables in the cl_target_option
493         structure.
494         (ix86_function_specific_restore): New function hook to restore the
495         function specific variables from the cl_target_option structure to
496         the global variables.
497         (ix86_function_specific_print): New function hook to print the
498         target specific options in the cl_target_option structure.
499         (ix86_valid_option_attribute_p): New function hook to validate
500         attribute((option(...))) arguments.
501         (ix86_valid_option_attribute_tree): New function that is common
502         code between attribute((option(...))) and #pragma GCC option
503         support that parses the options and returns a tree holding the
504         options.
505         (ix86_valid_option_attribute_inner_p): New helper function for
506         ix86_valid_option_attribute_tree.
507         (ix86_can_inline_p): New function hook to decide if one function
508         can inline another on a target specific basis.
509         (ix86_set_current_function); New function hook to switch target
510         options if the user used attribute((option(...))) or #pragma GCC
511         option.
512         (ix86_tune_defaulted): Move to static file scope from
513         override_options.
514         (ix86_arch_specified): Ditto.
515         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
516         ix86_isa_flags.
517         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
518         (OPTION_MASK_ISA_ABM_SET): Ditto.
519         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
520         (OPTION_MASK_ISA_CX16_SET): Ditto.
521         (OPTION_MASK_ISA_SAHF_SET): Ditto.
522         (OPTION_MASK_ISA_AES_UNSET): Ditto.
523         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
524         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
525         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
526         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
527         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
528         (struct ptt): Move to static file scope from override_options.
529         (processor_target_table): Ditto.
530         (cpu_names): Ditto.
531         (ix86_handle_option): Add support for options that are now isa
532         options.
533         (override_options): Add support for declaring functions that
534         support different target options than were specified on the
535         command line.  Move struct ptt, processor_target_table, cpu_names,
536         ix86_tune_defaulted, ix86_arch_specified to static file scope.
537         Add bool argument.  Fix up error messages so the appropriate error
538         is given for either command line or attribute.
539         (ix86_previous_fndecl): New static to remember previous function
540         declaration to see if we need to change target options.
541         (ix86_builtins_isa): New array to record the ISA of each builtin
542         function.
543         (def_builtin): Always create the builtin function, even if the
544         current ISA doesn't support it.
545         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
546         tests for those builtins.
547         (ix86_init_builtins): Remove TARGET_MMX test for calling
548         ix86_init_mmx_sse_builtins.
549         (ix86_expand_builtin): If the current ISA doesn't support a given
550         builtin, signal an error.
551         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
552         (TARGET_SET_CURRENT_FUNCTION): Ditto.
553         (TARGET_OPTION_SAVE): Ditto.
554         (TARGET_OPTION_RESTORE): Ditto.
555         (TARGET_OPTION_PRINT): Ditto.
556         (TARGET_CAN_INLINE_P): Ditto.
557
558 2008-07-22  Rafael Avila de Espindola  <espindola@google.com>
559
560        * c-typeck.c (build_external_ref): Don't call assemble_external.
561        * final.c (output_operand): Call assemble_external.
562
563 2008-07-21  DJ Delorie  <dj@redhat.com>
564
565         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
566         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
567
568 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
569
570         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
571         original insn and splitter contents into ...
572         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
573         flag_unsafe_math_optimizations.  Add dummy scratch register.
574         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
575         !flag_unsafe_math_optimizations.  Returns number with next
576         highest magnitude if this is still less or equal to the true
577         quotient in magnitude.
578
579 2008-07-21  Rafael Avila de Espindola  <espindola@google.com>
580
581         * Makefile.in: Replace toplev.h with TOPLEV_H.
582         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
583         * c-lex.c (fe_file_change): Don't set in_system_header.
584         * c-parser.c (c_token): Remove in_system_header.
585         (c_lex_one_token): Don't set in_system_header.
586         (c_parser_set_source_position_from_token): Don't set in_system_header.
587         * diagnostic.c (diagnostic_report_diagnostic): Use location from
588         diagnostic_info.
589         (warning_at): New.
590         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
591         * flags.h (in_system_header): Remove.
592         * function.c (saved_in_system_header): Remove.
593         (push_cfun): Don't set in_system_header.
594         (pop_cfun): Don't set in_system_header.
595         (push_struct_function): Don't set in_system_header.
596         * input.h (expanded_location): Add sysp.
597         (in_system_header_at): New.
598         (in_system_header): New.
599         * toplev.c (in_system_header): Remove.
600         * toplev.h: Include input.h
601         (warning_at): New.
602         * tree-cfg.c (execute_warn_function_return): Call warning_at.
603         * tree-ssa.c (warn_uninit): Call warning_at.
604         (warn_uninitialized_var): Update calls to warn_uninit.
605         (warn_uninitialized_phi): Update calls to warn_uninit.
606         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
607         (expand_location): Initialize xloc.sysp.
608         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
609         (tree_decl_with_vis): Remove in_system_header_flag.
610
611 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
612
613         PR target/36822
614         * recog.c (asm_operand_ok): Change the order of the extra
615         memory constraint checks.
616
617 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
618
619         PR tree-opt/36879
620         * tree-switch-conversion.c (build_one_array): Call
621         varpool_mark_needed_node and varpool_finalize_decl 
622         instead of assemble_variable.
623
624 2008-07-19  Jan Hubicka  <jh@suse.cz>
625
626         * cgraph.c (cgraph_add_new_function): Do early local passes.
627         * tree-nrv.c (gate_pass_return_slot): New gate.
628         (pass_nrv): Add the gate.
629         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
630         functions.
631         (coalesce_ssa_name): Coalesce SSA names.
632         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
633         not optimizing so unused user vars remains visible.
634         * common.opt (flag_tree_ter): Always enable by default.
635         * tree-ssa-ter.c: Include flags.h
636         (is_replaceable_p): Check that locations match; when aliasing is missing
637         be conservative about loads.
638         * tree-optimize.c (gate_init_datastructures): Remove.
639         (pass_init_datastructures): New.
640         * passes.c: Reorder passes so we always go into SSA.
641
642 2008-07-19  Jan Hubicka  <jh@suse.cz>
643
644         * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
645         * doc/invoke.texi (--combine): Likewise.
646         (-finline-functions-called-once): Update levels when enabled.
647         (-funit-at-a-time): Document new behaviour.
648         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
649         -fno-section-anchors when disabled explicitly.
650         (inline params): They are not ignored now.
651         (precompiled headers): Remove unit-at-a-time as being incompatible.
652         * opts.c (decode_options): Handle unit-at-a-time as alias;
653         imply -fno-section-anchors when toplevel reorder is disabled
654         explicitly.
655         * common.opt (ftoplevel-reorder): Set default value to 2.
656         (funit-at-a-time): Set default value to 1.
657         * config/rs6000/rs6000.c (optimization_options): Set section anchors
658         to 2.
659
660 2008-07-19  Jan Hubicka  <jh@suse.cz>
661
662         * builtins.c (expand_builtin_int_roundingfn,
663         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
664         it is not useful.
665
666 2008-07-19  Richard Guenther  <rguenther@suse.de>
667
668         PR bootstrap/36864
669         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
670         * tree-ssa-sccvn.c (get_constant_value_id): New function.
671         * tree-ssa-pre.c (get_expr_value_id): For newly created
672         constant value-ids make sure to add the expression to its
673         expression-set.
674
675 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
676
677         PR middle-end/36877
678         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
679         return value of the builtin is ignored.
680
681 2008-07-19  Olivier Hainque  <hainque@adacore.com>
682
683         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
684         bits, a C conformant malloc implementation has to provide.
685         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
686
687 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
688
689         PR target/36780
690         PR target/36827
691         * reload.c (find_reloads_subreg_address): Only reload address if
692         reloaded == 0, not for reloaded != 1.
693
694         Revert:
695         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
696         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
697         (m32c_legitimate_address_p): Handle "++rii" addresses created by
698         m32c_legitimize_reload_address.
699
700         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
701         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
702         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
703
704 2008-07-19  Olivier Hainque  <hainque@adacore.com>
705
706         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
707         argument, saying whether nested array are to be collapsed
708         into a single array type DIE with multiple subscripts.
709         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
710         issues, centralize the nested array types collapsing control and
711         disable the transformation for Ada.
712         
713 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
714
715         PR target/36786
716         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
717         x86_64_shift_adj.
718         (x86_64_shift_adj_2): New expander.
719         (x86_64_shift_adj_3): Ditto.
720         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
721         to split TImode operands.
722         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
723         (ix86_split_lshr): Ditto.
724
725 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
726
727         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
728         and __CHAR32_TYPE__.
729         * c-typeck.c (digest_init): Support char16_t and char32_t.
730         (set_nonincremental_init_from_string): Idem.
731
732 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
733
734         PR middle-end/36859
735         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
736         PREFERRED_STACK_BOUNDARY.
737         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
738
739 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
740
741         PR middle-end/36858
742         * function.c (locate_and_pad_parm): Cap boundary earlier.
743
744 2008-07-17  Julian Brown  <julian@codesourcery.com>
745
746         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
747         no-op for targets which don't use DLLs.
748
749 2008-07-17  Martin Jambor  <mjambor@suse.cz>
750
751         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
752         that nodes are relevant by examining the node->analyzed flag.
753         (ipcp_init_stage): Check which nodes are relevant, assert that the
754         relevant ones are also required.
755         (ipcp_propagate_stage): Check on the side arrays are properly
756         allocated.
757         (ipcp_print_all_jump_functions): Make sure not to touch any node
758         that is not analyzed or an edge that does not have a corresponding
759         entry in the on-the-side vectors.
760         (ipcp_function_scale_print): Likewise.
761         (ipcp_update_callgraph): Check that the node is relevant.
762         (ipcp_insert_stage): Check that the node is relevant.  Check there is
763         an info for every node and edge.
764         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
765         (ipa_print_all_tree_maps): Likewise and a new variable info.
766         (ipa_print_all_params_modified): Likewise.
767         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
768
769 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
770
771         PR target/25343
772         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
773
774 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
775
776         PR rtl-optimization/36753
777         * fwprop.c (use_killed_between): Don't shortcut
778         single-definition global registers.
779
780 2008-07-16  Jan Hubicka  <jh@suse.cz>
781
782         * cgraph.h (varpool_empty_needed_queue): Declare.
783         * cgraphunit.c (output_in_order): Mark all variables as needed;
784         empty the queue.
785         * varpool.c (varpool_assemble_node): Update debug queue.
786         (varpool_assemble_pending_decls): Don't do it here.
787         (varpool_empty_needed_queue):  New function.
788
789 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
790
791         * recog.c (peephole2_optimize): Fix formatting.
792
793 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
794
795         * c-pch.c (get_ident): Avoid C++ keywords.
796         * combine-stack-adj.c (single_set_for_csa): Likewise.
797         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
798         output_asm_insn): Likewise.
799         * reload.c (push_secondary_reload, find_reusable_reload,
800         push_reload, combine_reloads, find_reloads,
801         debug_reload_to_stream): Likewise.
802         * reload.h (struct reload): Likewise.
803         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
804         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
805         emit_output_reload_insns): Likewise.
806         * targhooks.c (default_secondary_reload): Likewise.
807         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
808
809 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
810
811         * recog.c (validate_change_1, validate_change,
812         validate_unshare_change, validate_replace_rtx_1, struct
813         funny_match, constrain_operands, peephole2_optimize): Avoid C++
814         keywords.
815         * reload.c (push_secondary_reload, secondary_reload_class,
816         scratch_reload_class, find_valid_class, find_reusable_reload,
817         push_reload, find_dummy_reload, find_reloads_address_1,
818         find_reloads_address_part, find_equiv_reg): Likewise.
819         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
820         choose_reload_regs): Likewise.
821         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
822         Likewise.
823         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
824         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
825         * sched-rgn.c (concat_INSN_LIST): Likewise.
826         * stor-layout.c (mode_for_size, mode_for_size_tree,
827         smallest_mode_for_size): Likewise.
828
829 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
830
831         * cfg.c (dump_reg_info): Avoid C++ keywords.
832         * dwarf2asm.c (dw2_force_const_mem,
833         dw2_asm_output_encoded_addr_rtx): Likewise.
834         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
835         * expmed.c (expand_shift): Likewise.
836         * global.c (find_reg): Likewise.
837         * graph.c (draw_edge): Likewise.
838         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
839         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
840         widen_clz, widen_bswap, expand_parity, expand_unop,
841         emit_cmp_and_jump_insn_1): Likewise.
842         * postreload.c (reload_cse_simplify_operands): Likewise.
843         * ra.h (add_neighbor): Likewise.
844         * reg-stack.c (remove_regno_note, change_stack): Likewise.
845         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
846         record_reg_classes, copy_cost, record_address_regs,
847         invalid_mode_change_p): Likewise.
848         * regrename.c (regrename_optimize, scan_rtx_reg,
849         dump_def_use_chain, find_oldest_value_reg,
850         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
851
852 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
853
854         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
855         MASK_POWERPC64 for power4 in previous commit.
856
857 2008-07-16  Olivier Hainque  <hainque@adacore.com>
858
859         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
860         instead of bare conversion to cast const-ness away.
861
862 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
863
864         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
865         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
866         * config/xtensa/xtensa.c (xtensa_function_value): New function.
867         (TARGET_FUNCTION_VALUE): Define.
868
869 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
870
871         * config/rs6000/rs6000.c (processor_target_table): Add
872         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
873
874 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
875
876         PR target/36827
877         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
878         (m32c_legitimate_address_p): Handle "++rii" addresses created by
879         m32c_legitimize_reload_address.
880
881 2007-07-16  Rafael Avila de Espindola  <espindola@google.com>
882
883        * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
884        DECL_IN_SYSTEM_HEADER in sync.
885
886 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
887
888         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
889         * tree-ssa-pre.c (pre_expr_eq): Ditto
890         (get_constant_for_value_id): Take a type as an argument.
891         (fully_constant_expression): Pass in type.
892         (find_or_generate_expression): Short circuit constant case.
893         (create_expression_by_pieces): Remove special casing of
894         pointer_plus.
895         (do_regular_insertion): Short circuit constant case.
896         (do_partial_partial_insertion): Ditto.
897
898 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
899
900         PR target/36782
901         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
902
903 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
904         
905         * config/xtensa/libgcc-xtensa.ver: New file.
906         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
907         
908 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
909
910         * df-problems.c (df_set_note): Avoid C++ keywords.
911         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
912         * dse.c (record_store, remove_useless_values): Likewise.
913         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
914         gen_reg_rtx_offset, operand_subword, change_address_1,
915         change_address, adjust_address_1, offset_address,
916         widen_memory_access, emit_copy_of_insn_after): Likewise.
917         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
918         * fwprop.c (should_replace_address, propagate_rtx_1,
919         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
920         Likewise.
921         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
922         gcse_emit_move_after, update_ld_motion_stores): Likewise.
923         * lcm.c (compute_insert_delete, pre_edge_lcm,
924         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
925         * lower-subreg.c (resolve_reg_notes): Likewise.
926         * mode-switching.c (optimize_mode_switching): Likewise.
927
928 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
929
930         * bt-load.c (add_btr_def, migrate_btr_def,
931         branch_target_load_optimize): Avoid C++ keywords.
932         * caller-save.c (insert_restore, insert_save, insert_one_insn):
933         Likewise.
934         * combine.c (subst, simplify_set, make_extraction,
935         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
936         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
937         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
938
939 2008-07-15  Richard Guenther  <rguenther@suse.de>
940
941         PR middle-end/36369
942         * c-common.c (strict_aliasing_warning): Do not warn for
943         TYPE_REF_CAN_ALIAS_ALL pointers.
944         (c_common_get_alias_set): may_alias types are not special.
945         * tree.c (build_pointer_type_for_mode): Look up the may_alias
946         attribute and set can_ref_all accordingly.
947         (build_reference_type_for_mode): Likewise.
948         * doc/extend.texi (may_alias): Clarify.
949
950 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
951
952         PR target/36780
953         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
954         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
955
956 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
957
958         PR target/31568
959         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
960         gcc_assert, instead call output_operand_lossage.
961
962 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
963
964         * builtins.c (std_canonical_va_list): Treat structure based
965         va_list types.
966
967 2008-07-15  Ben Elliston  <bje@au.ibm.com>
968
969         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
970
971 2007-07-14  Rafael Avila de Espindola  <espindola@google.com>
972
973         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
974         is set.
975
976 2008-07-14  Jan Hubicka  <jh@suse.cz>
977
978         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
979         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
980         fix predicates and constraints.
981         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
982         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
983
984 2008-07-14  Doug Kwan  <dougkwan@google.com>
985
986         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
987         additional option file arm/eabi.opt.
988         * config/arm/eabi.h (File): New configuration file for EABI targets.
989         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
990         SUBSUBTARGET_EXTRA_SPECS.
991         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
992         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
993         from STARTFILE_SPEC so that it can be referenced in an override.
994         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
995         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
996         can be referenced in an override.
997         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
998         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
999         so that it can be referenced in an override.
1000         (LINK_SPEC): Use BPABI_LINK_SPEC.
1001         * config/arm/eabi.opt (File): New.
1002
1003 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1004
1005         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
1006         (FIXED_VALUE_H): New variable.
1007         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
1008         input.h, fixed-value.h.
1009         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
1010         (BASIC_BLOCK_H): Use $(BITMAP_H).
1011         (FUNCTION_H): Add varray.h.
1012         (IPA_REFERENCE_H): Use $(BITMAP_H).
1013         (CGRAPH_H): Add $(BASIC_BLOCK_H).
1014         (DF_H): Use $(BITMAP_H).
1015         (GGC_H): Add statistics.h.
1016         (INSN_ADDR_H): New.
1017         (INSN_ATTR_H): Use it.
1018         (SYSTEM_H): Add safe-ctype.h, filenames.h.
1019         (INPUT_H): New.
1020         (SYMTAB_H): Add $(OBSTACK_H).
1021         (CPP_INTERNAL_H): New.
1022         (TREE_DUMP_H): Add tree-pass.h.
1023         (TREE_FLOW_H): Use $(BITMAP_H)
1024         (PRETTY_PRINT_H): Use $(INPUT_H).
1025         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
1026         (GSTAB_H): New.
1027         (BITMAP_H): New.
1028         (many object files): Fix lots of header dependencies throughout.
1029
1030 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1031
1032         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
1033         New macros.
1034         (s-gtyp-input): Use them to write tmp-gi.list.
1035         (echo_to_gi.list): Remove.
1036
1037 2008-07-14  Richard Guenther  <rguenther@suse.de>
1038
1039         * tree-ssa-sccvn.c (pre_info): Remove.
1040         (switch_to_PRE_table): Likewise.
1041         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
1042         (set_hashtable_value_ids): Do not create value-ids for the
1043         optimistic tables.
1044         (run_scc_vn): Remove double test.  Remove bogus special-case
1045         in value-number printing.
1046         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
1047         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
1048         SSA_NAME_VALUE.
1049         * tree-flow-inline.h (get_value_handle): Remove.
1050         * tree-flow.h (get_value_handle): Remove.
1051
1052 2008-07-14  Martin Jambor  <mjambor@suse.cz>
1053
1054         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
1055         in which we generate arithmetics is not a subrange.
1056
1057 2008-07-14  Martin Jambor  <mjambor@suse.cz>
1058
1059         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
1060
1061 2008-07-14  Richard Guenther  <rguenther@suse.de>
1062
1063         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
1064
1065 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1066
1067         PR target/36745
1068         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
1069         reload for symbol refs moved to r0 with -fPIC.
1070         (legitimize_pic_address): Use the target register as temporary
1071         reg if possible.
1072         (emit_symbolic_move): Adjust comment.
1073         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
1074         New expanders.
1075
1076 2008-07-14  Ben Elliston  <bje@au.ibm.com>
1077
1078         * c-common.h (C_CPP_HASHNODE): New macro.
1079         * coretypes.h (struct cpp_token): Forward declare.
1080         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
1081         the context-sensitive keyword method.
1082         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
1083         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
1084         expand_bool_pixel): New.
1085         (altivec_categorize_keyword): New function.
1086         (init_vector_keywords): New function.
1087         (rs6000_macro_to_expand): Likewise.
1088         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
1089         compiling an ISO C dialect.
1090
1091 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
1092
1093         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
1094         (create_expression_by_pieces): Fix typo.
1095         (do_regular_insertion): Use debug counter here too.
1096
1097 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
1098
1099         PR target/35492.
1100         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
1101         CONST_OK_FOR_LETTER_P.  All port-local users changed.
1102         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
1103         implement Kp matching power-of-two.
1104         (CONSTRAINT_LEN): Define to match.
1105         * config/cris/cris.md: Replace all use of constraint K with Kc.
1106         ("*btst*): Use Kp for operand 0 of last alternative.
1107
1108 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1109
1110         PR testsuite/36440
1111         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
1112         and quad formats.
1113
1114 2008-07-13  Jan Hubicka  <jh@suse.cz>
1115
1116         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
1117         to be mangled too.
1118
1119 2008-07-13  Richard Guenther  <rguenther@suse.de>
1120
1121         PR middle-end/36811
1122         * langhooks.c (lhd_print_error_function): Deal with recursive
1123         BLOCK trees.
1124
1125 2008-07-12  Jan Hubicka  <jh@suse.cz>
1126
1127         * cgraph.c (assembler_name_hash): New static var.
1128         (hash_node_by_assembler_name, eq_assembler_name): New.
1129         (cgraph_node_for_asm): Use hashtable.
1130         (cgraph_remove_node): Maintain hashtable.
1131         (change_decl_assembler_name): Sanity check that names are not changing
1132         after aliasing was processed.
1133         * cgraph.h (varpoon_node): Add next GGC marker.
1134         * tree.c (decl_assembler_name_equal): Constify.
1135         (decl_assembler_name_hash): New.
1136         * tree.h (decl_assembler_name_equal): Constify.
1137         (decl_assembler_name_hash): Update.
1138
1139 2008-07-12  David Daney  <ddaney@avtrex.com>
1140
1141         * config/mips/driver-native.c (host_detect_local_cpu): Handle
1142         sb1 and r5000 cpus.
1143
1144 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1145
1146         * doc/md.texi: Document the MIPS "v" constraint.
1147         * config/mips/mips.h (reg_class): Revert last change.
1148         (REG_CLASS_NAMES): Likewise.
1149         (REG_CLASS_CONTENTS): Likewise.
1150         * config/mips/mips.c (mips_regno_to_class): Likewise.
1151         * config/mips/constraints.md (v): Likewise, but add documentation.
1152         Add a comment to say that this constraint should not be used in
1153         gcc code.
1154
1155 2008-07-11  DJ Delorie  <dj@redhat.com>
1156
1157         * config/h8300/h8300.md (length): Fix branch offset limit.
1158
1159 2008-07-11  Anatoly Sokolov  <aesok@post.ru>    
1160
1161         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
1162         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
1163         (avr_hard_regno_scratch_ok): New function.
1164         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
1165         * config/avr/avr.md (all peepholes that request a scratch register):
1166         Remove avr_peep2_scratch_safe use.
1167
1168 2008-07-11  Tom Tromey  <tromey@redhat.com>
1169             Ian Lance Taylor  <iant@google.com>
1170
1171         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
1172         (struct c_common_resword): Define.
1173         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
1174         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
1175         (c_common_reswords, num_c_common_reswords): Declare.
1176         * c-common.c (c_common_reswords): New global const array.
1177         (num_c_common_reswords): New const int.
1178         * c-parser.c (struct resword, reswords): Don't define.
1179         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
1180         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
1181         than reswords.  If warning about C++ keywords, give them a special
1182         RID code.
1183         (c_lex_one_token): Warn about C++ keywords.  Call
1184         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
1185         (c_parser_external_declaration): Look for RID_xxx rather than
1186         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
1187         (c_parser_statement_after_labels): Likewise.
1188         (c_parser_objc_class_instance_variables): Likewise.
1189         (c_parser_objc_class_declaration): Likewise.
1190         (c_parser_objc_try_catch_statement): Likewise.
1191         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
1192         (declspecs_add_type): Likewise.
1193
1194 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
1195
1196         * ggc-page.c (alloc_page):
1197         Substituting xmalloc, xcalloc with
1198         XNEWVEC and XCNEWVAR macros which add the
1199         needed casts.
1200
1201 2008-07-11  Richard Guenther  <rguenther@suse.de>
1202
1203         PR tree-optimization/36765
1204         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
1205         aliases from HEAP vars to SMTs.
1206
1207 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1208
1209         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
1210         * configure.ac (loose_warn): Move -Wc++-compat from here...
1211         (strict_warn): ...to here.
1212         * configure: Regenerate.
1213
1214 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
1215
1216         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
1217         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
1218         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
1219         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
1220         excluding more specific h8300-*-* and sh-*-* targets.
1221
1222 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
1223
1224         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
1225         (eliminate): Ditto.
1226         (execute_pre): Call loop_optimizer_finalize in early exit.
1227
1228 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
1229
1230         PR middle-end/36790
1231         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
1232         uids in the bitmap, not just VAR_DECL uids.
1233
1234         PR rtl-optimization/36419
1235         * combine-stack-adj.c (adjust_frame_related_expr): New function.
1236         (combine_stack_adjustments_for_block): Call it if needed.  Delete
1237         correct insn.
1238         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
1239         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
1240         prologue sp adjustment.
1241
1242 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
1243
1244         PR other/28322
1245         * opts.c (print_ignored_options): Report postponed diagnostics for
1246         unknown -Wno-* options as warnings, not errors.
1247         (postpone_unknown_option_error): Renamed to...
1248         (postpone_unknown_option_warning): ... this.
1249
1250 2008-07-09  Doug Kwan  <dougkwan@google.com>
1251
1252         Revert:
1253         2008-07-08  Doug Kwan  <dougkwan@google.com>
1254
1255         * config/arm/arm.opt (mandroid): New option.
1256         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
1257         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
1258         (CC1_SPEC): Same.
1259         (CC1PLUS_SPEC): Same.
1260         (LIB_SPEC): Same.
1261         (STARTFILE_SPEC): Same.
1262         (ENDFILE_SPEC): Same.
1263         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
1264         used.
1265
1266 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
1267
1268         PR target/35802
1269         * config/mips/mips.h (reg_class): Remove V1_REG.
1270         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
1271         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
1272         instead of V1_REGS.
1273         (mips_get_tp): New function.
1274         (mips_legitimize_tls_address): Use it.
1275         * config/mips/constraints.md (v): Delete.
1276         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
1277         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
1278         After reload, split into a move and ...
1279         (*tls_get_tp_<mode>_split): ...this new instruction.
1280
1281 2008-07-09  David Daney  <ddaney@avtrex.com>
1282
1283         * config/mips/driver-native.c: Include coretypes.h and tm.h.
1284
1285 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
1286
1287         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
1288         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
1289         Add c argument.
1290         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
1291         htab_delete should be called.  Don't free c.
1292         (lookup_tmp_var): Create temp_htab lazily.
1293         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
1294         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
1295         callers.
1296         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
1297         lower_omp_ordered, lower_omp_critical, lower_omp_for,
1298         create_task_copyfn, lower_omp_taskreg, execute_lower_omp): 
1299         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
1300         * tree-sra.c (generate_element_init): Likewise.
1301         * tree-mudflap.c (execute_mudflap_function_ops,
1302         execute_mudflap_function_decls): Likewise.
1303         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
1304         * tree-gimple.h (struct gimplify_ctx): New type.
1305         (push_gimplify_context): Adjust prototype.
1306
1307 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
1308
1309         * tree-ssa-pre.c (phi_translate_1): Update placement of
1310         add_to_value calls.
1311
1312 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
1313
1314         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
1315         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
1316         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
1317         * targhooks.c (default_hard_regno_scratch_ok): New function.
1318         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
1319         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
1320         * recog.c:  Include "target.h".
1321         (peep2_find_free_register): Add check for global regs. Add target
1322         specific check.
1323         * Makefile.in (recog.o): Depend on target.h.
1324
1325 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
1326
1327         * config/sh/sh.c (sh_canonical_va_list_type): New.
1328         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
1329
1330 2008-07-09  Raksit Ashok <raksit@google.com>
1331
1332         * doc/invoke.texi (Option Summary): Mention new option
1333         -Wdisallowed-function-list=...
1334         (Warning Options): Document -Wdisallowed-function-list=...
1335         * common.opt (Wdisallowed-function-list=): New flag.
1336         * flags.h (warn_disallowed_functions): External definition of new
1337         boolean warning flag.
1338         (warn_if_disallowed_function_p): Declare new function.
1339         * opts.c (warning_disallowed_functions): New static variable.
1340         (warn_disallowed_functions): New boolean warning flag.
1341         (warn_if_disallowed_function_p): New function.
1342         (add_comma_separated_to_vector): Rename
1343         add_instrument_functions_exclude_list to this.
1344         (common_handle_option): Handle new option. Rename calls to
1345         add_instrument_functions_exclude_list into calls to
1346         add_comma_separated_to_vector.
1347         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
1348         based on flag warn_disallowed_functions.
1349
1350 2008-07-09  Christian Bruel  <christian.bruel@st.com>
1351
1352         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
1353          instead of get_attr_length.
1354
1355 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1356
1357         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
1358         keywords.
1359         * genemit.c (gen_insn): Likewise.
1360         * gengtype.c (note_def_vec): Likewise.
1361         * gengtype.h (note_def_vec): Likewise.
1362         * genoutput.c (struct data, output_insn_data, process_template,
1363         gen_expand, gen_split, note_constraint): Likewise.
1364         * genrecog.c (new_decision, add_to_sequence, factor_tests,
1365         make_insn_sequence): Likewise.
1366         * gensupport.c (record_insn_name): Likewise.
1367
1368 2008-07-08  Doug Kwan  <dougkwan@google.com>
1369
1370         * config/arm/arm.opt (mandroid): New option.
1371         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
1372         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
1373         (CC1_SPEC): Same.
1374         (CC1PLUS_SPEC): Same.
1375         (LIB_SPEC): Same.
1376         (STARTFILE_SPEC): Same.
1377         (ENDFILE_SPEC): Same.
1378         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
1379         used.
1380
1381 2008-07-08  Raksit Ashok  <raksit@google.com>
1382
1383         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
1384         (set_storage_via_setmem): Fix expected_align parameter.
1385         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
1386         missing from the list.
1387         * doc/md.texi (movmem): Explicitly state that expected alignment is
1388         to be expressed in bytes.
1389         (setmem): Explicitly state that expected alignment is to be expressed
1390         in bytes.
1391
1392 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
1393
1394         * reload.c (find_reloads_subreg_address): Do not require validity
1395         of address in original mode before reloading address.
1396
1397 2008-07-07  Tianwei Sheng  <tianweis@google.com>
1398
1399         * df-core.c (df_remove_problem): Adjust the access to avoid out of
1400         bounds array access.
1401
1402 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
1403
1404         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
1405
1406 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
1407         
1408         Fix PR tree-optimization/23455
1409         Fix PR tree-optimization/35286
1410         Fix PR tree-optimization/35287
1411         * Makefile.in (OBJS-common): Remove tree-vn.o.
1412         (tree-vn.o): Remove.
1413         * dbgcnt.def: Add treepre_insert debug counter.
1414         * gcc/tree-flow.h (add_to_value): Updated for other changes.
1415         (debug_value_expressions): Ditto.
1416         (print_value_expressions): Ditto.
1417         * tree-pretty-print.c (dump_generic_node): Updated for
1418         VALUE_HANDLE removal.
1419         * tree-ssa-dom.c (record_equality): Ditto.
1420         (cprop_operand): Ditto.
1421         (lookup_avail_expr): Ditto.
1422         * tree-ssa-threadedge.c
1423         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
1424         (simplify_control_stmt_condition): Ditto.
1425         * tree.c (tree_code_size): Ditto.
1426         (tree_node_structure): Ditto.
1427         (iterative_hash_expr): Ditto.
1428         * tree.def: Ditto.
1429         * tree.h (VALUE_HANDLE_ID): Ditto.
1430         (VALUE_HANDLE_EXPR_SET): Ditto.
1431         (struct tree_value_handle): Ditto.
1432         (union tree_node): Ditto.
1433         * treestruct.def: Ditto.
1434         * tree-vn.c: Removed.
1435         * tree-ssa-pre.c: Rewritten entirely.
1436         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
1437         (constant_value_ids): Ditto.
1438         (vn_nary_op_t): Moved to header.
1439         (vn_phi_t): Ditto.
1440         (vn_reference_op_t): Ditto
1441         (vn_reference_t): Ditto.
1442         (next_value_id): New variable.
1443         (VN_INFO): Add an assert.
1444         (vn_constant_eq): New function.
1445         (vn_constant_hash): Ditto.
1446         (get_or_alloc_constant_value_id): Ditto.
1447         (value_id_constant_p): Ditto.
1448         (vn_reference_compute_hash): De-staticify.
1449         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
1450         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
1451         (valueize_refs): Update opcode if it changes from ssa name to constant.
1452         (vn_reference_lookup_1): Add new argument.
1453         (vn_reference_lookup):  Ditto.
1454         (vn_reference_lookup_pieces): New function.
1455         (vn_reference_insert): Add return type. Modify to deal with value ids.
1456         (vn_reference_insert_pieces):  New function.
1457         (vn_nary_op_compute_hash): De-staticify.
1458         (vn_nary_op_eq): Ditto.
1459         (vn_nary_op_lookup_pieces): New function.
1460         (vn_nary_op_lookup): Add new argument.  
1461         (vn_nary_op_insert_pieces): New function.
1462         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
1463         (vn_phi_insert): Ditto.
1464         (visit_unary_op): Update for callee changes.
1465         (visit_binary_op): Ditto.
1466         (visit_reference_op_load): Ditto.
1467         (visit_reference_op_store): Ditto.
1468         (init_scc_vn): Init next_value_id, constant_to_value_id and
1469         constant_value_ids. 
1470         (free_scc_vn): Free them.
1471         (set_hashtable_value_ids): New function.
1472         (run_scc_vn): Use it.
1473         (get_max_value_id): New function.
1474         (get_next_value_id): Ditto.
1475         (expressions_equal_p): Moved from tree-vn.c
1476         (sort_vuses): Ditto.
1477         (sort_vuses_heap): Ditto.
1478         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
1479         above).
1480         * tree.c (iterative_hash_hashval_t): Made non-static
1481         * tree.h (iterative_hash_hashval_t): Declare it.
1482         
1483 2008-07-08  Martin Jambor  <mjambor@suse.cz>
1484
1485         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
1486         instead of ipa_create_node_params.
1487         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
1488         ipa_check_create_edge_args, free them with
1489         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
1490
1491         * ipa-prop.c: Include flags.h and tree-inline.h.
1492         (ipa_node_params_vector): New variable.
1493         (ipa_edge_args_vector): New variable.
1494         (edge_removal_hook_holder): New variable.
1495         (node_removal_hook_holder): New variable.
1496         (edge_duplication_hook_holder): New variable.
1497         (node_duplication_hook_holder): New variable.
1498         (ipa_detect_param_modifications): Check for presence of modified flags.
1499         (ipa_compute_jump_functions): Check for presence of jump functions.
1500         (ipa_free_edge_args_substructures): New function.
1501         (ipa_create_node_params): Removed.
1502         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
1503         (ipa_free_node_params_substructures): New function.
1504         (ipa_free_all_node_params): Changed to deallocate the on-the-side
1505         vector.
1506         (ipa_edge_removal_hook): New function.
1507         (ipa_node_removal_hook): New function.
1508         (duplicate_array): New function.
1509         (ipa_edge_duplication_hook): New function.
1510         (ipa_node_duplication_hook): New function.
1511         (ipa_register_cgraph_hooks): New function.
1512         (ipa_unregister_cgraph_hooks): New function.
1513         (free_all_ipa_structures_after_ipa_cp): New function.
1514         
1515         * ipa-prop.h: Include vec.h.
1516         (ipa_node_params_t): New typedef with vector types for it.
1517         (ipa_edge_args_t):  New typedef with vector types for it.
1518         (IPA_NODE_REF): Changed to access an on-the-side vector.
1519         (IPA_EDGE_REF): Changed to access an on-the-side vector.
1520         (ipa_check_create_node_params): New function.
1521         (ipa_check_create_edge_args): New function.
1522         
1523         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
1524         all users.
1525         
1526 2008-07-07  Tom Tromey  <tromey@redhat.com>
1527
1528         * configure, config.in: Rebuilt.
1529         * configure.ac: Don't check for scandir or alphasort.
1530
1531 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
1532
1533         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
1534         types immediately after creating them.
1535
1536 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
1537
1538         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
1539
1540 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
1541
1542         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
1543         dump_constraint_graph.
1544         (dump_constraint_edge): New function.
1545         (dump_constraint_graph): New function.
1546         (debug_constraint_graph): New function.
1547         (dump_constraint): Removed useless comparison.
1548         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
1549         (dump_constraint_graph): Declare.
1550         (debug_constraint_graph): Declare.
1551         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
1552
1553 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
1554
1555         * config/i386/i386.c (is_va_list_char_pointer): New.
1556         (ix86_va_start): Replace compare with ms_va_list_type_node
1557         by is_va_list_char_pointer.
1558         (ix86_gimplify_va_arg): Likewise.
1559
1560 2008-07-07  Martin Jambor  <mjambor@suse.cz>
1561
1562         * cgraph.c (cgraph_edge_max_uid): New variable.
1563         (struct cgraph_edge_hook_list): New type.
1564         (struct cgraph_node_hook_list): New type.
1565         (struct cgraph_2edge_hook_list): New type.
1566         (struct cgraph_2node_hook_list): New type.
1567         (first_cgraph_edge_removal_hook): New variable.
1568         (first_cgraph_node_removal_hook): New variable.
1569         (first_cgraph_edge_duplicated_hook): New variable.
1570         (first_cgraph_node_duplicated_hook): New variable.
1571         (cgraph_add_edge_removal_hook): New function.
1572         (cgraph_remove_edge_removal_hook): New function.
1573         (cgraph_call_edge_removal_hooks):  New function.
1574         (cgraph_add_node_removal_hook):  New function.
1575         (cgraph_remove_node_removal_hook):  New function.
1576         (cgraph_call_node_removal_hooks):  New function.
1577         (cgraph_add_edge_duplication_hook):  New function.
1578         (cgraph_remove_edge_duplication_hook):  New function.
1579         (cgraph_call_edge_duplication_hooks):  New function.
1580         (cgraph_add_node_duplication_hook):  New function.
1581         (cgraph_remove_node_duplication_hook):  New function.
1582         (cgraph_call_node_duplication_hooks):  New function.
1583         (cgraph_create_edge): Assign to edge uid.
1584         (cgraph_remove_edge): Call edge removal hooks.
1585         (cgraph_node_remove_callees): Call edge removal hooks.
1586         (cgraph_node_remove_callers): Call edge removal hooks.
1587         (cgraph_remove_node): Call node removal hooks.
1588         (cgraph_clone_edge): Call edge duplication hooks.
1589         (cgraph_clone_node): Call node duplication hooks.
1590
1591         * cgraph.h (cgraph_edge): New field uid.
1592         (cgraph_edge_hook): New type.
1593         (cgraph_node_hook): New type.
1594         (cgraph_2edge_hook): New type.
1595         (cgraph_2node_hook): New type.
1596
1597 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
1598
1599         * config.in: Regenerate.
1600
1601 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
1602
1603         * gcc.c (print_sysroot): New.
1604         (option_map, display_help, process_command): Handle the
1605         -print-sysroot option.
1606         (main): Print the sysroot if requested.
1607         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
1608         
1609 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1610
1611         PR target/34780
1612         * unwind-pe.h (size_of_encoded_value): add attribute unused.
1613
1614 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
1615
1616         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
1617         (assign_parm_setup_block_p): Also check mode of entry_parm.
1618
1619 2008-07-07  Richard Guenther  <rguenther@suse.de>
1620
1621         * tree-ssa-structalias.h (set_used_smts): Remove.
1622         * tree-ssa-structalias.c (used_smts): Likewise.
1623         (set_used_smts): Likewise.
1624         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
1625         call to set_used_smts.
1626
1627 2008-07-07  Richard Guenther  <rguenther@suse.de>
1628
1629         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
1630         (new_var_info): Set it to false.
1631         (solution_set_add): Correctly handle pointers outside a var and
1632         inside a field.
1633         (type_safe): Treat variables with is_full_var properly.
1634         (do_sd_constraint): Likewise.
1635         (do_ds_constraint): Likewise.
1636         (process_constraint): Remove zeroing offset for !use_field_sensitive.
1637         (get_constraint_for_ptr_offset): New function.
1638         (get_constraint_for_component_ref): For addresses at least include
1639         the last field of the variable.  Handle is_full_vars properly.
1640         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
1641         (handle_ptr_arith): Remove.
1642         (find_func_aliases): Simplify assignment handling.
1643         (create_function_info_for): For parameter and result varinfos set
1644         is_full_var flag.
1645         (create_variable_info_for): Set is_full_var flag whenever we
1646         just created a single varinfo for a decl.
1647         (init_alias_vars): Initialize use_field_sensitive from
1648         max-fields-for-field-sensitive parameter.
1649
1650 2008-07-07  Richard Guenther  <rguenther@suse.de>
1651
1652         PR tree-optimization/36713
1653         * tree-flow-inline.h (is_call_used): New function.
1654         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
1655         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
1656         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
1657
1658 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
1659
1660         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
1661         
1662 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
1663
1664         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
1665
1666 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
1667             Nathan Sidwell  <nathan@codesourcery.com>
1668
1669         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
1670         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
1671         tmake_file.
1672         * config/m68k/t-linux: New.
1673         * doc/install.texi: Document m68k-*-linux is now multilibbed by
1674         default.
1675
1676 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
1677
1678         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
1679         * config/m68k/m68k-devices.def: Remove multilibs that only differ
1680         by MAC/EMAC.
1681
1682 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1683
1684         * gcc.c (execute): Fix -Wc++-compat warning.
1685
1686 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
1687
1688         PR target/36720
1689         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
1690         constant for little endian.
1691
1692 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
1693
1694         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
1695         mips_base_mips16 instead of TARGET_MIPS16.
1696         (mips_base_mips16): Declare.
1697         * config/mips/mips.c (mips_base_mips16): Make global.
1698         (was_mips16_p): Remove GTY marker.
1699         (was_mips16_pch_p): New variable.
1700         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
1701         (mips_override_options): Force to non-MIPS16 mode initially.
1702         Do not complain about MIPS16 PIC incompatibilities here.
1703         Only allow -mgpopt if -mexplicit-relocs is in force for
1704         non-MIPS16 code.
1705
1706 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
1707
1708         * configure.ac: Check for caddr_t, define to char * if not defined.
1709         * configure: Regenerate.
1710         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
1711         (mmap_gt_pch_use_address): Likewise.
1712         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
1713
1714 2008-07-06  Richard Guenther  <rguenther@suse.de>
1715
1716         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
1717         (new_var_info): Deal with it.
1718         (solution_set_add): Likewise.
1719         (bitpos_of_field): Make signed, fix.
1720         (struct fieldoff): Remove type and decl fields.  Make size field
1721         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
1722         flags.
1723         (fieldoff_compare): Deal with it.
1724         (push_fields_onto_fieldstack): Remove has_union argument, glob
1725         adjacent non-pointer fields together.
1726         (create_function_info_for): Do not set has_union.
1727         (create_variable_info_for): Simplify.
1728
1729 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
1730
1731         * config.gcc (extra_headers): Add cross-stdarg.h for target
1732         x86_64-*-* and i?86-*-*.
1733         * config/i386/cross-stdarg.h: New.
1734         * builtins.c (std_fn_abi_va_list): New.
1735         (std_canonical_va_list_type): New.
1736         (stabilize_va_list): Replace va_list_type_node use by
1737         mtarget.canonical_va_list_type.
1738         (gimplify_va_arg_expr): Likewise.
1739         (expand_builtin_va_copy): Replace va_list_type_node use by
1740         mtarget.fn_abi_va_list.
1741         * tree-sra.c (is_va_list_type): New helper.
1742         (decl_can_be_decomposed_p): Replace
1743         va_list_type_node use by is_va_list_type.
1744         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
1745         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
1746         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
1747         * config/i386/i386-protos.h (ix86_get_valist_type): New.
1748         (ix86_enum_va_list): New.
1749         * config/i386/i386.c (sysv_va_list_type_node): New.
1750         (ms_va_list_type_node): New.
1751         (ix86_function_type_abi): Remove sorry.
1752         (ix86_build_builtin_va_list_abi): New.
1753         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
1754         for 64-bit targets.
1755         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
1756         (ix86_init_builtins_va_builtins_abi): New.
1757         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
1758         for 64-bit targets.
1759         (ix86_handle_abi_attribute): New.
1760         (attribute_spec): Add sysv_abi and ms_abi.
1761         (ix86_fn_abi_va_list): New.
1762         (ix86_canonical_va_list_type): New.
1763         (ix86_enum_va_list): New.
1764         (TARGET_FN_ABI_VA_LIST): New.
1765         (TARGET_CANONICAL_VA_LIST_TYPE): New.
1766         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
1767         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
1768         (TARGET_CANONICAL_VA_LIST_TYPE): New.
1769         (TARGET_ENUM_VA_LIST): New.
1770         * expr.h (std_fn_abi_va_list): New.
1771         (std_canonical_va_list_type): New.
1772         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
1773         (TARGET_CANONICAL_VA_LIST_TYPE): New.
1774         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
1775         TARGET_CANONICAL_VA_LIST_TYPE.
1776         * target.h (struct gcc_target): Add fn_abi_va_list hook
1777         and canonical_va_list_type hook.
1778
1779 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1780
1781         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
1782         integral and pointer types.
1783
1784 2008-07-04  Roger Sayle  <roger@eyesopen.com>
1785
1786         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
1787         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
1788
1789 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
1790
1791         PR target/36684
1792         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
1793
1794 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
1795
1796         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
1797         build_gimple_modify_stmt.
1798         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
1799         gimple operand.  Use fold_build* instead of build*.
1800
1801 2008-07-04  Richard Guenther  <rguenther@suse.de>
1802
1803         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
1804         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
1805         properly to compute the reachability set if we do field-sensitive PTA.
1806         * invoke.texi (max-fields-for-field-sensitive): Document default.
1807         * opts.c (decode_options): Set max-fields-for-field-sensitive to
1808         100 for optimize >= 2.
1809
1810 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1811
1812         * ggc-zone.c (lookup_page_table_if_allocated,
1813         set_page_table_entry, zone_find_object_size, alloc_small_page,
1814         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
1815         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
1816         -Wc++-compat and/or -Wcast-qual warnings.
1817
1818 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
1819
1820         PR target/36634
1821         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
1822         pic_offset_table_rtx to be marked as used here.
1823         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
1824         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
1825         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
1826         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
1827         !TARGET_SECURE_PLT.
1828
1829 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1830
1831         * alloc-pool.c (hash_descriptor, eq_descriptor,
1832         alloc_pool_descriptor): Fix -Wc++-compat warnings.
1833         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
1834         Likewise.
1835         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
1836         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
1837         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
1838         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
1839         Likewise.
1840
1841 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
1842
1843         * tree-flow.h (loop_only_exit_p): Declare.
1844         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
1845         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
1846         the number of iterations if it is constant.  Otherwise, if this is the
1847         only possible exit of the loop, use the conservative estimate on the
1848         number of iterations of the entire loop if available.
1849
1850 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
1851
1852         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
1853         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
1854         Add synchronization functions.
1855         * config/sync.c: New file.
1856         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
1857         (LIBGCC_SYNC_CFLAGS): Likewise.
1858
1859 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
1860
1861         PR target/36710
1862         * config/i386/i386.md (mode): Add TF to "mode" attribute.
1863         (*pushtf_sse): New insn pattern.
1864         (pushtf splitters): New splitters.
1865
1866 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
1867
1868         PR middle-end/35736
1869         * predict.c (build_predict_expr): Use void_type_node for the tree
1870         type, instead of NULL_TREE.
1871
1872 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
1873
1874         * config/i386/i386.c (contains_aligned_value_p): Return true
1875         for TCmode.
1876         (ix86_data_alignment): Align TCmode to 128bits.
1877         (ix86_local_alignment): Likewise.
1878
1879 2008-07-03  Andrew Haley  <aph@redhat.com>
1880
1881         PR bootstrap/33304
1882         * vec.h (VEC_TA): New.
1883         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
1884         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
1885         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
1886         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
1887         (C_COMMON_FIXED_TYPES): Remove first arg.
1888         (C_COMMON_FIXED_MODE_TYPES): Likewise.
1889         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
1890         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
1891         not to use empty macro arguments.
1892
1893 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
1894
1895         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
1896         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
1897         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
1898         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
1899         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
1900         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
1901         config/ia64/crtn.asm, config/m68hc11/larith.asm,
1902         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
1903         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
1904         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
1905         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
1906         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
1907         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
1908         config/rs6000/e500crtres64gpr.asm,
1909         config/rs6000/e500crtres64gprctr.asm,
1910         config/rs6000/e500crtrest32gpr.asm,
1911         config/rs6000/e500crtrest64gpr.asm,
1912         config/rs6000/e500crtresx32gpr.asm,
1913         config/rs6000/e500crtresx64gpr.asm,
1914         config/rs6000/e500crtsav32gpr.asm,
1915         config/rs6000/e500crtsav64gpr.asm,
1916         config/rs6000/e500crtsav64gprctr.asm,
1917         config/rs6000/e500crtsavg32gpr.asm,
1918         config/rs6000/e500crtsavg64gpr.asm,
1919         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
1920         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
1921         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
1922         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
1923         config/sparc/sol2-cn.asm: Remove .file directives.
1924
1925 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
1926
1927         * resource.c (mark_referenced_resources): Look inside
1928         UNSPEC_VOLATILEs and ASM_INPUTs.
1929
1930 2008-07-02  Ian Lance Taylor  <iant@google.com>
1931
1932         * rtlanal.c (add_reg_note): New function.
1933         * rtl.h (add_reg_note): Declare.
1934         * auto-inc-dec.c (attempt_change): Use add_reg_note.
1935         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
1936         * builtins.c (expand_builtin_longjmp): Likewise.
1937         (expand_builtin_nonlocal_goto): Likewise.
1938         * calls.c (emit_call_1, expand_call): Likewise.
1939         * cfgexpand.c (add_reg_br_prob_note): Likewise.
1940         * cfglayout.c (fixup_reorder_chain): Likewise.
1941         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
1942         (commit_one_edge_insertion): Likewise.
1943         * combine.c (move_deaths, distribute_notes): Likewise.
1944         * df-problems.c (df_set_note): Likewise.
1945         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
1946         (set_unique_reg_note): Likewise.
1947         (emit_copy_of_insn_after): Likewise.
1948         * expr.c (expand_expr_real): Likewise.
1949         * gcse.c (add_label_notes): Likewise.
1950         * haifa-sched.c (create_check_block_twin): Likewise.
1951         * jump.c (mark_jump_label_1): Likewise.
1952         * loop-doloop.c (add_test, doloop_modify): Likewise.
1953         * loop-unswitch.c (compare_and_jump_seq): Likewise.
1954         * lower-subreg.c (move_eh_region_note): Likewise.
1955         * optabs.c (emit_libcall_block): Likewise.
1956         * predict.c (predict_insn): Likewise.
1957         (combine_predictions_for_insn): Likewise.
1958         * recog.c (peephole2_optimize): Likewise.
1959         * regmove.c (try_auto_increment): Likewise.
1960         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
1961         * reload.c (find_reloads): Likewise.
1962         * reload1.c (fixup_eh_region_note): Likewise.
1963         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
1964         * reorg.c (delete_prior_computation): Likewise.
1965         (delete_computation, dbr_schedule): Likewise.
1966         * config/pa/pa.c (legitimize_pic_address): Likewise.
1967         * config/sh/sh.c (sh_reorg): Likewise.
1968
1969 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
1970
1971         PR target/36669
1972         * config/libgcc-glibc.ver: Add %exclude.
1973         * config/m32r/libgcc-glibc.ver: Likwise.
1974         * config/s390/libgcc-glibc.ver: Likwise.
1975         * config/sh/libgcc-glibc.ver: Likwise.
1976         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
1977
1978         * config/i386/libgcc-glibc.ver: New.
1979
1980         * config/i386/libgcc-x86_64-glibc.ver: Removed.
1981
1982 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
1983
1984         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
1985         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
1986         i[34567]86-*-linux*, x86_64-*-linux*.  Add
1987         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
1988         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
1989         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
1990         i[34567]86-*-linux*, x86_64-*-linux*.
1991
1992         * libgcc-std.ver: Add empty GCC_4.4.0.
1993
1994         * mkmap-symver.awk: Support multiple versions per symbol.
1995
1996         * config/i386/i386.c (ix86_init_builtins): Always define
1997         __builtin_fabsq and __builtin_copysignq with fallbacks.
1998         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
1999         and __builtin_copysignq if SSE2 isn't available.
2000
2001         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
2002         (LIBGCC2_TF_CEXT): Likwise.
2003         (TF_SIZE): Likwise.
2004
2005         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
2006
2007         * config/i386/sfp-machine.h: Moved to libgcc.
2008
2009         * config/i386/sfp-machine.h: New.
2010         * config/i386/t-linux: Likwise.
2011
2012         * config/i386/t-darwin: Remove softfp_wrap_start and
2013         softfp_wrap_end.
2014         * config/i386/t-darwin64: Likewise.
2015
2016         * config/i386/t-fprules-softfp64: Renamed to ...
2017         * config/i386/t-fprules-softfp: This.
2018
2019         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
2020         and softfp_wrap_end.
2021
2022 2008-07-02  Jason Merrill  <jason@redhat.com>
2023
2024         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
2025
2026         * tree.c (ctor_to_list): New fn.
2027         * tree.h: Declare it.
2028         (CONSTRUCTOR_ELT): New macro.
2029         (CONSTRUCTOR_NELTS): New macro.
2030
2031 2008-07-02  Richard Guenther  <rguenther@suse.de>
2032
2033         * tree-ssa-structalias.c (struct variable_info): Reorder
2034         to fill padding on 64bit hosts.  Make collapsed_to an int.
2035         (get_varinfo_fc): Deal with that.
2036         (new_var_info): Likewise.
2037         (collapse_rest_of_var): Likewise.
2038
2039 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
2040
2041         * doc/install.texi (--enable-java-home): Document.
2042         (--enable-aot-compile-rpm): Likewise.
2043         (--with-arch-directory): Likewise.
2044         (--with-os-directory): Likewise.
2045         (--with-origin-name): Likewise.
2046         (--with-arch-suffix): Likewise.
2047         (--with-jvm-root-dir): Likewise.
2048         (--with-jvm-jar-dir): Likewise.
2049         (--with-python-dir): Likewise.
2050
2051 2008-07-02  Richard Guenther  <rguenther@suse.de>
2052
2053         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
2054         from decls explicitly.  Merge operand checking from tuples.
2055
2056 2008-07-02  Martin Jambor  <mjambor@suse.cz>
2057
2058         * tree-switch-conversion.c: Included timevar.h which I forgot before.
2059         
2060 2008-07-02  Martin Jambor  <mjambor@suse.cz>
2061
2062         * tree-switch-conversion.c: Included timevar.h
2063         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
2064
2065         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
2066
2067 2008-07-02  Martin Jambor  <mjambor@suse.cz>
2068
2069         * tree-switch-conversion.c: Corrected various comments and
2070         whitespace issues
2071         (build_constructors): Fixed minor formatting mistakes.
2072
2073         * invoke.texi (Optimize Options): Corrected the
2074         switch-conversion-max-branch-ratio parameter.
2075
2076 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
2077
2078         * final.c (asm_insn_count): Return zero for an empty asm body.
2079
2080 2008-07-02  Richard Guenther  <rguenther@suse.de>
2081
2082         * bitmap.h (bitmap_set_bit): Return bool.
2083         (bitmap_clear_bit): Likewise.
2084         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
2085         write to the bitmap if it would.
2086         (bitmap_clear_bit): Likewise.
2087         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
2088         bitmap_set_bit return value.
2089         (add_pred_graph_edge): Likewise.
2090         (add_graph_edge): Likewise.
2091         (do_sd_constraint): Likewise.
2092         (do_ds_constraint): Likewise.
2093
2094 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2095
2096         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
2097         Fix -Wc++-compat and/or -Wcast-qual warnings.
2098         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
2099         gen_regparm_prefix): Likewise.
2100         * vmsdbgout.c (write_modbeg, lookup_filename,
2101         vmsdbgout_source_line, vmsdbgout_init): Likewise.
2102
2103 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
2104
2105         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
2106         defaults.h definition apply.
2107
2108 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
2109
2110         * function.c (assign_parm_remove_parallels): New.
2111         (assign_parm_setup_block_p): Do not return true for non-BLKmode
2112         PARALLELs.
2113         (assign_parm_setup_block): Do not handle them.
2114         (assign_parm_setup_reg, assign_parm_setup_stack): Call
2115         assign_parm_remove_parallels.
2116
2117 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
2118
2119         * c-typeck.c (convert_for_assignment): Use
2120         vector_targets_convertible_p.
2121         * c-common.c (vector_targets_convertible_p): New.
2122         * c-common.h (vector_targets_convertible_p): New prototype.
2123         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
2124         opaque_p_V2SI_type_node.
2125
2126 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
2127
2128         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
2129         RFmode constants.
2130
2131 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
2132
2133         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
2134         TFmode constants via two element DImode vector for hosts with
2135         HOST_BITS_PER_WIDE_INT < 64.
2136         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
2137         also for HOST_BITS_PER_WIDE_INT < 64.
2138
2139 2008-07-01  Richard Guenther  <rguenther@suse.de>
2140
2141         PR tree-optimization/36666
2142         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
2143         (get_constraint_exp_from_ssa_var): Split into ...
2144         (get_constraint_exp_for_temp): ... this ...
2145         (get_constraint_for_ssa_var): ... and that.
2146         Return constraint expressions for all touched sub-fields
2147         if the results address is not taken.
2148         (process_constraint): Remove assertion that aggregate
2149         assignments do not happen at this place.
2150         (get_constraint_for_component_ref): Add address_p argument.
2151         Return constraint expressions for all touched sub-fields
2152         if the results address is not taken.
2153         (do_deref): Use get_constraint_exp_for_temp.
2154         (get_constraint_for_1): Rename from ...
2155         (get_constraint_for): ... this.  Add the old function as wrapper.
2156         (do_structure_copy): Use get_constraint_for_1.
2157
2158 2008-07-01  Martin Jambor  <mjambor@suse.cz>
2159
2160         * Makefile.in (tree-switch-conversion.o): Add.
2161         (OBJS-common): Add tree-swtch-conversion.o.
2162         * passes.c (init_optimization_passes): Add pass_convert_switch.
2163         * tree-pass.h: (pass_convert_switch): Add.
2164         * tree-switch-conversion.c: New file.
2165         * gcc.dg/tree-ssa/cswtch.c: New testcase.
2166         * common.opt (ftree-cswtch): New option.
2167         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
2168         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
2169         * opts.c (decode_options): Set flag_tree_switch_conversion when
2170         optimization level is >= 2.
2171         * doc/invoke.texi (Optimize Options): Added description of
2172         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
2173
2174 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2175
2176         * config/darwin-driver.c (darwin_default_min_version): Fix
2177         -Wc++-compat warnings.
2178
2179 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
2180
2181         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
2182         of operand 0.
2183
2184 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
2185
2186         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
2187         
2188 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
2189
2190         PR rtl-optimization/34744
2191         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
2192         (df_scan_free_internal): Free data structures not
2193         allocated in storage pools.
2194         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
2195         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
2196         df_scan_free_mws_vec.
2197         * dse.c (dse_step6): Free offset_map_p and offset_map_n
2198         unconditionally.
2199
2200 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
2201
2202         * config/i386/i386.c (contains_aligned_value_p): Return true
2203         for __float128.
2204         (ix86_function_arg_boundary): Return its natural boundary
2205         for __float128.
2206         (return_in_memory_32): Don't check TDmode.
2207         (ix86_split_to_parts): Support splitting into 4 parts and
2208         support TFmode for 32bit target.
2209         (ix86_split_long_move): Support splitting into 4 parts.
2210         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
2211         for SSE2.
2212         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
2213         (ix86_init_builtins): Here.
2214         (ix86_scalar_mode_supported_p): Always return true for TFmode.
2215         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
2216         'q' and 'w', respectively. 
2217
2218         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
2219         TARGET_64BIT.
2220         (movtf_internal): Likewise.
2221         (<code>tf2): Likewise.
2222         (*absnegtf2_sse): Likewise.
2223         (copysign<mode>3): Likewise.
2224         (copysign<mode>3_const): Likewise.
2225         (copysign<mode>3_var): Likewise.
2226         (define_split UNSPEC_COPYSIGN): Likewise.
2227         * config/i386/sse.md (*nandtf3): Likewise.
2228         (<code>tf3): Likewise.
2229         (*<code>tf3): Likewise.
2230
2231 2008-06-30  Joey Ye  <joey.ye@intel.com>
2232             H.J. Lu  <hongjiu.lu@intel.com>
2233
2234         * global.c (compute_regsets): Set frame_pointer_needed here.
2235         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
2236
2237 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2238
2239         * doc/install.texi (specific): Expand Windows build notes.
2240
2241 2008-06-30  Ira Rosen  <irar@il.ibm.com>
2242
2243         PR tree-optimization/36648
2244         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
2245         number of prolog iterations by step. Fix the comment.
2246
2247 2008-06-30  Richard Guenther  <rguenther@suse.de>
2248
2249         PR middle-end/36671
2250         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
2251         handle calls from ECF_MALLOC functions.
2252         (handle_pure_call): ECF_MALLOC functions do not return
2253         call-used memory.
2254         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
2255
2256 2008-06-29  Andreas Schwab  <schwab@suse.de>
2257
2258         * config/m68k/m68k.c (print_operand): Always print a float
2259         constant in hex.
2260         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
2261         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
2262         Remove macros.
2263
2264         * config/rs6000/x-linux64: Remove never used file.
2265
2266 2008-06-29  Richard Guenther  <rguenther@suse.de>
2267
2268         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
2269         prototype.
2270         (struct alias_info): Move ...
2271         * tree-ssa-alias.c: ... here.
2272         (update_alias_info): Declare.
2273         (compute_may_aliases): Call it.
2274         (update_alias_info): New function.
2275         * tree-ssa-structalias.c (update_alias_info): Move ...
2276         * tree-ssa-alias.c (update_alias_info_1): ... here.
2277         * tree-ssa-structalias.c (process_constraint_1): Remove
2278         unused from_call argument.  Rename to ...
2279         (process_constraint): ... this.  Delete old wrapper.
2280         (make_constraint_to): Adjust callers.
2281         (handle_const_call): Likewise.
2282         (handle_pure_call): Likewise.
2283         (init_base_vars): Likewise.
2284         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
2285         (find_func_aliases): We don't need structure copies for
2286         complex types.
2287         (make_constraint_from_anything): Remove.
2288         (create_variable_info_for): For globals make constraints
2289         from escaped, not from anything.
2290         (compute_points_to_sets): Do not call update_alias_info.
2291         (ipa_pta_execute): Use make_constraint_from.
2292
2293 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2294
2295         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
2296         (bitmap.o-warn, dominance.o-warn): New.
2297         * configure.ac (cxx_compat_warn): Delete.
2298         (loose_warn): Add -Wcast-qual and -Wc++-compat.
2299         * system.h: Remove #pragma diagnostic for -Wcast-qual and
2300         -Wc++-compat.
2301         * configure: Regenerate.
2302
2303         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
2304         warnings.
2305
2306 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2307
2308         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
2309         * df-scan.c (df_notes_rescan): Likewise.
2310         * ggc-page.c (set_page_table_entry): Likewise.
2311         * intl.c (gcc_gettext_width): Likewise.
2312         * varasm.c (get_unnamed_section, get_noswitch_section,
2313         get_section): Likewise.
2314
2315 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
2316
2317         * regrename.c (build_def_use): Don't copy RTX.
2318
2319 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
2320
2321         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
2322         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
2323         punctuation.  Use @ref instead of @xref.
2324         (Function Names): Remove stray @display/@end display.
2325         (C++ Attributes): Use @ref instead of @xref.
2326         (Deprecated Features): Fix punctuation around @xref.
2327         (Backwards Compatibility): Likewise.
2328         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
2329
2330 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
2331
2332         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
2333         constants for E500 double.
2334
2335 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2336
2337         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
2338         element type of const_vector.
2339
2340 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
2341
2342         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
2343         Remove FLAGS_REG clobber from expander pattern.
2344         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
2345         (anddi3, andsi3, andhi3, andqi3): Ditto.
2346         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
2347         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
2348         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
2349         (ashlsi3, ashlhi3, ashlqi3): Ditto.
2350         (ashrsi3, ashrhi3, ashrqi3): Ditto.
2351         (lshrsi3, lshrhi3, lshrqi3): Ditto.
2352         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
2353         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
2354
2355 2008-06-28  Richard Guenther  <rguenther@suse.de>
2356
2357         * tree-ssa-structalias.c (callused_id, var_callused,
2358         callused_tree): Add.
2359         (handle_pure_call): New function.
2360         (find_func_aliases): Call it.
2361         (find_what_p_points_to): Handle the call-used set.
2362         (clobber_what_escaped): Likewise.
2363         (compute_call_used_vars): New function.
2364         (init_base_vars): Init the call-used variable.
2365         (do_sd_constraint): Do not propagate the solution from CALLUSED
2366         but use CALLUSED as a placeholder.
2367         (solve_graph): Likewise.
2368         * tree-flow-inline.h (gimple_call_used_vars): New function.
2369         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
2370         (compute_call_used_vars): Declare.
2371         * tree-ssa-alias.c (set_initial_properties): Call
2372         compute_call_used_vars.
2373         (reset_alias_info): Clear call-used variables.
2374         (add_call_clobber_ops): Assert we are not called for const/pure
2375         functions.  Remove handling of them.
2376         (add_call_read_ops): Handle pure functions by adding the
2377         call-used set of variables as VUSEs.
2378         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
2379         (delete_tree_ssa): Free it.
2380         * tree-dfa.c (remove_referenced_var): Clear the var from the
2381         call-used bitmap.
2382
2383 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
2384
2385         * tree.c (build_varargs_function_type_list): New.
2386         (build_function_type_list_1): New.
2387         (build_function_type_list): Use build_function_type_list_1.
2388         * tree.h (build_varargs_function_type_list): New.
2389
2390 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2391
2392         PR target/34856
2393         * config/spu/spu.c (spu_builtin_splats): Do not generate
2394         invalid CONST_VECTOR expressions.
2395         (spu_expand_vector_init): Likewise.
2396
2397 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
2398
2399         * optabs.c (libfunc_decls): New variable.
2400         (libfunc_decl_hash, libfunc_decl_eq): New functions.
2401         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
2402         for the same function twice.
2403
2404 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
2405
2406         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
2407         ix86_expand_binary_operator directly.
2408         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
2409         for operand 2.
2410         (*ashrti3_1): Ditto.
2411         (*lshrti3_1): Ditto.
2412         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
2413         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
2414         using only one splitter.  Conditionaly execute splitter before or
2415         after peephole2 pass.
2416         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
2417         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
2418         Use only one alternative in asm template.
2419         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
2420         in asm template.
2421         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
2422         "J" operand constraint for operand 2.
2423         (*ashldi3_cconly_rex64): Ditto.
2424         (*ashrdi3_cmp_rex64): Ditto.
2425         (*ashrdi3_cconly_rex64): Ditto.
2426         (*lshrdi3_cmp_rex64): Ditto.
2427         (*lshrdi3_cconly_rex64): Ditto.
2428         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
2429         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
2430         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
2431         gen_x86_shrd_1.
2432
2433 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
2434
2435         * gimplify.c (omp_is_private): Don't return true if decl is not
2436         already private on #pragma omp for or #pragma omp parallel for.
2437
2438         PR debug/36617
2439         * tree-cfg.c (struct move_stmt_d): Replace block field with
2440         orig_block and new_block fields.
2441         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
2442         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
2443         (move_block_to_fn): Replace vars_map and new_label_map arguments
2444         with struct move_stmt_d pointer.
2445         (replace_block_vars_by_duplicates): New function.
2446         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
2447         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
2448         all subblocks of ORIG_BLOCK to the new function.  Call
2449         replace_block_vars_by_duplicates.
2450         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
2451         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
2452         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
2453         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
2454         (expand_omp): Temporarily set input_location to the location of
2455         region's controlling stmt.
2456         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
2457         BIND_EXPR, push ctx->block_vars and gimplification vars into
2458         the BIND_EXPR and its block's BLOCK_VARS instead of directly
2459         into dest function.
2460         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
2461         there are any BLOCK_VARS.
2462         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
2463         OMP_PARALLEL or OMP_TASK stmt.
2464         (lower_omp): Save and restore input_location around the lower_omp_1
2465         call.
2466
2467 2008-06-27  Richard Guenther  <rguenther@suse.de>
2468
2469         PR tree-optimization/36400
2470         PR tree-optimization/36373
2471         PR tree-optimization/36344
2472         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
2473         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
2474         (update_alias_info): Remove call clobbering code.
2475         (make_constraint_to): New helper function.
2476         (make_escape_constraint): Likewise.
2477         (handle_rhs_call): Use it on all pointer containing arguments.
2478         Also mark the static chain escaped.
2479         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
2480         instead of ANYTHING.
2481         (make_constraint_from): New helper split out from ...
2482         (make_constraint_from_anything): ... here.
2483         (find_func_aliases): Add constraints for escape sites.
2484         (intra_create_variable_infos): Make constraints from NONLOCAL
2485         for parameters.
2486         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
2487         as ANYTHING.
2488         (clobber_what_p_points_to): Remove.
2489         (clobber_what_escaped): New function.
2490         (init_base_vars): Init NONLOCAL and ESCAPED.
2491         (do_sd_constraint): Do not propagate the solution from ESCAPED
2492         but use ESCAPED as a placeholder.
2493         (solve_graph): Likewise.
2494         * tree-flow.h (clobber_what_p_points_to): Remove.
2495         (clobber_what_escaped): Declare.
2496         * tree-ssa-alias.c (set_initial_properties): Call it.
2497         Remove code clobbering escaped pointers.
2498
2499 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
2500
2501         * function.c (allocate_struct_function): Only allocate a unique
2502         funcdef_no if the decl is nonzero.
2503
2504 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
2505
2506         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
2507         * config/mips/mips.c (mips_split_const_insns): New function.
2508         * config/mips/mips.md (move_type): New attribute.
2509         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
2510         (dword_mode): New attribute.
2511         (type): Avoid long line.  Map "move_type"s to "type"s,
2512         choosing "multi" for doubleword moves if appropriate.
2513         Swap MTC/MFC comments to match their declaration order.
2514         (extended_mips16): Default to "yes" if "move_type" is "sll0",
2515         "type" is "branch" or "jal" is "direct".
2516         (length): Handle "extended_mips16" first.  Make the default
2517         "0" for "ghost" instructions.  Set the length from "move_type".
2518         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
2519         of "type", with "sll0" for the register alternative.  Remove the
2520         "extended_mips16" attribute.
2521         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
2522         of "type", with "shift_shift" for the register alternative.
2523         Remove the "length" attribute.
2524         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
2525         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
2526         of "type", with "andi" for the register alternative.
2527         (*zero_extendqihi2): Likewise.
2528         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
2529         of "andi" instead of a "type" of "arith".
2530         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
2531         instead of "type".
2532         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
2533         (mov_<store>r, *mov<mode>_ra): Likewise.
2534         (extendsidi2): Use "move_type" instead of "type", with "move"
2535         for the register alternative.
2536         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
2537         of "type", with "signext" for the register alternative.
2538         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
2539         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
2540         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
2541         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
2542         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
2543         (unnamed branch insn): Likewise.
2544         (*movdi_gp32_fp64): Fold into...
2545         (*movdi_32bit): ...here.
2546         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
2547         (*movdf_hardfloat): ...this new pattern.
2548         (*movdf_softfloat): Remove redundant FPR alternatives.
2549         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
2550         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
2551         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
2552         the "move" attribute.
2553         (*movdi_32bit): Use "move_type" instead of "type" and remove the
2554         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
2555         and "store" for COP loads and stores.
2556         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
2557         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
2558         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
2559         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
2560         (*movtf_mips16, *movv2sf): Likewise.
2561         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
2562         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
2563         (mfhc1<mode>): Use "move_type" instead of "move".
2564         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
2565         (loadgp_blockage): Remove the "length" attribute.
2566         (blockage, set_got_version, update_got_version): Likewise.
2567         (call_internal): Remove the "extended_mips16" attribute.
2568         (call_value_internal, call_value_multiple_internal): Likewise.
2569         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
2570         instead of "move".
2571         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
2572         the "length" attribute.
2573
2574 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2575
2576         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
2577         -Wcast-qual warnings.
2578         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
2579         handle_pragma_pop_macro): Likewise.
2580         * collect2.c (resolve_lib_name): Likewise.
2581         * config/arc/arc.c (arc_init): Likewise.
2582         * config/arm/arm.c (neon_builtin_compare,
2583         locate_neon_builtin_icode): Likewise.
2584         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
2585         * config/bfin/bfin.c (bfin_init_machine_status,
2586         bfin_optimize_loop): Likewise.
2587         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
2588         * config/cris/cris.c (cris_init_expanders): Likewise.
2589         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
2590         * config/darwin.c (machopic_indirection_eq,
2591         machopic_indirection_name, machopic_output_indirection): Likewise.
2592         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
2593         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
2594         frv_optimize_membar): Likewise.
2595         * config/i386/cygwin.h (mingw_scan,
2596         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
2597         * config/i386/cygwin1.c (mingw_scan): Likewise.
2598         * config/i386/i386.c (machopic_output_stub): Likewise.
2599         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
2600         i386_pe_unique_section): Likewise.
2601         * config/ia64/ia64.c (ia64_init_machine_status,
2602         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
2603         Likewise.
2604         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
2605         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
2606         * config/m68k/m68k.c (m68k_handle_option,
2607         m68k_sched_md_init_global): Likewise.
2608         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
2609         mcore_unique_section): Likewise.
2610         * config/mips/mips.c (mips_block_move_straight,
2611         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
2612         Likewise.
2613         * config/mmix/mmix.c (mmix_init_machine_status,
2614         mmix_encode_section_info): Likewise.
2615         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
2616         * config/rs6000/rs6000.c (rs6000_init_machine_status,
2617         print_operand_address, output_toc, redefine_groups,
2618         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
2619         * config/s390/s390.c (s390_init_machine_status): Likewise.
2620         * config/score/score.c (score_block_move_straight,
2621         score_block_move_loop_body): Likewise.
2622         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
2623         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
2624         * emit-rtl.c (find_auto_inc): Likewise.
2625         * gcc.c (translate_options, process_command): Likewise.
2626         * reorg.c (dbr_schedule): Likewise.
2627         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
2628         * xcoffout.c (xcoffout_declare_function): Likewise.
2629
2630 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
2631
2632         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
2633         ipa-pta working again.
2634
2635 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
2636
2637         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
2638         genautomata.
2639
2640 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
2641
2642         * config.gcc (powerpc*-*-*): Add new core e500mc.
2643         * config/rs6000/e500mc.md: New file.
2644         * config/rs6000/rs6000.c (processor_costs): Add new costs for
2645         e500mc.
2646         (rs6000_override_options): Add e500mc case to
2647         processor_target_table. Altivec and Spe options not allowed
2648         with e500mc. Add isel instruction to e500mc by
2649         default. Initialize rs6000_cost for e500mc.
2650         (rs6000_issue_rate): Set issue rate for e500mc.
2651         * config/rs6000/rs6000.h (processor_type): Add
2652         PROCESSOR_PPCE500MC.
2653         (ASM_CPU_SPEC): Add e500mc.
2654         Set TARGET_ISEL to rs6000_isel.
2655         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
2656         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
2657         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
2658         Include e500mc.md.
2659         * doc/invoke.texi: Add e500mc to list of cpus.
2660
2661 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2662
2663         PR c/34867
2664         * c-lex.c (lex_charconst): Initialize unsignedp.
2665
2666 2008-06-27  Olivier Hainque  <hainque@adacore.com>
2667
2668         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
2669         documented assumptions.
2670
2671 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
2672
2673         * dwarf2out.c: Remove trailing white spaces.  Break long line
2674         in comments.
2675
2676 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
2677
2678         * libfuncs.h (LTI_synchronize): New libfunc_index.
2679         (synchronize_libfunc): Declare.
2680         * builtins.c (expand_builtin_synchronize): Consider using
2681         synchronize_libfunc before falling back on an asm blockage.
2682         * config/mips/mips.c: Include libfuncs.h
2683         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
2684
2685 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
2686
2687         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
2688         parameter.  Copy stack_reg to r11 where appropriate.
2689         (no_global_regs_above): Add gpr parameter.
2690         (rs6000_stack_info): Only add padding for SPE save area if we
2691         are saving SPE GPRs and CR.
2692         (saveres_routine_syms): New variable.
2693         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
2694         Define.
2695         (rs6000_savres_routine_sym): New function.
2696         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
2697         split out of...
2698         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
2699         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
2700         Tweak FPR out-of-line saving.
2701         (rs6000_make_savres_rtx): New function.
2702         (rs6000_use_multiple_p): New function.
2703         (rs6000_savres_strategy): New function.
2704         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
2705         out-of-line if appropriate.
2706         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
2707         if we are optimizing for size.
2708         (GP_SAVE_INLINE): Define.
2709         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
2710         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
2711         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
2712         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
2713         (*save_fpregs_<mode>): Add use of r11.
2714         (*restore_gpregs_<mode>): New insn.
2715         (*return_and_restore_gpregs_<mode>): New insn.
2716         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
2717         use r11.
2718         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
2719         (*restore_gpregs_spe): New insn.
2720         (*return_and_restore_gpregs_spe): New insn.
2721         * config/rs6000/predicates.md (save_world_operation): Fix check.
2722
2723 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
2724
2725         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
2726         this point, so assert that.
2727
2728 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
2729
2730         * cfganal.c: Include vec.h and vecprim.h.
2731         (compute_idf): Import from...
2732         * tree-into-ssa (compute_idf): ...here.
2733         * basic-block.h (compute_idf): Export.
2734
2735 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
2736
2737         * c-decl.c (merge_decls): Use !current_function_decl to check for
2738         extern declaration of C99 inline function being at file scope.
2739
2740 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
2741
2742         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
2743
2744 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2745
2746         * alias.c (record_alias_subset, init_alias_analysis): Fix
2747         -Wc++-compat and/or -Wcast-qual warnings.
2748         * attribs.c (lookup_attribute_spec): Likewise.
2749         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
2750         copy_bb, connect_traces,
2751         find_rarely_executed_basic_blocks_and_cr): Likewise.
2752         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
2753         note_btr_set, migrate_btr_defs): Likewise.
2754         * builtins.c (result_vector, expand_builtin_memcpy,
2755         expand_builtin_mempcpy_args, expand_builtin_strncpy,
2756         builtin_memset_read_str, expand_builtin_printf,
2757         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
2758         Likewise.
2759         * caller-save.c (mark_set_regs): Likewise.
2760         * calls.c (expand_call, emit_library_call_value_1): Likewise.
2761         * cgraph.c (cgraph_edge): Likewise.
2762         * combine.c (likely_spilled_retval_1): Likewise.
2763         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
2764         htab_counts_entry_del, get_coverage_counts): Likewise.
2765         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
2766         new_cselib_val): Likewise.
2767         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
2768         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
2769         Likewise.
2770         * df-core.c (df_compact_blocks): Likewise.
2771         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
2772         * df-scan.c (df_grow_reg_info, df_ref_create,
2773         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
2774         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
2775         df_record_entry_block_defs, df_record_exit_block_uses,
2776         df_bb_verify): Likewise.
2777         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
2778         DF_REF_EXTRACT_MODE_CONST): New.
2779         * dominance.c (get_immediate_dominator, get_dominated_by,
2780         nearest_common_dominator, root_of_dom_tree,
2781         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
2782         -Wc++-compat and/or -Wcast-qual warnings.
2783         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
2784         record_store, replace_read, check_mem_read_rtx, scan_insn,
2785         dse_step1, dse_record_singleton_alias_set): Likewise.
2786         * dwarf2asm.c (dw2_force_const_mem): Likewise.
2787
2788 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2789
2790         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
2791         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
2792         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
2793         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
2794         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
2795         add_ranges_num, add_ranges_by_labels, file_info_cmp,
2796         file_name_acquire, output_file_names, add_const_value_attribute,
2797         premark_used_types_helper, file_table_eq, file_table_hash,
2798         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
2799         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
2800         -Wcast-qual warnings.
2801         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
2802         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
2803         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
2804         gen_reg_rtx, start_sequence, init_emit): Likewise.
2805         * et-forest.c (et_new_occ, et_new_tree): Likewise.
2806         * except.c (init_eh_for_function, gen_eh_region,
2807         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
2808         arh_to_landing_pad, arh_to_label, add_action_record,
2809         add_call_site, switch_to_exception_section): Likewise.
2810         * expmed.c (synth_mult): Likewise.
2811         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
2812         store_expr): Likewise.
2813         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
2814         Likewise.
2815         * function.c (assign_stack_temp_for_type,
2816         allocate_struct_function, match_asm_constraints_1): Likewise.
2817         * gcov-io.c (gcov_allocate): Likewise.
2818         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
2819         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
2820         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
2821         record_one_set, insert_expr_in_table, insert_set_in_table,
2822         dump_hash_table, compute_hash_table_work, alloc_hash_table,
2823         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
2824         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
2825         -Wcast-qual warnings.
2826
2827 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2828
2829         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
2830         -Wcast-qual warnings.
2831         * gcc.c (process_command): Likewise.
2832         * genattrtab.c (oballoc): Use XOBNEW.
2833         (oballocvec): Define.
2834         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
2835         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
2836         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
2837         -Wc++-compat and/or -Wcast-qual warnings.
2838         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
2839         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
2840         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
2841         gen_presence_absence_set, gen_automaton, gen_regexp_el,
2842         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
2843         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
2844         add_excls, process_presence_absence_names,
2845         process_presence_absence_patterns, add_presence_absence,
2846         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
2847         get_free_state, add_arc, get_free_automata_list_el,
2848         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
2849         transform_3, cache_presence, create_ainsns, create_automata,
2850         create_state_ainsn_table, dfa_insn_code_enlarge,
2851         output_trans_func, output_min_issue_delay_func,
2852         output_dead_lock_func, output_reset_func,
2853         output_get_cpu_unit_code_func, output_dfa_start_func,
2854         expand_automata): Likewise.
2855         * genextract.c (gen_insn): Likewise.
2856         * gengtype-lex.l: Likewise.
2857         * gengtype.c (read_input_list, adjust_field_type,
2858         process_gc_options): Likewise.
2859         * genoutput.c (note_constraint): Likewise.
2860         * genpreds.c (mangle, add_constraint): Likewise.
2861         * genrecog.c (process_define_predicate, new_decision,
2862         add_to_sequence): Likewise.
2863         * gensupport.c (record_insn_name): Likewise.
2864
2865 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2866
2867         * config/i386/driver-i386.c (detect_caches_amd,
2868         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
2869         and/or -Wcast-qual warnings.
2870         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
2871         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
2872         gt_pch_save): Likewise.
2873         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
2874         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
2875         * global.c (compute_regsets): Likewise.
2876         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
2877         finish_graph_dump_file): Likewise.
2878         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
2879         unlink_bb_notes): Likewise.
2880         * integrate.c (get_hard_reg_initial_val): Likewise.
2881         * ipa-prop.c (ipa_push_func_to_list): Likewise.
2882         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
2883         * local-alloc.c (update_equiv_regs): Likewise.
2884         * loop-invariant.c (check_invariant_table_size,
2885         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
2886         Likewise.
2887         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
2888         altered_reg_used, mark_altered): Likewise.
2889         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
2890         insert_var_expansion_initialization,
2891         combine_var_copies_in_loop_exit, apply_opt_in_copies,
2892         release_var_copies): Likewise.
2893         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
2894         analyze_matrix_decl, add_allocation_site, analyze_transpose,
2895         analyze_accesses_for_phi_node, check_var_notmodified_p,
2896         check_allocation_function, find_sites_in_func,
2897         record_all_accesses_in_func, transform_access_sites,
2898         transform_allocation_sites): Likewise.
2899         * omp-low.c (new_omp_region, create_omp_child_function_name,
2900         check_omp_nesting_restrictions, check_combined_parallel,
2901         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
2902         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
2903         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
2904         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
2905         Likewise.
2906         * opts-common.c (prune_options): Likewise.
2907         * opts.c (add_input_filename, print_filtered_help,
2908         get_option_state): Likewise.
2909         * params.c (add_params): Likewise.
2910         * passes.c (set_pass_for_id, next_pass_1,
2911         do_per_function_toporder, pass_fini_dump_file): Likewise.
2912         * postreload.c (reload_cse_simplify_operands): Likewise.
2913         * predict.c (tree_predicted_by_p, tree_predict_edge,
2914         clear_bb_predictions, combine_predictions_for_bb): Likewise.
2915
2916 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2917
2918         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
2919         warnings.
2920         * recog.c (check_asm_operands, validate_change_1): Likewise.
2921         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
2922         subst_asm_stack_regs): Likewise.
2923         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
2924         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
2925         * regmove.c (reg_is_remote_constant_p): Likewise.
2926         * regrename.c (regrename_optimize, scan_rtx_reg,
2927         kill_clobbered_value, kill_set_value, kill_autoinc_value):
2928         Likewise.
2929         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
2930         regstat_compute_calls_crossed): Likewise.
2931         * reload1.c (init_reload, new_insn_chain,
2932         has_nonexceptional_receiver, reload, copy_reloads,
2933         calculate_needs_all_insns, init_elim_table): Likewise.
2934         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
2935         * rtl.c (shallow_copy_rtx_stat): Likewise.
2936         * rtlanal.c (parms_set): Likewise.
2937         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
2938         sbitmap_resize, sbitmap_vector_alloc): Likewise.
2939         * sched-ebb.c (earliest_block_with_similiar_load,
2940         add_deps_for_risky_insns): Likewise.
2941         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
2942         schedule_region): Likewise.
2943         * see.c (eq_descriptor_pre_extension,
2944         hash_descriptor_pre_extension, hash_del_pre_extension,
2945         eq_descriptor_properties, hash_descriptor_properties,
2946         hash_del_properties, see_seek_pre_extension_expr,
2947         see_initialize_data_structures, see_print_register_properties,
2948         see_print_pre_extension_expr, see_delete_merged_def_extension,
2949         see_delete_unmerged_def_extension, see_emit_use_extension,
2950         see_pre_delete_extension, see_map_extension, see_commit_changes,
2951         see_analyze_merged_def_local_prop,
2952         see_analyze_merged_def_local_prop,
2953         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
2954         see_set_prop_merged_def, see_set_prop_unmerged_def,
2955         see_set_prop_unmerged_use, see_print_one_extension,
2956         see_merge_one_use_extension, see_merge_one_def_extension,
2957         see_store_reference_and_extension, see_update_uses_relevancy,
2958         see_update_defs_relevancy): Likewise.
2959         * statistics.c (hash_statistics_hash, hash_statistics_eq,
2960         hash_statistics_free, curr_statistics_hash): Likewise.
2961         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
2962         expand_asm_operands, expand_return, case_bit_test_cmp,
2963         expand_case): Likewise.
2964         * stor-layout.c (start_record_layout): Likewise.
2965         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
2966         gt_pch_save_stringpool): Likewise.
2967         * tree-data-ref.c (hash_stmt_vertex_info,
2968         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
2969         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
2970
2971 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
2972
2973         PR target/36627
2974         * config/i386/i386.md : Change constraints of HImode and QImode
2975         immediate operands from "i" to "n".  Change SImode "ni" constraint to
2976         "i" and SImode "rmi" constraint to "g".  Remove all constraints
2977         from const0_operand and const1_operand predicated operands.
2978         (i): Change QImode and HImode attribute from "i" to "n".
2979         (*subqi_2): Change HImode operands to QImode.
2980         (*subqi_3): Ditto.
2981
2982 2008-06-25  Olivier Hainque  <hainque@adacore.com>
2983
2984         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
2985         sed substitutions.
2986
2987 2008-06-25  Richard Guenther  <rguenther@suse.de>
2988
2989         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
2990         not overflow the result type.
2991
2992 2008-06-25  Richard Guenther  <rguenther@suse.de>
2993
2994         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
2995         (vn_lookup): Likewise.
2996
2997 2008-06-25  Richard Guenther  <rguenther@suse.de>
2998
2999         PR tree-optimization/35518
3000         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
3001         * tree-sra.c (instantiate_element): Use fold_build3 to build
3002         BIT_FIELD_REFs.
3003         (try_instantiate_multiple_fields): Likewise.
3004
3005 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3006
3007         * config/rs6000/rs6000.md: Change all string instruction's clobber to
3008         be early clobbers.
3009
3010 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3011
3012         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
3013         use_backchain_to_restore_sp to true
3014         if the offset of the link register save area would go over the 32k - 1
3015         offset limit of the load
3016         instructions.
3017
3018 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
3019
3020         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
3021         anchor for the type-punning blurb.  Cross-reference "Structures
3022         unions enumerations and bit-fields implementation".  Provide a
3023         cast-through-pointer example.  Make final sentence self-contained.
3024         * doc/implement-c.texi (Structures unions enumerations and
3025         bit-fields implementation): Cross-reference the type-punning blurb
3026         in the -fstrict-aliasing documentation.
3027
3028 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3029
3030         PR middle-end/36594
3031         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
3032         the memory instead of the memory itself for the save area.
3033
3034 2008-06-24  Olivier Hainque  <hainque@adacore.com>
3035             Nicolas Roche  <roche@adacore.com>
3036
3037         * gengtype.c (srcdir_len): size_t instead of int.
3038         (get_file_realbasename): New function.  For F a filename, the real
3039         basename of F, with all the path components stripped.
3040         (get_file_srcdir_relative_path): New function.  For F a filename, the
3041         relative path to F from $(srcdir).
3042         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
3043         get_file_realbasename.  Adjust the head comment.
3044         (get_prefix_langdir_index): New function. For F a filename, return the
3045         lang_dir_names[] relative index of the language directory that is
3046         a prefix in F.
3047         (get_file_langdir): For F a filename, return the name of the language
3048         directory where F is located.
3049         (get_file_gtfilename): New function. The gt- output file name for an
3050         input filename F.
3051         (get_output_file_with_visibility): Replace in-line computations with
3052         uses of get_file_gtfilename and get_prefix_langdir_index.
3053         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
3054
3055 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
3056
3057         PR tree-optimization/36504
3058         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
3059         references without base address.
3060
3061 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
3062
3063         PR middle-end/36584
3064         * calls.c (expand_call): Increase alignment for recursive functions.
3065
3066 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
3067
3068         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
3069         (TARGET_FUNCTION_VALUE): New define.
3070         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
3071         * config/avr/avr.h (FUNCTION_VALUE): Remove.
3072
3073 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
3074
3075         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
3076         (fmod<mode>3): Ditto.
3077         (remainderxf3): Ditto.
3078         (remainder<mode>3): Ditto.
3079
3080 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
3081
3082         PR target/36533
3083         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
3084         REG is a hard register.
3085
3086         PR tree-optimization/36508
3087         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
3088         499, don't check it at all in release compilers.
3089
3090 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
3091
3092         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
3093         together with SSE_TARGET_MATH to disable insn pattern.
3094         (*fop_<MODEF:mode>_2_i387): Ditto.
3095         (*fop_<MODEF:mode>_3_i387): Ditto.
3096
3097 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
3098
3099         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
3100         
3101 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3102
3103         PR middle-end/34906
3104         * gimplify.c (gimplify_asm_expr): Check the return code of
3105         parse_output_constraint call, set function return and is_inout
3106         value if it failed.
3107
3108 2008-06-22  Ian Lance Taylor  <iant@google.com>
3109
3110         * c-lex.c (narrowest_unsigned_type): Change itk to int.
3111         (narrowest_signed_type): Likewise.
3112         * c-typeck.c (c_common_type): Change local variable mclass to enum
3113         mode_class, twice.
3114         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
3115         tcc_comparison, not the tree code itself.
3116         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
3117         (c_expand_expr): Cast modifier to enum expand_modifier.
3118         * c-common.h (C_RID_CODE): Add casts.
3119         (C_SET_RID_CODE): Define.
3120         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
3121         (c_lex_one_token): Add cast to avoid warning.
3122         (c_parser_objc_type_name): Rename local typename to type_name.
3123         (check_no_duplicate_clause): Change code parameter to enum
3124         omp_clause_code.
3125         (c_parser_omp_var_list_parens): Change kind parameter to enum
3126         omp_clause_code.
3127         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
3128         c_parser_omp_list_var_parens.
3129         (c_parser_omp_threadprivate): Likewise.
3130         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
3131         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
3132         * c-format.c (NO_FMT): Define.
3133         (printf_length_specs): Use NO_FMT.
3134         (asm_fprintf_length_specs): Likewise.
3135         (gcc_diag_length_specs): Likewise.
3136         (scanf_length_specs): Likewise.
3137         (strfmon_length_specs): Likewise.
3138         (gcc_gfc_length_specs): Likewise.
3139         (printf_flag_specs): Change 0 to STD_C89.
3140         (asm_fprintf_flag_specs): Likewise.
3141         (gcc_diag_flag_specs): Likewise.
3142         (gcc_cxxdiag_flag_specs): Likewise.
3143         (scanf_flag_specs): Likewise.
3144         (strftime_flag_specs): Likewise.
3145         (strfmon_flag_specs): Likewise.
3146         (print_char_table): Likewise.
3147         (asm_fprintf_char_table): Likewise.
3148         (gcc_diag_char_table): Likewise.
3149         (gcc_tdiag_char_table): Likewise.
3150         (gcc_cdiag_char_table): Likewise.
3151         (gcc_cxxdiag_char_table): Likewise.
3152         (gcc_gfc_char_table): Likewise.
3153         (scan_char_table): Likewise.
3154         (time_char_table): Likewis.
3155         (monetary_char_table): Likewise.
3156         * c-format.h (BADLEN): Likewise.
3157
3158 2008-06-21  Ian Lance Taylor  <iant@google.com>
3159
3160         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
3161         Define END_OF_BASE_TREE_CODES around inclusion.
3162         * tree.c (tree_code_type): New global array.
3163         (tree_code_length, tree_code_name): Likewise.
3164         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
3165         $(lang_tree_files).
3166         (all-tree.def, s-alltree): New targets.
3167         (gencheck.h, s-gencheck): Remove.
3168         (tree.o): Depend upon all-tree.def.
3169         (build/gencheck.o): Remove gencheck.h dependency.
3170         (mostlyclean): Don't remove gencheck.h.
3171         * c-common.h (enum c_tree_code): Remove.
3172         * c-lang.c (tree_code_type): Remove.
3173         (tree_code_length, tree_code_name): Remove.
3174         * gencheck.c (tree_codes): Include all-tree.def, rather than
3175         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
3176         after it is used.
3177         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
3178         than tree.def.
3179         * cp/cp-tree.h (enum cplus_tree_code): Remove.
3180         (operator_name_info): Size to MAX_TREE_CODES.
3181         (assignment_operator_name_info): Likewise.
3182         * cp/cp-lang.c (tree_code_type): Remove.
3183         (tree_code_length, tree_code_name): Remove.
3184         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
3185         (assignment_operator_name_info): Likewise.
3186         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
3187         MAX_TREE_CODES.
3188         * cp/mangle.c (write_expression): Likewise.
3189         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
3190         * fortran/f95-lang.c (tree_code_type): Remove.
3191         (tree_code_length, tree_code_name): Remove.
3192         * java/java-tree.h (enum java_tree_code): Remove.
3193         * java/lang.c (tree_code_type): Remove.
3194         (tree_code_length, tree_code_name): Remove.
3195         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
3196         * objc/objc-act.h (enum objc_tree_code): Remove.
3197         * objc/objc-lang.c (tree_code_type): Remove.
3198         (tree_code_length, tree_code_name): Remove.
3199         * objcp/objcp-lang.c (tree_code_type): Remove.
3200         (tree_code_length, tree_code_name): Remove.
3201         * ada/ada-tree.h (enum gnat_tree_code): Remove.
3202         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
3203         * ada/misc.c (tree_code_type): Remove.
3204         (tree_code_length, tree_code_name): Remove.
3205
3206 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
3207
3208         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
3209         the grand_bitmap_obstack.
3210
3211 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3212
3213         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
3214         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
3215         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
3216         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
3217         move_stmt_r, new_label_mapper): Likewise.
3218         * tree-complex.c (cvc_lookup): Likewise.
3219         * tree-dfa.c (create_function_ann): Likewise.
3220         * tree-dump.c (dump_register): Likewise.
3221         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
3222         find_phi_replacement_condition): Likewise.
3223         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
3224         tree_function_versioning): Likewise.
3225         * tree-into-ssa.c (cmp_dfsnum): Likewise.
3226         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
3227         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
3228         get_nonlocal_debug_decl, convert_nonlocal_reference,
3229         convert_nonlocal_omp_clauses, get_local_debug_decl,
3230         convert_local_reference, convert_local_omp_clauses,
3231         convert_nl_goto_reference, convert_nl_goto_receiver,
3232         convert_tramp_reference, convert_call_expr): Likewise.
3233         * tree-outof-ssa.c (contains_tree_r): Likewise.
3234         * tree-parloops.c (reduction_phi, initialize_reductions,
3235         eliminate_local_variables_1, add_field_for_reduction,
3236         add_field_for_name, create_phi_for_local_result,
3237         create_call_for_reduction_1, create_loads_for_reductions,
3238         create_stores_for_reduction, create_loads_and_stores_for_name):
3239         Likewise.
3240         * tree-phinodes.c (allocate_phi_node): Likewise.
3241         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
3242         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
3243         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
3244         * tree-ssa-coalesce.c (compare_pairs): Likewise.
3245         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
3246         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
3247         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
3248         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
3249         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
3250         vn_nary_op_insert): Likewise.
3251         * tree-ssa.c (redirect_edge_var_map_add,
3252         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
3253         * tree-vectorizer.c (vectorize_loops): Likewise.
3254         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
3255         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
3256         tree_cons_stat, build1_stat, build_variant_type_copy,
3257         decl_init_priority_lookup, decl_fini_priority_lookup,
3258         decl_priority_info, decl_restrict_base_lookup,
3259         decl_restrict_base_insert, decl_debug_expr_lookup,
3260         decl_debug_expr_insert, decl_value_expr_lookup,
3261         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
3262         type_hash_add, get_file_function_name, tree_check_failed,
3263         tree_not_check_failed, tree_range_check_failed,
3264         omp_clause_range_check_failed, build_omp_clause,
3265         build_vl_exp_stat): Likewise.
3266         * value-prof.c (gimple_histogram_value,
3267         gimple_duplicate_stmt_histograms): Likewise.
3268         * var-tracking.c (attrs_list_insert, attrs_list_copy,
3269         unshare_variable, variable_union_info_cmp_pos, variable_union,
3270         dataflow_set_different_1, dataflow_set_different_2,
3271         vt_find_locations, variable_was_changed, set_variable_part,
3272         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
3273         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
3274         section_entry_hash, object_block_entry_eq,
3275         object_block_entry_hash, create_block_symbol,
3276         initialize_cold_section_name, default_function_rodata_section,
3277         strip_reg_name, set_user_assembler_name, const_desc_eq,
3278         build_constant_desc, output_constant_def, lookup_constant_def,
3279         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
3280         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
3281         default_internal_label): Likewise.
3282         * varray.c (varray_init, varray_grow): Likewise.
3283         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
3284
3285 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
3286
3287         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
3288         operators for "test" insn.  Macroize insn using SWI mode macro.
3289         (*jcc_fused_2): Ditto.
3290         (*jcc_fused_3): Macroize insn using SWI mode macro.
3291         (*jcc_fused_4): Ditto.
3292
3293 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
3294
3295         * tree-ssa-pre.c: Fix typo in comment.
3296         (init_antic, fini_antic): Add explicit funtions for
3297         initializing and deinitializing ANTIC and AVAIL sets.
3298         (create_expression_by_pieces): Fix typo in comment.
3299         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
3300         (execute_pre): Eventually dump details about ANTIC_IN.
3301
3302 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3303
3304         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
3305         * gcc.c (translate_options, init_spec, store_arg, read_specs,
3306         add_to_obstack, file_at_path, find_a_file, execute,
3307         add_preprocessor_option, add_assembler_option, add_linker_option,
3308         process_command, insert_wrapper, do_option_spec, do_self_spec,
3309         spec_path, do_spec_1, is_directory, main, used_arg,
3310         getenv_spec_function): Likewise.
3311         * tlink.c (symbol_hash_lookup, file_hash_lookup,
3312         demangled_hash_lookup, symbol_push, file_push, frob_extension):
3313         Likewise.
3314
3315 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
3316
3317         * doc/rtl.texi: Updated subreg section.
3318
3319 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
3320
3321         PR c++/36523
3322         * cgraphunit.c (cgraph_process_new_functions): Don't clear
3323         node->needed and node->reachable.
3324         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
3325         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
3326         (expand_task_call): Don't call expand_task_copyfn.
3327         (expand_task_copyfn): Renamed to...
3328         (finalize_task_copyfn): ... this.
3329
3330 2008-06-19  Jan Hubicka  <jh@suse.cz>
3331
3332         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
3333         clobbering framepointer.
3334
3335 2008-06-19  Jan Hubicka  <jh@suse.cz>
3336
3337         * tree-optimize.c (execute_early_local_optimizations): Set
3338         cgraph_state only at first invocation.
3339
3340 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3341
3342         * system.h (-Wc++-compat): Activate as a warning, no an error.
3343
3344 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
3345
3346         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
3347         instead of "#" in insn asm template.
3348         (*jcc_fused_2): Ditto.
3349
3350 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
3351
3352         * config/i386/i386.h (ix86_tune_indices)
3353         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
3354         (TARGET_FUSE_CMP_AND_BRANCH): New define.
3355         * config/i386/i386.md (*jcc_fused_1): New insn pattern
3356         (*jcc_fused_2): Ditto.
3357         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
3358         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
3359         (print operand): Handle 'E' and 'e' code.
3360
3361 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
3362
3363         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
3364         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3365         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3366
3367 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
3368
3369         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
3370         node->decl.
3371         (cgraph_expand_function): Use local copy of decl.
3372         (cgraph_expand_all_functions): Remove redundant initialization of
3373         order_pos.
3374         (cgraph_optimize): Reword internal_error message.
3375
3376 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
3377
3378         * arm-protos.h (arm_return_in_memory): Remove public
3379         arm_return_in_memory() prototype.
3380         * arm.c (arm_return_in_memory): Add static prototype, add target
3381         hook macro, change definition and comments.
3382         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
3383
3384 2008-06-19  Ben Elliston  <bje@au.ibm.com>
3385
3386         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
3387         real.c: Remove references to IEEE 754R.
3388         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
3389         * doc/libgcc.texi (Decimal float library routines): Likewise.
3390
3391 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3392
3393         * targhooks.h (struct gcc_target): New member unwind_word_mode.
3394         (default_unwind_word_mode): Add prototype.
3395         * targhooks.c (default_unwind_word_mode): New function.
3396         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
3397         instead of word_mode.
3398         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
3399         (TARGET_INITIALIZER): Use it.
3400
3401         * c-common.c (handle_mode_attribute): Support "unwind_word"
3402         mode attribute.
3403         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
3404
3405         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
3406         word_mode to access SjLj_Function_Context member "data".
3407         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
3408         conversion from targetm.eh_return_filter_mode () to
3409         targetm.unwind_word_mode () if they differ.
3410
3411         * builtin-types.def (BT_UNWINDWORD): New primitive type.
3412         (BT_FN_UNWINDWORD_PTR): New function type.
3413         (BT_FN_WORD_PTR): Remove.
3414         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
3415         * except.c (expand_builtin_extend_pointer): Convert pointer to
3416         targetm.unwind_word_mode () instead of word_mode.
3417
3418         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
3419         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
3420         (spu_unwind_word_mode): New function.
3421         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
3422         (TARGET_UNWIND_WORD_MODE): Define.
3423         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
3424
3425 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3426
3427         * config/spu/spu.c (reg_align): Remove.
3428         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
3429         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
3430         (spu_split_store): Likewise.
3431
3432 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
3433
3434         * gcc/tree-vn.c: Fix typo in comment.
3435
3436 2008-06-18  Jan Hubicka  <jh@suse.cz>
3437
3438         * cgraphunit.c (cgraph_optimize): Output debug info when doing
3439         toplevel reorder too.
3440
3441 2008-06-18  Jan Hubicka  <jh@suse.cz>
3442
3443         * c-opts.c (c_common_post_options): PCH is not compatible with
3444         no-unit-at-a-time.
3445         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
3446         -fno-toplevel-reorder by default now.
3447
3448 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3449
3450         PR documentation/30739
3451         * doc/install.texi (Prerequisites): Document dependency on awk.
3452
3453 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
3454             Ian Lance Taylor  <iant@google.com>
3455
3456         PR rtl-optimization/35604
3457         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
3458         only want to change jump destinations, not eventual label comparisons.
3459
3460 2008-06-16  Jan Hubicka  <jh@suse.cz>
3461
3462         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
3463         syntax errors.
3464         (cgraph_analyze_function): Likewise.
3465
3466 2008-06-16  Jan Hubicka  <jh@suse.cz>
3467
3468         * cgraph.h (cgraph_mark_if_needed): New function.
3469         * cgraphunit.c (cgraph_mark_if_needed): New function.
3470         * c-decl.c (duplicate_decl): Use it.
3471
3472 2008-06-16  Jan Hubicka  <jh@suse.cz>
3473
3474         * cgraph.c (cgraph_add_new_function): When in expansion state, do
3475         lowering.
3476
3477 2008-06-16  Jan Hubicka  <jh@suse.cz>
3478
3479         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
3480
3481 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
3482             Kazu Hirata  <kazu@codesourcery.com>
3483             Maxim Kuvyrkov  <maxim@codesourcery.com
3484
3485         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
3486         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
3487         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
3488         EXTRA_SPEC_FUNCTIONS.
3489         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
3490         (DRIVER_SELF_SPECS): Adjust.
3491         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
3492         * config/mips/st.h, config/mips/t-st: New.
3493         * config/mips/driver-native.c, config/mips/x-native: New.
3494         * doc/invoke.texi (MIPS): Document 'native' value for -march and
3495         -mtune options.
3496
3497 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
3498
3499         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
3500         from it.
3501         (ISA_HAS_FP_CONDMOVE): New macro.
3502         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
3503         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
3504         (ISA_HAS_NMADD3_NMSUB3): New macro.
3505         * config/mips/mips.c (mips_rtx_costs): Update.
3506         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
3507         compiling for ST Loongson 2E/2F.
3508         (madd<mode>): Rename to madd4<mode>.  Update.
3509         (madd3<mode>): New pattern.
3510         (msub<mode>): Rename to msub4<mode>.  Update.
3511         (msub3<mode>): New pattern.
3512         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
3513         (nmadd3<mode>): New pattern.
3514         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
3515         (nmadd3<mode>_fastmath): New pattern.
3516         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
3517         (nmsub3<mode>): New pattern.
3518         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
3519         (nmsub3<mode>_fastmath): New pattern.
3520         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
3521
3522 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
3523
3524         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
3525         (DF_REF_INSN_INFO): New.
3526         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
3527         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
3528         with a NULL DF_REF_INSN_INFO.
3529         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
3530         DF_INSN_SET.
3531         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
3532         DF_INSN_INFO_EQ_USES): New.
3533         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
3534         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
3535         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
3536         * df-core.c: Update comment for above changes.
3537         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
3538         DF_INSN_UID_* macros.
3539         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
3540         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
3541         insn rtx.  Update all callers.
3542         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
3543         df_ref_create_structure, df_insn_refs_collect): Likewise.
3544         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
3545         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
3546         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
3547         macros to access the insn refs.
3548         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
3549         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
3550         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
3551         for accessing the refs.
3552         (try_fwprop_subst): Likewise.
3553         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
3554         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
3555         for accessing the refs.
3556         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
3557         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
3558         to look at the insn refs.
3559         (record_uses): Likewise.
3560         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
3561         function anymore.
3562         (mark_artificial_uses): Don't mark_insn for artificial refs.
3563         (mark_reg_rependencies): Likewise.
3564
3565         * doc/rtl.texi: Remove documentation of ADDRESSOF.
3566
3567 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3568
3569         * configure: Regenerate.
3570
3571 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
3572
3573         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
3574         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
3575         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
3576
3577 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
3578
3579         * config/avr/avr.c (avr_mcu_t): Add attiny167.
3580         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
3581         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
3582
3583 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
3584
3585         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
3586         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
3587         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
3588
3589 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
3590
3591         * tree-ssa-sccvn.c: Fix format of comments.
3592
3593 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
3594
3595         * cgraph.c: Remove unneeded forward declarations of eq_node()
3596         and hash_node().
3597
3598 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
3599
3600         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
3601         REG_RETVAL notes.
3602         (see_update_relevancy): Likewise.
3603         * fwprop.c (try_fwprop_subst): Likewise.
3604         * rtlanal.c (noop_move_p): Likewise.
3605         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
3606         notes to non-existing libcall blocks.
3607         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
3608         Remove orig_set.
3609         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
3610         (dead_libcall_p): Remove.
3611         (delete_trivially_dead_insns): Don't use it.
3612         * web.c (union_defs): Remove comment about keeping nops.
3613         * gcse.c (hash_scan_insn): Don't take libcall pointers.
3614         (compute_hash_table_work): Don't track libcall notes.
3615         (do_local_cprop): Don't take libcall pointers.  Don't update
3616         libcall notes.
3617         (adjust_libcall_notes): Deleted.
3618         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
3619         ever have existed in the first place).
3620         (replace_store_insn): Don't try to remove libcall notes.
3621         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
3622         (resolve_reg_notes): Don't call them.
3623         (resolve_simple_move): Likewise.
3624         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
3625         Don't remove REG_RETVAL notes.
3626         * emit-rtl.c (try_split): Don't update libcall notes.
3627         (emit_copy_of_insn_after): Dito.
3628         * cselib.c (cselib_current_insn_in_libcall): Remove.
3629         (cselib_process_insn): Don't set/clear it.
3630         (new_elt_loc_list): Don't record it.
3631         (cselib_init): Don't initialize it.
3632         * cselib.c (struct elt_loc_list): Remove in_libcall field.
3633         * loop-invariant.c (find_invariant_insn): Don't look for libcall
3634         notes.
3635         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
3636         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
3637         (init_deps): Don't initialize it.
3638         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
3639         * combine.c (delete_noop_moves): Don't update libcall notes.
3640         (can_combine_p): Remove now pointless #if 0 block.
3641         (try_combine): Remove another obsolete #if 0 block.
3642         (distribute_notes): Don't distribute libcall notes.
3643         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
3644         * dce.c (libcall_dead_p): Remove.
3645         (delete_unmarked_insns): Don't handle libcall blocks.
3646         (preserve_libcall_for_dce): Remove.
3647         (prescan_insns_for_dce): Don't special-case libcall block insns.
3648         * reload1 (reload): Don't handle libcall notes. 
3649         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
3650         documentation.
3651
3652 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
3653
3654         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
3655         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
3656         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3657
3658 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
3659
3660         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
3661         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
3662         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
3663
3664 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3665
3666         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
3667
3668 2008-06-16  Ira Rosen  <irar@il.ibm.com>
3669
3670         PR tree-optimization/36493
3671         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
3672         the arguments list. Use VECTYPE to create vector pointer.
3673         (vectorizable_store): Fail if accesses through a pointer to vectype
3674         do not alias the original memory reference operands.
3675         Call vect_create_data_ref_ptr without the removed argument.
3676         (vectorizable_load): Likewise.
3677         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
3678         removed argument.
3679
3680 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
3681
3682         PR target/36336
3683         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
3684         reg_equiv_constant.
3685
3686 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
3687
3688         * config/mips/loongson2ef.md: New file.
3689         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
3690         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
3691         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
3692         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
3693         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
3694         and loongson_2f.
3695         (loongson2ef.md): New include.
3696         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
3697         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
3698         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
3699         (loongson_gt_<mode>, loongson_extract_halfword)
3700         (loongson_insert_halfword_0, loongson_insert_halfword_2)
3701         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
3702         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
3703         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
3704         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
3705         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
3706         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
3707         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
3708         (vec_interleave_low<mode>): Define type attribute.
3709         * config/mips/mips.c (mips_ls2): New static variable.
3710         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
3711         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
3712         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
3713         Implement target scheduling hooks.
3714         (mips_multipass_dfa_lookahead): Update to handle tuning for
3715         Loongson 2E/2F.
3716         (mips_sched_init): Initialize data for Loongson scheduling.
3717         (mips_ls2_variable_issue): New static function.
3718         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
3719         Add sanity check.
3720         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
3721         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
3722         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
3723         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
3724         Handle ST Loongson 2E/2F cores.
3725         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
3726
3727 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3728
3729         * omp-low.c (extract_omp_for_data): Fix comment typo.
3730         * c.opt: Fix typo.
3731
3732 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3733
3734         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
3735         FIXME note about gcc/config.guess.
3736         * doc/options.texi (Option file format): Remove non-ASCII bytes.
3737         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
3738         * doc/cppopts.texi: Likewise.
3739         * doc/extend.texi: Likewise.
3740         * doc/gcc.texi: Likewise.
3741         * doc/gccint.texi: Likewise.
3742         * doc/gcov.texi: Likewise.
3743         * doc/gty.texi: Likewise.
3744         * doc/hostconfig.texi: Likewise.
3745         * doc/install.texi: Likewise.
3746         * doc/invoke.texi: Likewise.
3747         * doc/loop.texi: Likewise.
3748         * doc/makefile.texi: Likewise.
3749         * doc/md.texi: Likewise.
3750         * doc/passes.texi: Likewise.
3751         * doc/tm.texi: Likewise.
3752         * doc/tree-ssa.texi: Likewise.
3753         * doc/trouble.texi: Likewise.
3754
3755 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
3756             Nathan Sidwell  <nathan@codesourcery.com>
3757             Maxim Kuvyrkov  <maxim@codesourcery.com>
3758             Richard Sandiford  <rdsandiford@googlemail.com>
3759         
3760         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
3761         * config/mips/mips-protos.h (mips_expand_vector_init): New.
3762         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
3763         builtins.
3764         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
3765         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
3766         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
3767         V8QImode cases.
3768         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
3769         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
3770         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
3771         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
3772         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
3773         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
3774         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
3775         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
3776         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
3777         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
3778         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
3779         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
3780         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
3781         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
3782         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
3783         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
3784         (mips_builtins): Add Loongson builtins.
3785         (mips_loongson_2ef_bdesc): New.
3786         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
3787         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
3788         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
3789         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
3790         New.
3791         (mips_expand_vector_init): New.
3792         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
3793         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
3794         if appropriate.
3795         * config/mips/mips.md: Add unspec numbers for Loongson
3796         builtins.  Include loongson.md.
3797         (MOVE64): Include Loongson vector modes.
3798         (SPLITF): Include Loongson vector modes.
3799         (HALFMODE): Handle Loongson vector modes.
3800         * config/mips/loongson.md: New.
3801         * config/mips/loongson.h: New.
3802         * config.gcc: Add loongson.h header for mips*-*-* targets.
3803         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
3804
3805 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
3806
3807         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
3808         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
3809         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
3810         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
3811         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
3812         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
3813         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
3814         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
3815         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
3816         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
3817         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
3818         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
3819         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
3820         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
3821         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
3822         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
3823         Remove use_fixproto=yes.
3824         (ia64*-*-hpux*): Remove comment about using fixproto.
3825         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
3826
3827 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3828
3829         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
3830         library rebuilds.
3831         * configure: Regenerate.
3832
3833 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
3834
3835         PR middle-end/36520
3836         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
3837         before evaluating it.
3838
3839 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
3840
3841         PR c/36507
3842         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
3843         nested inline functions.
3844         (start_decl, start_function): Don't invert DECL_EXTERNAL
3845         for nested inline functions.
3846
3847 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
3848
3849         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
3850         splits that must be made for correctness.
3851
3852 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
3853
3854         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
3855         (AVAIL_NON_MIPS16): Likewise.
3856         (mips_builtin_description): Replace target_flags with a predicate.
3857         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
3858         (dspr2_32): New availability predicates.
3859         (MIPS_BUILTIN): New macro.
3860         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
3861         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
3862         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
3863         Replace the TARGET_FLAGS parameters with AVAIL parameters.
3864         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
3865         (mips_dsp_32only_bdesc): Merge into...
3866         (mips_builtins): ...this new array.
3867         (mips_bdesc_map, mips_bdesc_arrays): Delete.
3868         (mips_init_builtins): Update after above changes.
3869         (mips_expand_builtin_1): Merge into...
3870         (mips_expand_builtin): ...here and update after above changes.
3871
3872 2008-06-12  Paul Brook  <paul@codesourcery.com>
3873
3874         * longlong.h (__arm__): Define count_leading_zeros.
3875         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
3876         (clzsi2, clzdi2): New functions.
3877         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
3878         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
3879         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
3880         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
3881         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
3882         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
3883         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
3884         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
3885         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
3886         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
3887
3888 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
3889
3890         * config/m68k/m68k.c (m68k_tune_flags): New.
3891         (override_options): Compute m68k_tune_flags.
3892         (MULL_COST, MULW_COST): Update for various variants of CFV2.
3893         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
3894
3895 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
3896
3897         PR middle-end/36506
3898         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
3899
3900 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
3901
3902         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
3903         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
3904
3905 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
3906
3907         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
3908         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
3909
3910 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
3911
3912         PR middle-end/36506
3913         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
3914         reductions.
3915
3916 2008-06-12  Richard Guenther  <rguenther@suse.de>
3917
3918         PR tree-optimization/36345
3919         * tree-flow.h (struct ptr_info_def): Align escape_mask,
3920         add memory_tag_needed flag.
3921         (may_alias_p): Declare.
3922         * tree-ssa-alias.c (may_alias_p): Export.
3923         (set_initial_properties): Use memory_tag_needed flag.
3924         (update_reference_counts): Likewise.
3925         (reset_alias_info): Reset memory_tag_needed flag.
3926         (create_name_tags): Check memory_tag_needed flag.
3927         (dump_points_to_info_for): Dump it.
3928         * tree-ssa-structalias.c (struct variable_info): Remove
3929         directly_dereferenced flag.
3930         (new_var_info): Do not initialize it.
3931         (process_constraint_1): Do not set it.
3932         (update_alias_info): Set is_dereferenced flag.
3933         (set_uids_in_ptset): Use may_alias_p.
3934         (set_used_smts): Check memory_tag_needed flag.
3935         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
3936         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
3937         memory_tag_needed flag.
3938         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
3939         from broken design.
3940
3941 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
3942
3943         * config/i386/i386.c (ix86_compute_frame_layout): Disable
3944         red zone for w64 abi.
3945         (ix86_expand_prologue): Likewise.
3946         (ix86_force_to_memory): Likewise.
3947         (ix86_free_from_memory): Likewise.
3948
3949 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
3950
3951         PR target/36425
3952         * config/rs6000/rs6000.c (rs6000_override_options): Set
3953         rs6000_isel conditionally to the absence of comand line override.
3954         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
3955         Remove duplicate rs6000_isel setting.
3956         * config/rs6000/eabispe.h: Ditto.
3957
3958 2008-06-11  Richard Guenther  <rguenther@suse.de>
3959
3960         * alias.c (get_alias_set): Use the element alias-set for arrays.
3961         (record_component_aliases): For arrays and vectors do nothing.
3962         * c-common.c (strict_aliasing_warning): Handle the cases
3963         of alias set zero explicitly.
3964         * Makefile.in (dfp.o-warn): Add -Wno-error.
3965
3966 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
3967
3968         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
3969         tune_32 tune_64.
3970         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
3971         tune_32 tune_64 to supported_defaults.  Allow values not
3972         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
3973         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
3974         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
3975         with_cpu_64 to generic for 64-bit-supporting configurations, not
3976         with_cpu.  Remove FIXMEs.
3977         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
3978         --with-arch-64, --with-tune-32, --with-tune-64): Document.
3979         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
3980         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
3981         arch_32 and arch_64.
3982
3983 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
3984             Olivier Hainque  <hainque@adacore.com>
3985
3986         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
3987         Use DECL_SIZE_UNIT to retrieve the size of the field.
3988
3989 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
3990
3991         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
3992         with function calls after declarations.  Lay out
3993         neon_float_type_node before further use.
3994
3995 2008-06-11  Richard Guenther  <rguenther@suse.de>
3996
3997         * tree-flow.h (may_point_to_global_var): Declare.
3998         * tree-ssa-alias.c (may_point_to_global_var): New function.
3999         * tree-ssa-sink.c (is_hidden_global_store): Use it.
4000
4001 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
4002
4003         * configure.ac: Teach that fido supports .debug_line.
4004         * configure: Regenerate.
4005
4006 2008-06-10  Tom Tromey  <tromey@redhat.com>
4007
4008         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
4009         debug hook.
4010
4011 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
4012
4013         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
4014         (encode_decimal64, decode_decimal64, encode_decimal128,
4015         decode_decimal128): Reverse order of 32-bit parts of value if host
4016         and target endianness differ.
4017
4018 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
4019
4020         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
4021         Avoid division by 0.
4022         (tree_mod_pow2_value_transform): Likewise.
4023         (tree_ic_transform): Likewise.
4024         (tree_stringops_transform): Likewise.
4025         (tree_mod_subtract_transform): Likewise.
4026         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
4027         (copy_edges_for_bb): Likewise.
4028         (initialize_cfun): Likewise.
4029
4030 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
4031
4032         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
4033         nonmemory_operand. Add "N" operand constraint.
4034         (*btsi): Ditto.
4035         (*jcc_btdi_mask_rex64): New instruction and split pattern.
4036         (*jcc_btsi_mask): Ditto.
4037         (*jcc_btsi_mask_1): Ditto.
4038
4039 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
4040
4041         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
4042         TYPE_CANONICAL for copied element type.
4043
4044 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
4045
4046         PR target/36473
4047         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
4048         Add m_CORE2 and m_GENERIC.
4049         * config/i386/predicates.md (bt_comparison_operator): New predicate.
4050         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
4051         (*btsi): Ditto.
4052         (*jcc_btdi_rex64): New instruction and split pattern.
4053         (*jcc_btsi): Ditto.
4054         (*jcc_btsi_1): Ditto.
4055         (*btsq): Fix Intel asm dialect operand order.
4056         (*btrq): Ditto.
4057         (*btcq): Ditto.
4058
4059 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
4060
4061         PR middle-end/36447
4062         * simplify-rtx.c (simplify_subreg): Add check for shift count 
4063         greater than size.
4064
4065 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
4066
4067         * doc/md.texi: Synchronize with later constraints.md change.
4068         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
4069         with a C implementation.
4070         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
4071         MFLO handling.
4072         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
4073         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
4074         when moving to and from MD_REGNUM.
4075         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
4076         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
4077         Handle byte and halfword moves.
4078         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
4079         separately.
4080         * config/mips/constraints.md (h): Turn into NO_REGS.
4081         (l, x): Update documentation.
4082         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
4083         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
4084         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
4085         (HILO): New mode iterator.
4086         (MOVE128): Add TI.
4087         (any_div): New code iterator.
4088         (u): Extend code attribute to div and udiv.
4089         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
4090         d_operand in the splitters.  Remove redundant CONST_INT checks.
4091         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
4092         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
4093         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
4094         accordingly, using normal moves instead of unspecs to move LO into
4095         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
4096         (<u>mulsidi3): Handle expansion in C code.
4097         (<u>mulsidi3_32bit_internal): Rename to...
4098         (<u>mulsidi3_32bit): ...this.
4099         (<u>mulsidi3_32bit_r4000): Fix insn separator.
4100         (*<u>mulsidi3_64bit): Rename to...
4101         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
4102         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
4103         to set LO and HI to the multiplication result.  Use a normal move
4104         for MFLO and an unspec for MFHI.
4105         (*<u>mulsidi3_64bit_parts): Replace with...
4106         (<u>mulsidi3_64bit_hilo): ...this new instruction.
4107         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
4108         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
4109         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
4110         instead of HI.  Split the instruction into a separate multiplication
4111         and MFHI if !TARGET_FIX_R4000.
4112         (<su>muldi3_highpart): Likewise.
4113         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
4114         and the "=h" clobber.
4115         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
4116         (<u>mulditi3): New expander.
4117         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
4118         (madsi): Remove "=h" clobber.
4119         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
4120         Force the modulus result to be a GPR and split the instruction into
4121         a division followed by an MFHI after reload.
4122         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
4123         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
4124         the MIPS16 HIGH define_split.
4125         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
4126         of acc<->gpr moves to "multi".
4127         (*movdi_64bit): Replace the single "x" alternative with
4128         alternatives for moving into and out of "a".
4129         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
4130         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
4131         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
4132         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
4133         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
4134         (movti): New expander.
4135         (*movti, *movti_mips16): New insns.
4136         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
4137         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
4138         (mthi<GPR:mode>_<HILO:mode>): Likewise.
4139         * config/mips/predicates.md (fpr_operand): Delete.
4140         (d_operand): New predicate.
4141
4142 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
4143
4144         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
4145         failure on some Bourne shells.
4146         (x86_64-*-*): Ditto.
4147
4148 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
4149
4150         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
4151
4152 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
4153
4154         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
4155         (sparc-sun-solaris2*): Likewise.
4156
4157 2008-06-09  Arnaud Charlet  <charlet@adacore.com
4158
4159         * doc/install.texi: Update requirements to build the Ada compiler.
4160
4161 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
4162
4163         * df-scan.c (struct df_scan_problem_data): Remove the
4164         mw_link_pool alloc pool.
4165         (df_scan_free_internal): Don't free it.
4166         (df_scan_alloc): Don't allocate it.
4167         * df.h (struct df_link): Update comment.
4168
4169 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
4170
4171         * except.h: Correct checks for when SJLJ exceptions must be used.
4172
4173 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4174
4175         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
4176         default.
4177         
4178 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
4179
4180         PR tree-optimization/36218
4181         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
4182         configure for the build system.
4183         (BUILD_LDFLAGS): Define.
4184         * configure: Regenerate.
4185         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
4186
4187 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
4188
4189         PR target/36424
4190         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
4191         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
4192         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
4193
4194 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
4195
4196         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
4197
4198 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
4199
4200         * config.gcc (Obsolete configurations): Remove list of
4201         configurations.
4202         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
4203         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
4204         targets matched by those patterns.
4205         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
4206         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
4207         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
4208         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
4209         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
4210         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
4211         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
4212         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
4213         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
4214         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
4215         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
4216         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
4217         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
4218         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
4219         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
4220         Make code for Solaris 7 and greater unconditional for Solaris.
4221         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
4222         Remove --with-* handling.
4223         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
4224         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
4225         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
4226         LINK_OS_WINDISS_SPEC): Remove.
4227         * config/rs6000/sysv4.opt (mwindiss): Remove.
4228         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
4229         * configure: Regenerate.
4230         * doc/cpp.texi: Don't mention BeOS.
4231         * doc/extend.texi (interrupt): Don't mention MS1.
4232         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
4233         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
4234         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
4235         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
4236         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
4237         Remove.
4238         * doc/invoke.texi (MT Options): Remove.
4239         (-mwindiss): Remove.
4240         (CRIS Options): Remove cris-axis-aout references.
4241         (HPPA Options): Don't mention hppa1.1-*-pro.
4242         * doc/md.texi: (MorphoTech family): Remove.
4243         * libgcc2.c: Don't handle UWIN.
4244         * config/alpha/t-unicosmk: Remove.
4245         * config/alpha/unicosmk.h: Remove.
4246         * config/arm/kaos-arm.h: Remove.
4247         * config/arm/kaos-strongarm.h: Remove.
4248         * config/arm/strongarm-coff.h: Remove.
4249         * config/arm/strongarm-elf.h: Remove.
4250         * config/arm/strongarm-pe.h: Remove.
4251         * config/arm/t-strongarm-pe: Remove.
4252         * config/arm/t-xscale-coff: Remove.
4253         * config/arm/t-xscale-elf: Remove.
4254         * config/arm/xscale-coff.h: Remove.
4255         * config/arm/xscale-elf.h: Remove.
4256         * config/chorus.h: Remove.
4257         * config/cris/aout.h: Remove.
4258         * config/cris/aout.opt: Remove.
4259         * config/cris/t-aout: Remove.
4260         * config/i386/beos-elf.h: Remove.
4261         * config/i386/kaos-i386.h: Remove.
4262         * config/i386/ptx4-i.h: Remove.
4263         * config/i386/sco5.h: Remove.
4264         * config/i386/sco5.opt: Remove.
4265         * config/i386/sysv4-cpp.h: Remove.
4266         * config/i386/sysv5.h: Remove.
4267         * config/i386/t-beos: Remove.
4268         * config/i386/t-sco5: Remove.
4269         * config/i386/t-uwin: Remove.
4270         * config/i386/uwin.asm: Remove.
4271         * config/i386/uwin.h: Remove.
4272         * config/kaos.h: Remove.
4273         * config/mips/windiss.h: Remove.
4274         * config/mt: Remove directory.
4275         * config/pa/pa-osf.h: Remove.
4276         * config/pa/pa-pro-end.h: Remove.
4277         * config/pa/t-pro: Remove.
4278         * config/ptx4.h: Remove.
4279         * config/rs6000/beos.h: Remove.
4280         * config/rs6000/kaos-ppc.h: Remove.
4281         * config/rs6000/t-beos: Remove.
4282         * config/rs6000/windiss.h: Remove.
4283         * config/sh/kaos-sh.h: Remove.
4284         * config/sol2-6.h: Remove.
4285         * config/sparc/sol26-sld.h: Remove.
4286         * config/sparc/sysv4-only.h: Remove.
4287         * config/vax/bsd.h: Remove.
4288         * config/vax/t-memfuncs: Remove.
4289         * config/vax/ultrix.h: Remove.
4290         * config/vax/vaxv.h: Remove.
4291         * config/windiss.h: Remove.
4292
4293 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
4294
4295         PR rtl-optimization/36438
4296         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
4297         for vector shifts with constant scalar shift operands.
4298
4299 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
4300
4301         * doc/invoke.texi: Document -march=xlr.
4302         * config/mips/xlr.md: New file.
4303         * config/mips/mips.md: Include it.
4304         (cpu): Add "xlr".
4305         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
4306         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
4307         (mips_rtx_cost_data): Likewise.
4308
4309 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
4310
4311         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
4312         PRE_INC and PRE_DEC cases.
4313
4314 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
4315
4316         PR rtl-optimization/36419
4317         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
4318         the emitting jump insn.
4319
4320         PR target/36362
4321         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
4322         is not bool, boolify the whole *expr_p and convert to the desired type.
4323
4324 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
4325
4326         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
4327         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
4328         Add omp_private_outer_ref hook, add another argument to
4329         omp_clause_default_ctor hook.
4330         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
4331         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
4332         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
4333         hook_tree_tree_tree_tree_null.
4334         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
4335         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
4336         * hooks.c (hook_tree_tree_tree_tree_null): New function.
4337         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
4338         * tree.def (OMP_TASK): New tree code.
4339         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
4340         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
4341         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
4342         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
4343         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
4344         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
4345         OMP_CLAUSE_COLLAPSE_EXPR): Define.
4346         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
4347         (OMP_DIRECTIVE_P): Add OMP_TASK.
4348         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
4349         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
4350         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
4351         and OMP_CLAUSE_UNTIED entries.
4352         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
4353         num_ops to 2.
4354         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
4355         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
4356         * tree-pretty-print.c (dump_omp_clause): Handle
4357         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
4358         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
4359         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
4360         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
4361         warning about unsigned iterators.  Change decl/init/cond/incr
4362         arguments to TREE_VECs, check arguments for all collapsed loops.
4363         (c_finish_omp_taskwait): New function.
4364         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
4365         ws_clauses.
4366         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
4367         default_function_array_conversion on init.  Add par_clauses argument.
4368         If decl is present in parallel's lastprivate clause, change it to
4369         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
4370         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
4371         collapse count in clauses.
4372         (c_parser_omp_for, c_parser_omp_parallel): Adjust
4373         c_parser_omp_for_loop callers.
4374         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
4375         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
4376         (c_parser_omp_clause_name): Handle collapse and untied clauses.
4377         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
4378         functions.
4379         (c_parser_omp_clause_schedule): Handle schedule(auto).
4380         Include correct location in the error message.
4381         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
4382         and PRAGMA_OMP_CLAUSE_UNTIED.
4383         (OMP_TASK_CLAUSE_MASK): Define.
4384         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
4385         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
4386         * tree-nested.c (convert_nonlocal_omp_clauses,
4387         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
4388         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
4389         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
4390         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
4391         OMP_CLAUSE_DECL.
4392         (conver_nonlocal_reference, convert_local_reference,
4393         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
4394         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
4395         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
4396         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
4397         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
4398         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
4399         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
4400         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
4401         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
4402         OMP_CLAUSE_UNTIED.
4403         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
4404         * c-common.h (c_finish_omp_taskwait): New prototype.
4405         * gimple-low.c (lower_stmt): Handle OMP_TASK.
4406         * tree-parloops.c (create_parallel_loop): Create 1 entry
4407         vectors for OMP_FOR_{INIT,COND,INCR}.
4408         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
4409         (make_edges): Handle OMP_TASK.
4410         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
4411         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
4412         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
4413         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
4414         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
4415         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
4416         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
4417         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
4418         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
4419         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
4420         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
4421         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
4422         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
4423         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
4424         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
4425         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
4426         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
4427         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
4428         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
4429         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
4430         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
4431         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
4432         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
4433         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
4434         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
4435         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
4436         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
4437         original iterator is present in lastprivate clause or if
4438         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
4439         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
4440         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
4441         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
4442         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
4443         if it is set, lookup var in outer contexts too.  Handle
4444         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
4445         to be implicitly determined firstprivate for task regions.
4446         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
4447         if it is set, lookup var in outer contexts too.  Set
4448         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
4449         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
4450         OMP_CLAUSE_UNTIED.  Take region_type as last argument
4451         instead of in_parallel and in_combined_parallel.
4452         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
4453         Adjust callers.
4454         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
4455         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
4456         (new_omp_context): Set default_kind to
4457         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
4458         (omp_region_type): New enum.
4459         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
4460         fields, add region_type.
4461         (new_omp_context): Take region_type as argument instead of is_parallel
4462         and is_combined_parallel.
4463         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
4464         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
4465         ctx->is_combined_parallel checks.
4466         (gimplify_omp_task): New function.
4467         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
4468         OMP_CLAUSE_UNTIED.
4469         * omp-low.c (extract_omp_for_data): Use schedule(static)
4470         for schedule(auto).  Handle pointer and unsigned iterators.
4471         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
4472         Add loops argument.  Extract data for collapsed OMP_FOR loops.
4473         (expand_parallel_call): Assert sched_kind isn't auto,
4474         map runtime schedule to index 3.
4475         (struct omp_for_data_loop): New type.
4476         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
4477         Add loop, loops, collapse and iter_type fields.
4478         (workshare_safe_to_combine_p): Disallow combined for if
4479         iter_type is unsigned long long.  Don't combine collapse > 1 loops
4480         unless all bounds and steps are constant.  Adjust extract_omp_for_data
4481         caller.
4482         (expand_omp_for_generic): Handle pointer, unsigned and long long
4483         iterators.  Handle collapsed OMP_FOR loops.  Adjust
4484         for struct omp_for_data changes.  If libgomp function doesn't return
4485         boolean_type_node, add comparison of the return value with 0.
4486         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
4487         pointer, unsigned and long long iterators.  Adjust for struct
4488         omp_for_data changes.
4489         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
4490         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
4491         unsigned long long.  Allocate loops array, pass it to
4492         extract_omp_for_data.  For collapse > 1 loops use always
4493         expand_omp_for_generic.
4494         (omp_context): Add sfield_map and srecord_type fields.
4495         (is_task_ctx, lookup_sfield): New functions.
4496         (use_pointer_for_field): Use is_task_ctx helper.  Change first
4497         argument's type from const_tree to tree.  Clarify comment.
4498         In OMP_TASK disallow copy-in/out sharing.
4499         (build_sender_ref): Call lookup_sfield instead of lookup_field.
4500         (install_var_field): Add mask argument.  Populate both record_type
4501         and srecord_type if needed.
4502         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
4503         in srecord_type.
4504         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
4505         and DECL_FIELD_OFFSET.
4506         (scan_sharing_clauses): Adjust install_var_field callers.  For
4507         firstprivate clauses on explicit tasks allocate the var by value in
4508         record_type unconditionally, rather than by reference.
4509         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
4510         Use is_taskreg_ctx instead of is_parallel_ctx.
4511         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
4512         (create_omp_child_function_name): Add task_copy argument, use
4513         *_omp_cpyfn* names if it is true.
4514         (create_omp_child_function): Add task_copy argument, if true create
4515         *_omp_cpyfn* helper function.
4516         (scan_omp_parallel): Adjust create_omp_child_function callers.
4517         Rename parallel_nesting_level to taskreg_nesting_level.
4518         (scan_omp_task): New function.
4519         (lower_rec_input_clauses): Don't run constructors for firstprivate
4520         explicit task vars which are initialized by *_omp_cpyfn*.  
4521         Pass outer var ref to omp_clause_default_ctor hook if
4522         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
4523         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
4524         OMP_CLAUSE_REDUCTION_INIT.
4525         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
4526         avoid duplicate setting of fields.  Handle
4527         OMP_CLAUSE_PRIVATE_OUTER_REF.
4528         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
4529         copy-out if TREE_READONLY, only copy-in.
4530         (expand_task_copyfn): New function.
4531         (expand_task_call): New function.
4532         (struct omp_taskcopy_context): New type.
4533         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
4534         New functions.
4535         (lower_omp_parallel): Rename to...
4536         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
4537         Call create_task_copyfn if srecord_type is needed.  Adjust
4538         sender_decl type.
4539         (task_shared_vars): New variable.
4540         (check_omp_nesting_restrictions): Warn if work-sharing,
4541         barrier, master or ordered region is closely nested inside OMP_TASK.
4542         Add warnings for barrier if closely nested inside of work-sharing,
4543         ordered, or master region.
4544         (scan_omp_1): Call check_omp_nesting_restrictions even for
4545         GOMP_barrier calls.  Rename parallel_nesting_level to
4546         taskreg_nesting_level.  Handle OMP_TASK.
4547         (lower_lastprivate_clauses): Even if some lastprivate is found on a
4548         work-sharing construct, continue looking for them on parent parallel
4549         construct.
4550         (lower_omp_for_lastprivate): Add lastprivate clauses
4551         to the beginning of dlist rather than end.  Adjust for struct
4552         omp_for_data changes.
4553         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
4554         not after it.  Handle collapsed OMP_FOR loops, adjust for
4555         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
4556         (get_ws_args_for): Adjust extract_omp_for_data caller.
4557         (scan_omp_for): Handle collapsed OMP_FOR
4558         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
4559         (lower_omp_single_simple): If libgomp function doesn't return
4560         boolean_type_node, add comparison of the return value with 0.
4561         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
4562         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
4563         (parallel_nesting_level): Rename to...
4564         (taskreg_nesting_level): ... this.
4565         (is_taskreg_ctx): New function.
4566         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
4567         of is_parallel_ctx.
4568         (execute_lower_omp): Rename parallel_nesting_level to
4569         taskreg_nesting_level.
4570         (expand_omp_parallel): Rename to...
4571         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
4572         Call omp_task_call for OMP_TASK regions.
4573         (expand_omp): Adjust caller, handle OMP_TASK.
4574         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
4575
4576         * bitmap.c (bitmap_default_obstack_depth): New variable.
4577         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
4578         if argument is NULL and bitmap_default_obstack is already initialized.
4579         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
4580         at the end.
4581         * matrix-reorg.c (matrix_reorg): Likewise.
4582
4583 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
4584
4585         * config/i386/i386.md (*indirect_jump): Macroize using P
4586         mode iterator.  Remove !TARGET_64BIT from insn constraints.
4587         (*tablejump_1): Ditto.
4588         (*indirect_jump_rex64): Remove insn pattern.
4589         (*tablejump_1_rex64): Ditto.
4590         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
4591         and eh_return_si insn patterns.
4592
4593 2008-06-06  Richard Guenther  <rguenther@suse.de>
4594
4595         * tree-ssa-structalias.c (merge_smts_into): Remove.
4596         (find_what_p_points_to): Do not bother to compute the
4597         points-to set for pt_anything pointers.
4598         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
4599         for pt_anything pointers is ok.
4600
4601 2008-06-06  Jan Hubicka  <jh@suse.cz>
4602
4603         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
4604
4605 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4606
4607         * cgraph.c: Fix typos in comments.
4608         (cgraph_availability_names): Fix string typo.
4609         * fold-const.c: Fix typos in comments.
4610         (fold_binary): Fix typo in warning.
4611         * genautomata.c: Fix typos in comments.
4612         (check_presence_pattern_sets): Fix typo in local variable.
4613         (output_description): Fix typo in output.
4614         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
4615         * hwint.h: Likewise.
4616         * matrix-reorg.c (check_allocation_function): Likewise.
4617         * omega.c (smooth_weird_equations): Likewise.
4618         * auto-inc-dec.c: Fix typos in comments.
4619         * bb-reorder.c: Likewise.
4620         * builtins.c: Likewise.
4621         * c-common.c: Likewise.
4622         * c-cppbuiltin.c: Likewise.
4623         * c-parser.c: Likewise.
4624         * c-pretty-print.c: Likewise.
4625         * cfgcleanup.c: Likewise.
4626         * cfgexpand.c: Likewise.
4627         * cfghooks.c: Likewise.
4628         * cfglayout.c: Likewise.
4629         * cfgloopmanip.c: Likewise.
4630         * cgraphunit.c: Likewise.
4631         * coverage.c: Likewise.
4632         * dbxout.c: Likewise.
4633         * df-byte-scan.c: Likewise.
4634         * df-core.c: Likewise.
4635         * df-problems.c: Likewise.
4636         * df-scan.c: Likewise.
4637         * dfp.c: Likewise.
4638         * dominance.c: Likewise.
4639         * domwalk.c: Likewise.
4640         * dse.c: Likewise.
4641         * dwarf2out.c: Likewise.
4642         * emit-rtl.c: Likewise.
4643         * et-forest.c: Likewise.
4644         * function.c: Likewise.
4645         * function.h: Likewise.
4646         * gcc.c: Likewise.
4647         * gcov-io.c: Likewise.
4648         * gcov.c: Likewise.
4649         * gcse.c: Likewise.
4650         * genattrtab.c: Likewise.
4651         * ggc-page.c: Likewise.
4652         * gimplify.c: Likewise.
4653         * gthr-lynx.h: Likewise.
4654         * haifa-sched.c: Likewise.
4655         * ipa-cp.c: Likewise.
4656         * ipa-inline.c: Likewise.
4657         * ipa-prop.h: Likewise.
4658         * ipa-pure-const.c: Likewise.
4659         * ipa-struct-reorg.c: Likewise.
4660         * ipa-struct-reorg.h: Likewise.
4661         * ipa-type-escape.c: Likewise.
4662         * ipa.c: Likewise.
4663         * loop-doloop.c: Likewise.
4664         * mips-tfile.c: Likewise.
4665         * mkmap-flat.awk: Likewise.
4666         * mkmap-symver.awk: Likewise.
4667         * modulo-sched.c: Likewise.
4668         * omp-low.c: Likewise.
4669         * optabs.c: Likewise.
4670         * optabs.h: Likewise.
4671         * opts.c: Likewise.
4672         * passes.c: Likewise.
4673         * postreload-gcse.c: Likewise.
4674         * postreload.c: Likewise.
4675         * predict.c: Likewise.
4676         * pretty-print.h: Likewise.
4677         * profile.c: Likewise.
4678         * protoize.c: Likewise.
4679         * ra-conflict.c: Likewise.
4680         * real.c: Likewise.
4681         * recog.c: Likewise.
4682         * regclass.c: Likewise.
4683         * regs.h: Likewise.
4684         * reload.c: Likewise.
4685         * rtl-error.c: Likewise.
4686         * rtlanal.c: Likewise.
4687         * scan.h: Likewise.
4688         * sched-rgn.c: Likewise.
4689         * see.c: Likewise.
4690         * stmt.c: Likewise.
4691         * target.h: Likewise.
4692         * tree-dfa.c: Likewise.
4693         * tree-eh.c: Likewise.
4694         * tree-flow-inline.h: Likewise.
4695         * tree-inline.c: Likewise.
4696         * tree-into-ssa.c: Likewise.
4697         * tree-loop-distribution.c: Likewise.
4698         * tree-nested.c: Likewise.
4699         * tree-parloops.c: Likewise.
4700         * tree-pass.h: Likewise.
4701         * tree-pretty-print.c: Likewise.
4702         * tree-profile.c: Likewise.
4703         * tree-scalar-evolution.c: Likewise.
4704         * tree-sra.c: Likewise.
4705         * tree-ssa-alias-warnings.c: Likewise.
4706         * tree-ssa-ccp.c: Likewise.
4707         * tree-ssa-coalesce.c: Likewise.
4708         * tree-ssa-dom.c: Likewise.
4709         * tree-ssa-dse.c: Likewise.
4710         * tree-ssa-forwprop.c: Likewise.
4711         * tree-ssa-live.c: Likewise.
4712         * tree-ssa-live.h: Likewise.
4713         * tree-ssa-loop-im.c: Likewise.
4714         * tree-ssa-loop-ivopts.c: Likewise.
4715         * tree-ssa-loop-niter.c: Likewise.
4716         * tree-ssa-loop-prefetch.c: Likewise.
4717         * tree-ssa-phiopt.c: Likewise.
4718         * tree-ssa-phiprop.c: Likewise.
4719         * tree-ssa-sccvn.c: Likewise.
4720         * tree-ssa-ter.c: Likewise.
4721         * tree-ssa-threadupdate.c: Likewise.
4722         * tree-ssa.c: Likewise.
4723         * tree-vect-analyze.c: Likewise.
4724         * tree-vect-transform.c: Likewise.
4725         * tree-vectorizer.c: Likewise.
4726         * tree-vn.c: Likewise.
4727         * tree-vrp.c: Likewise.
4728         * tree.c: Likewise.
4729         * tree.def: Likewise.
4730         * tree.h: Likewise.
4731         * unwind-dw2-fde.c: Likewise.
4732         * unwind.inc: Likewise.
4733         * value-prof.c: Likewise.
4734         * vmsdbgout.c: Likewise.
4735
4736 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
4737
4738         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
4739         always place FP constants in the TOC for TARGET_POWERPC64.
4740         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
4741
4742 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
4743
4744         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
4745         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
4746         enable for TARGET_E500_DOUBLE.
4747         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
4748         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
4749         floating-point modes like integer modes for E500 double.
4750         (rs6000_legitimate_offset_address_p): Likewise.
4751         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
4752         addressing for DDmode for E500 double.
4753         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
4754         modes as using 64-bits of registers for E500 double.
4755         (spe_build_register_parallel): Do not handle DDmode or TDmode.
4756         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
4757         specially for E500 double.
4758         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
4759         TDmode for E500 double.
4760         (rs6000_gimplify_va_arg): Only handle SDmode in registers
4761         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
4762         (rs6000_split_multireg_move): Do not handle TDmode specially for
4763         E500 double.
4764         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
4765         using 64-bit registers for E500 double.
4766         (emit_frame_save): Do not handle DDmode specially for E500 double.
4767         (gen_frame_mem_offset): Likewise.
4768         (rs6000_function_value): Do not call spe_build_register_parallel
4769         for DDmode or TDmode.
4770         (rs6000_libcall_value): Likewise.
4771         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
4772         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
4773         for E500 double.
4774
4775 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
4776
4777         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
4778         in comments.
4779
4780 2008-06-04  Junjie Gu <jgu@tensilica.com>
4781
4782         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
4783         comparison for frame pointers.
4784
4785 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
4786
4787         PR target/27386
4788         * config/avr/avr.h (PUSH_ROUNDING): Remove.
4789
4790 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
4791
4792         PR target/30243
4793         * builtins.c (expand_builtin_signbit): Don't take lowpart when
4794         register is already smaller or equal to required mode. 
4795
4796 2008-06-04  Xinliang David Li  <davidxl@google.com>
4797
4798         * tree-call-cdce.c: New file. 
4799         (cond_dead_built_in_calls): New static variable.
4800         (input_domain): New struct.
4801         (check_pow): New function.
4802         (check_builtin_call): Ditto.
4803         (check_target_format): Ditto.
4804         (is_call_dce_candidate): Ditto.
4805         (gen_one_condition): Ditto.
4806         (gen_conditions_for_domain): Ditto.
4807         (get_domain): Ditto.
4808         (gen_conditions_for_pow_cst_base): Ditto.
4809         (gen_conditions_for_pow_int_base): Ditto.
4810         (gen_conditions_for_pow): Ditto.
4811         (get_no_error_domain): Ditto.
4812         (gen_shrink_wrap_conditions): Ditto.
4813         (shrink_wrap_one_built_in_call): Ditto.
4814         (shink_wrap_conditional_dead_built_in_calls): Ditto.
4815         (tree_call_cdce): Ditto.
4816         (gate_call_cdce): Ditto.
4817         (pass_call_cdce): New gimple pass.
4818         * passes.c: (init_optimization_passes): New pass.
4819         * tree-pass.h: New pass declaration.
4820         * opts.c (decode_options): New flag setting.
4821         * common.opt: Add -ftree-builtin-call-dce flag.
4822         * Makefile.in: Add new source file.
4823         * tempvar.def: New tv_id.
4824         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
4825
4826 2008-06-04  Richard Guenther  <rguenther@suse.de>
4827
4828         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
4829         (is_call_clobbered): Always check var_ann->call_clobbered.
4830         (mark_call_clobbered): Always set var_ann->call_clobbered.
4831         (clear_call_clobbered): Always clear var_ann->call_clobbered.
4832         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
4833         (reset_alias_info): Clear call clobbering info on MTAGs and
4834         globals as well.
4835         (set_pt_anything): Set pt_global_mem.
4836         (create_tag_raw): Adjust comment.
4837         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
4838
4839 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
4840             Maxim Kuvyrkov  <maxim@codesourcery.com>
4841
4842         * config/m68k/m68k.opt (mxgot): New option.
4843         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
4844         (m68k_output_addr_const_extra): New.
4845         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
4846         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
4847         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
4848         * doc/invoke.texi (M680x0 Options): Document -mxgot.
4849
4850 2008-06-04  Richard Guenther  <rguenther@suse.de>
4851
4852         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
4853         negative or non-representable offsets.
4854
4855 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
4856
4857         * config/i386/i386.c (ix86_gen_leave): New.
4858         (ix86_gen_pop1): Likewise.
4859         (ix86_gen_add3): Likewise.
4860         (ix86_gen_sub3): Likewise.
4861         (ix86_gen_sub3_carry): Likewise.
4862         (ix86_gen_one_cmpl2): Likewise.
4863         (ix86_gen_monitor): Likewise.
4864         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
4865         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
4866         ix86_gen_one_cmpl2 and ix86_gen_monitor.
4867         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
4868         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
4869         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
4870         (ix86_expand_epilogue): Updated.
4871         (print_operand): Handle integer register operand for 'z'.
4872         (ix86_expand_strlensi_unroll_1): Likewise.
4873         (ix86_expand_strlen): Likewise.
4874         (ix86_expand_builtin): Likewise.
4875         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
4876         mov{q}/mov{l} and add{q}/add{l}.
4877
4878 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
4879
4880         * config/i386/i386.md (P): New mode iterator.
4881         (SFmode push_operand splitter): Macroize DImode and SImode pushes
4882         using P mode iterator.
4883         (DFmode push_operand splitter): Ditto.
4884         (XFmode push_operand splitter): Ditto.
4885         (DFmode float_extend SFmode push_operand splitter): Ditto.
4886         (XFmode float_extend SFmode push_operand splitter): Do not generate
4887         SImode pushes for 64bit target.  Macroize Dimode and SImode
4888         pushes using P mode iterator.
4889         (XFmode float_extend DFmode push_operand splitter): Ditto.
4890
4891 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
4892
4893         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
4894         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
4895         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
4896         return type to int.
4897         (ix86_call_abi_override): Remove check for call_used_regs.
4898
4899 2008-06-03  Richard Guenther  <rguenther@suse.de>
4900
4901         * tree-ssa-structalias.c (find_func_aliases): Add constraints
4902         for the lhs of calls if the return type contains pointers.
4903
4904 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
4905
4906         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
4907         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
4908         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
4909         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
4910         of cfun and DEFAULT_ABI to deceide abi mode.
4911         (DEFAULT_ABI): New.
4912         (REG_PARM_STACK_SPACE): Removed.
4913         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
4914         (STACK_BOUNDARY): Use default target to deceide stack boundary.
4915         * config/i386/i386-protos.h (ix86_cfun_abi): New.
4916         (ix86_function_abi): Likewise.
4917         (ix86_function_type_abi): Likewise.
4918         (ix86_call_abi_override): Likewise.
4919         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
4920         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
4921         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
4922         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
4923         specific defines.
4924         (X86_64_REGPARM_MAX): New.
4925         (X86_64_SSE_REGPARM_MAX): New.
4926         (X64_REGPARM_MAX): New.
4927         (X64_SSE_REGPARM_MAX): New.
4928         (X86_32_REGPARM_MAX): New.
4929         (X86_32_SSE_REGPARM_MAX): New.
4930         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
4931         (ix86_function_regparm): Handle user calling abi.
4932         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
4933         by DEFAULT_ABI versus SYSV_ABI check.
4934         (ix86_reg_parm_stack_space): New.
4935         (ix86_function_type_abi): New.
4936         (ix86_call_abi_override): New.
4937         (ix86_function_abi): New.
4938         (ix86_cfun_abi): New.
4939         (init_cumulative_args): Call abi specific initialization.
4940         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
4941         (function_arg_64): Extend SSE_REGPARM_MAX check.
4942         (function_arg (): Remove TARGET_64BIT_MS_ABI.
4943         (ix86_pass_by_reference): Likewise.
4944         (ix86_function_value_regno_p): Likewise.
4945         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
4946         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
4947         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
4948         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
4949         (setup_incoming_varargs_64): Adjust regparm for call abi.
4950         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
4951         (ix86_va_start): Likewise.
4952         (ix86_gimplify_va_arg): Likewise.
4953         (ix86_expand_prologue): Likewise.
4954         (output_pic_addr_const): Likewise.
4955         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
4956         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
4957         (x86_output_mi_thunk): Likewise.
4958         (x86_function_profiler): Likewise.
4959         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
4960         (SYSV_ABI, MS_ABI): New constants.
4961         (DEFAULT_ABI): New.
4962         (init_regs): Add prototype of function in regclass.c file.
4963         (OVERRIDE_ABI_FORMAT): New.
4964         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
4965         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
4966         (OUTGOING_REG_PARM_STACK_SPACE): New.
4967         (ix86_reg_parm_stack_space): New prototype.
4968         (CUMULATIVE_ARGS): Add call_abi member.
4969         (machine_function): Add call_abi member.
4970         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
4971         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
4972
4973 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
4974
4975         PR target/34879
4976         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
4977         (avr_builtin_setjmp_frame_value): New function.
4978         * config/avr/avr.md (nonlocal_goto_receiver): Define.
4979         (nonlocal_goto): Define.
4980
4981 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
4982
4983         * config/mips/mips.c (mips_emit_loadgp): Return early if
4984         there is nothing do to, otherwise emit a blockage if
4985         !TARGET_EXPLICIT_RELOCS || crtl->profile.
4986         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
4987
4988 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4989
4990         * configure.ac: Drop unneeded backslash ending up in config.in.
4991         * acinclude.m4: Likewise.
4992         * config.in: Regenerate.
4993
4994 2008-05-26  Jan Hubicka  <jh@suse.cz>
4995
4996         * predict.c (maybe_hot_frequency_p): Break out of...
4997         (maybe_hot_bb_p): ... here.
4998         (maybe_hot_edge_p): New.
4999         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
5000         * basic-block.h (maybe_hot_edge_p): Declare.
5001
5002 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
5003
5004         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
5005         (*cmpfp_<mode>_cc): Ditto.
5006         (*fp_jcc_8<mode>_387): Ditto.
5007         (*fop_<MODEF:mode>_2_i387): Ditto.
5008         (*fop_<MODEF:mode>_3_i387): Ditto.
5009         (*fop_xf_2_i387): Ditto.
5010         (*fop_xf_3_i387): Ditto.
5011
5012 2008-06-02  Tomas Bily  <tbily@suse.cz>
5013
5014         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
5015
5016 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5017
5018         * config/mips/mips.c (mips_valid_offset_p): New function.
5019         (mips_valid_lo_sum_p): Likewise.
5020         (mips_classify_address): Use them.
5021         (mips_force_address): New function.
5022         (mips_legitimize_address): Use it.
5023         * config/mips/mips.md (MOVE128): New mode iterator.
5024         (movtf): Require TARGET_64BIT.  Remove empty strings.
5025         (*movtf_internal): Rename to...
5026         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
5027         of "R" and use {,fp}{load,store} attributes instead of "multi".
5028         Use a separate define_split.
5029         (*movtf_mips16): New pattern.
5030
5031 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5032
5033         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
5034         * config/mips/mips.c (mips_expand_before_return): New function.
5035         (mips_expand_epilogue): Call it.
5036         * config/mips/mips.md (return): Turn into a define_expand.
5037         (*return): New insn.
5038
5039 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5040
5041         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
5042         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
5043         functions.  Do not emit uses and clobbers of CONCATs; individually
5044         use and clobber their operands.
5045         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
5046         gen_clobber, emit_use and gen_use.
5047         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
5048         (expand_builtin_return): Likewise.
5049         * cfgbuild.c (count_basic_blocks): Likewise.
5050         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
5051         * explow.c (emit_stack_restore): Likewise.
5052         * expmed.c (extract_bit_field_1): Likewise.
5053         * expr.c (convert_move, emit_move_complex_parts): Likewise.
5054         (emit_move_multi_word, store_constructor): Likewise.
5055         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
5056         (thread_prologue_and_epilogue_insns): Likewise.
5057         * lower-subreg.c (resolve_simple_move): Likewise.
5058         * optabs.c (widen_operand, expand_binop): Likewise.
5059         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
5060         * reload.c (find_reloads): Likewise.
5061         * reload1.c (eliminate_regs_in_insn): Likewise.
5062         * stmt.c (expand_nl_goto_receiver): Likewise.
5063         * config/alpha/alpha.md (builtin_longjmp): Likewise.
5064         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
5065         * config/arm/arm.c (arm_load_pic_register): Likewise.
5066         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
5067         * config/arm/arm.md (untyped_return): Likewise.
5068         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
5069         * config/avr/avr.c (expand_prologue): Likewise.
5070         * config/bfin/bfin.c (do_unlink): Likewise.
5071         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
5072         * config/cris/cris.c (cris_expand_prologue): Likewise.
5073         * config/darwin.c (machopic_indirect_data_reference): Likewise.
5074         (machopic_legitimize_pic_address): Likewise.
5075         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
5076         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
5077         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
5078         (ix86_expand_convert_uns_didf_sse): Likewise.
5079         (ix86_expand_vector_init_general): Likewise.
5080         * config/ia64/ia64.md (eh_epilogue): Likewise.
5081         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
5082         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
5083         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
5084         (config/iq2000/iq2000.c): Likewise.
5085         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
5086         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
5087         (builtin_longjmp): Likewise.
5088         * config/mn10300/mn10300.md (call, call_value): Likewise.
5089         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
5090         * config/pdp11/pdp11.md (abshi2): Likewise.
5091         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
5092         * config/s390/s390.c (s390_emit_prologue): Likewise.
5093         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
5094         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
5095         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
5096         * config/sh/sh.c (prepare_move_operands): Likewise.
5097         (output_stack_adjust, sh_expand_epilogue): Likewise.
5098         (sh_set_return_address, sh_expand_t_scc): Likewise.
5099         * config/sparc/sparc.c (load_pic_register): Likewise.
5100         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
5101         * config/spu/spu.c (spu_expand_epilogue): Likewise.
5102         * config/v850/v850.c (expand_epilogue): Likewise.
5103
5104 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
5105
5106         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
5107         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
5108         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
5109         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
5110         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
5111         stack pointer register.
5112         (output_movhi): Remove code for interrupt specific writing to the 
5113         stack pointer register.
5114
5115 2008-05-31  Richard Guenther  <rguenther@suse.de>
5116
5117         PR tree-optimization/34244
5118         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
5119         (tree_expr_nonzero_warnv_p): Likewise.
5120         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
5121         ssa_name_nonnegative_p.
5122         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
5123         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
5124         not tree_expr_nonzero_warnv_p.
5125
5126         PR tree-optimization/36262
5127         Revert
5128         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
5129
5130         PR tree-optimization/34244
5131         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
5132         (record_numbers_of_iterations): New function.
5133         (execute_vrp): Cache the numbers of iterations of loops.
5134         * tree-scalar-evolution.c (scev_reset_except_niters):
5135         New function.
5136         (scev_reset): Use scev_reset_except_niters.
5137         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
5138
5139 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
5140
5141         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
5142         __WORKAROUND_RETS when appropriate.
5143
5144 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
5145
5146         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
5147         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
5148         mode iterator.
5149         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
5150         *fop_df_comm_sse insn patterns using MODEF mode iterator.
5151         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
5152         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
5153         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
5154         *fop_df_1_mixed insn patterns using MODEF mode iterator.
5155         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
5156         *fop_df_1_sse insn patterns using MODEF mode iterator.
5157         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
5158         *fop_df_1_i387 insn patterns using MODEF mode iterator.
5159         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
5160         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
5161         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
5162         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
5163         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
5164         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
5165         (*fop_xf_4_i387): Use <MODE> for mode attribute.
5166         (*fop_xf_5_i387): Ditto.
5167         (*fop_xf_6_i387): Ditto.
5168
5169 2008-05-30  Richard Guenther  <rguenther@suse.de>
5170
5171         * builtins.c (build_string_literal): Avoid generating
5172         a non-gimple_val result.
5173
5174 2008-05-30  DJ Delorie  <dj@redhat.com>
5175
5176         * exec-tool.in: Use an environment variable (private) instead of a
5177         file (shared) as a semaphore, so as to not break parallel builds.
5178
5179 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
5180
5181         * optabs.c (maybe_encapsulate_block): Remove.
5182         (emit_libcall_block): Adjust accordingly.
5183         * optabs.h (maybe_encapsulate_block): Remove prototype.
5184
5185         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
5186         Don't use maybe_encapsulate_block.
5187
5188 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
5189
5190         * config/rs6000/rs6000.c (rs6000_legitimize_address,
5191         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
5192         rtx is a SYMBOL_REF before calling get_pool_constant.
5193
5194 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
5195
5196         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
5197
5198 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
5199
5200         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
5201         rather than OS names to choose INO_T_EQ definition.
5202         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
5203         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
5204
5205 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
5206
5207         PR target/36348
5208         * config/darwin-f.c: New.
5209         * config/t-darwin: Added rule to build darwin-f.o.
5210         * config.gcc: Defined new variable, fortran_target_objs.
5211         (*-*-darwin*): Set fortran_target_objs.
5212         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
5213         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
5214         * configure: Regenerated.
5215
5216 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
5217
5218         PR target/35771
5219         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
5220         canonical type if needed.
5221
5222 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
5223
5224         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
5225
5226 2008-05-29  Richard Guenther  <rguenther@suse.de>
5227
5228         PR tree-optimization/36343
5229         PR tree-optimization/36346
5230         PR tree-optimization/36347
5231         * tree-flow.h (clobber_what_p_points_to): Declare.
5232         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
5233         pointed-to variable is dereferenced is irrelevant to whether
5234         the pointer can access the pointed-to variable.
5235         (clobber_what_p_points_to): New function.
5236         * tree-ssa-alias.c (set_initial_properties): Use it.
5237         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
5238         call clobber check for NMTs.
5239
5240 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
5241         
5242         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
5243         for printing gcov_type.
5244
5245 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
5246
5247         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
5248         and the eh region information.
5249         * value-prof.c (gimple_move_stmt_histograms): New function.
5250         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
5251
5252 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
5253
5254         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
5255
5256 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
5257
5258         * value-prof.c (tree_ic_transform): Print counts.
5259         * tree-profile.c (tree_gen_ic_func_profiler):
5260         Clear __gcov_indreict_call_callee variable to avoid misattribution
5261         of the profile.
5262
5263 2008-05-28  Rafael Espindola  <espindola@google.com>
5264
5265         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
5266         invalid sharing.
5267
5268 2008-05-28  Richard Guenther  <rguenther@suse.de>
5269
5270         PR tree-optimization/36339
5271         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
5272         and clobbering code out of the loop.
5273
5274 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
5275
5276         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
5277         letters defined.
5278
5279         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
5280         s390_contiguous_bitmask_p, s390_symref_operand_p,
5281         s390_check_symref_alignment, s390_reload_larl_operand,
5282         s390_reload_symref_address): New functions.
5283         (s390_branch_condition_mnemonic): Support compare and branch
5284         instructions.
5285         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
5286         and 'W' constraints.
5287         (s390_secondary_reload): Add secondary reloads for unaligned
5288         symbol refs or symbol refs to floating point or QI/TI mode
5289         integer values.
5290         (legitimate_address_p): Accept symbol references as addresses.
5291         (s390_expand_insv): Use rotate and insert selected bits
5292         instruction for insv when building for z10.
5293         (print_operand_address): Handle symbol ref addresses.
5294         (print_operand): Output modifier 'c' added for signed byte values.
5295         (s390_encode_section_info): Mark symbol refs with
5296         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
5297
5298         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
5299         (length attribute): RRF, RRR have 4 byte length.
5300         (FPALL, INTALL): New mode iterators added.
5301         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
5302         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
5303         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
5304         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
5305         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
5306         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
5307         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
5308         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
5309         instructions.
5310         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
5311         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
5312         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
5313         reload<INTALL:mode><P:mode>_toreg_z10,
5314         reload<FPALL:mode><P:mode>_tomem_z10,
5315         reload<FPALL:mode><P:mode>_toreg_z10,
5316         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
5317         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
5318         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
5319         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
5320         definition.
5321         (movmem, clrmem, cmpmem): New splitters added.
5322
5323         * config/s390/predicates.md (larl_operand): Use
5324         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
5325         SYMBOL_REF_ALIGN1_P.
5326         (s390_signed_integer_comparison,
5327         s390_unsigned_integer_comparison): New predicates.
5328
5329         * config/s390/s390-protos.h (s390_check_symref_alignment,
5330         s390_contiguous_bitmask_p, s390_reload_larl_operand,
5331         s390_reload_symref_address,
5332         s390_compare_and_branch_condition_mask): Prototypes added.
5333
5334         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
5335         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
5336         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
5337
5338 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
5339
5340         * config/s390/s390.c (z10_cost): New cost function for z10.
5341         (s390_handle_arch_option, override_options): Support -march=z10 switch.
5342         (s390_issue_rate): Adjust issue rate for z10.
5343         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
5344         (processor_flags): Add PF_Z10.
5345         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
5346         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
5347         * gcc/config.gcc: Add z10.
5348
5349 2008-05-28  Richard Guenther  <rguenther@suse.de>
5350
5351         PR tree-optimization/36291
5352         * tree-flow. h (struct gimple_df): Remove var_anns member.
5353         * tree-flow-inline.h (gimple_var_anns): Remove.
5354         (var_ann): Simplify.
5355         * tree-dfa.c (create_var_ann): Simplify.
5356         (remove_referenced_var): Clear alias info from var_anns of globals.
5357         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
5358         (delete_tree_ssa): Clear alias info from var_anns of globals.
5359         Do not free var_anns.
5360         (var_ann_eq): Remove.
5361         (var_ann_hash): Likewise.
5362
5363 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
5364
5365         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
5366         and loongson2f entries.
5367         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
5368         * config/mips/mips.h (processor_type): Add Loongson-2E
5369         and Loongson-2F entries.
5370         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
5371         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
5372         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
5373         * doc/invoke.texi (MIPS Options): Document loongson2e
5374         and loongson2f processor names.
5375
5376 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
5377
5378         PR target/35767
5379         PR target/35771
5380         * config/i386/i386.c (ix86_function_arg_boundary): Use
5381         alignment of canonical type.
5382         (ix86_expand_vector_move): Check unaligned memory access for
5383         all SSE modes.
5384
5385 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
5386
5387         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
5388         Moved to the front of file.
5389
5390 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
5391             H.J. Lu  <hongjiu.lu@intel.com>
5392
5393         * dwarf2out.c (current_fde): New.
5394         (add_cfi): Use it.
5395         (lookup_cfa:): Likewise.
5396         (dwarf2out_end_epilogue): Likewise.
5397         (dwarf2out_note_section_used): Likewise.
5398
5399 2008-05-27  Michael Matz  <matz@suse.de>
5400
5401         PR c++/27975
5402         * c.opt (Wenum-compare): New warning option.
5403         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
5404
5405 2008-05-27  Michael Matz  <matz@suse.de>
5406
5407         PR middle-end/36326
5408         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
5409         non-BLKmode types.
5410         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
5411         into memory as tail calls.
5412
5413 2008-05-27  Richard Guenther  <rguenther@suse.de>
5414
5415         PR tree-optimization/36339
5416         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
5417         pointers cause all addressable variables to be call clobbered.
5418
5419 2008-05-27  Richard Guenther  <rguenther@suse.de>
5420
5421         PR tree-optimization/36245
5422         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
5423
5424 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5425
5426         * config/s390/s390.md: Replace all occurences of the 'm'
5427         constraint with 'RT'.
5428
5429 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5430
5431         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
5432         definitions added.
5433         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
5434         "*movdi_64".
5435         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
5436         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
5437         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
5438
5439 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5440
5441         * reload.c: (find_reloads): Skip alternatives according to the
5442         "enabled" attribute. Constify the constraint variable.
5443         * recog.c (get_attr_enabled): Add default implementation.
5444         (extract_insn): Set the alternative_enabled_p array
5445         in the recog_data struct.
5446         (preprocess_constraints, constrain_operands): Skip
5447         alternatives according to the "enabled" attribute
5448         * recog.h (struct recog_data): New field alternative_enabled_p.
5449         (skip_alternative): New inline function.
5450         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
5451         (record_reg_classes): Skip alternative according to the
5452         "enabled" attribute.
5453
5454         * doc/md.texi: Add documention for the "enabled" attribute.
5455
5456 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5457
5458         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
5459         * postreload.c (reload_cse_simplify_operands): Replace 'm'
5460         constraint with TARGET_MEM_CONSTRAINT.
5461         * recog.c (asm_operand_ok, preprocess_constraints,
5462         constrain_operands): Likewise.
5463         * regclass.c (record_reg_classes): Likewise.
5464         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
5465         * reload1.c (maybe_fix_stack_asms): Likewise.
5466         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
5467         * recog.h: Adjust comment.
5468         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
5469         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
5470         * doc/md.texi: Add a note to description of 'm' constraint.
5471         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
5472
5473 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
5474
5475         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
5476         that the bitfield is of integral type before testing its precision.
5477
5478 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
5479             Sa Liu  <saliu@de.ibm.com> 
5480
5481         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
5482         __modti3, __udivti3, __umodti3 and __udivmodti4.
5483         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
5484         that implement TImode mul and div functions.
5485         * config/spu/multi3.c: New. Implement __multi3.
5486         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
5487         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
5488         functions on SPU.
5489
5490 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
5491
5492         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
5493         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
5494         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
5495         tls_sysv_suffix): New mode and mode attribute iterators.
5496         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
5497         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
5498         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
5499         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
5500         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
5501         iterators.
5502
5503 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
5504
5505         PR tree-optimization/36329
5506         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
5507         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
5508         * cgraphbuild.c (initialize_inline_failed): Use the latter
5509         macro in lieu of the former.
5510         * ipa-inline.c (cgraph_mark_inline): Likewise.
5511         (cgraph_decide_inlining_of_small_function): Likewise.
5512         (cgraph_decide_inlining): Likewise.
5513         (cgraph_decide_inlining_incrementally): Likewise.
5514
5515 2008-05-26  Tristan Gingold  <gingold@adacore.com>
5516             Anatoly Sokolov  <aesok@post.ru>
5517
5518         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
5519         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
5520         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
5521         optimization for 'avr6' architecture.
5522
5523 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
5524
5525         PR target/34932
5526         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
5527
5528 2008-05-26  Richard Guenther  <rguenther@suse.de>
5529
5530         * tree-ssa-sccvn.c (expr_has_constants): Declare.
5531         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
5532
5533 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
5534
5535         PR middle-end/36253
5536         * caller-save.c (insert_restore): Verify alignment of spill space.
5537         (insert_save): Likewise.
5538         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
5539         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
5540         (STACK_SLOT_ALIGNMENT): Likewise.
5541         * function.c (LOCAL_ALIGNMENT): Removed.
5542         (get_stack_local_alignment): New.
5543         (assign_stack_local): Use it.  Set alignment on stack slot.
5544         (assign_stack_temp_for_type): Use get_stack_local_alignment.
5545         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
5546         (STACK_SLOT_ALIGNMENT): New.
5547         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
5548         stack slot in XFmode.
5549
5550         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
5551
5552 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
5553
5554         PR/36321
5555         * config/i386/i386.md (allocate_stack_worker_64): Make sure
5556         argument operand in rax isn't removed.
5557
5558 2008-05-26  Richard Guenther  <rguenther@suse.de>
5559
5560         PR middle-end/36300
5561         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
5562         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
5563
5564 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
5565
5566         PR bootstrap/36331
5567         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
5568
5569 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
5570
5571         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
5572         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
5573
5574 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
5575
5576         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
5577         build a trampoline if we don't want one.
5578         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
5579         return zero for nested functions if we don't want a trampoline.
5580
5581 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
5582
5583         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
5584
5585 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
5586
5587         PR fortran/18428
5588         * c.opt: Removed undocumented option '-lang-fortran'.
5589         * c-common.h: Removed global variable 'lang_fortran'.
5590         * c-opts.c (c_common_handle_option): Removed code to handle
5591         option '-lang-fortran'. Updated includes.
5592         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
5593         definition of '__GFORTRAN__'.
5594         (define__GNUC__): Reimplemented to use BASEVER and
5595         cpp_define_formatted.
5596         (builtin_define_with_value_n): Removed.
5597         * c-incpath.h: Renamed to ...
5598         * incpath.h: ... this.
5599         * c-incpath.c: Renamed to ...
5600         * incpath.c: ... this. Updated includes.
5601         * fix-header.c: Updated includes.
5602         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
5603         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
5604         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
5605
5606 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
5607
5608         * tree.h: Update the table of flags used on tree nodes.
5609         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
5610         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
5611         (FORCED_LABEL): Add access check.
5612         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
5613         (ASM_INPUT_P): Likewise.
5614         (ASM_VOLATILE_P): Likewise.
5615         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
5616         (OMP_SECTION_LAST): Access private_flag directly.
5617         (OMP_RETURN_NOWAIT): Likewise.
5618         (OMP_PARALLEL_COMBINED): Likewise.
5619         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
5620         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
5621         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
5622         deprecated_flag directly.
5623
5624 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
5625
5626         * final.c (frame_pointer_needed): Removed.
5627         * flags.h (frame_pointer_needed): Likewise.
5628
5629         * function.h (rtl_data): Add frame_pointer_needed.
5630         (frame_pointer_needed): New.
5631
5632 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
5633
5634         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
5635
5636 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
5637
5638         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
5639         SRC is a REG.
5640
5641 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
5642
5643         * c-common.c (strip_array_types): Move function to..
5644         * tree.c: ..here.
5645         (get_inner_array_type): Delete.
5646         * c-common.h (strip_array_types): Move declaration to..
5647         * tree.h: ..here.
5648         (get_inner_array_type): Delete.
5649         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
5650         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
5651         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
5652         * config/pa/pa.c (emit_move_sequence): Likewise.
5653
5654 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
5655
5656         * config/i386/i386.md (*sse_prologue_save_insn): Set length
5657         attribute to 34.
5658
5659 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
5660
5661         * function.c: Include target hook for nonlocal_goto frame value.
5662
5663 2008-05-24  Richard Guenther  <rguenther@suse.de>
5664
5665         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
5666         variable can be only accessed through a pointer or a union.
5667
5668 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5669
5670         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
5671         * doc/extend.texi: Likewise.
5672
5673 2008-05-23  DJ Delorie  <dj@redhat.com>
5674
5675         * config/m32c/jump.md (untyped_call): Add.
5676
5677         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
5678         for A24 to PSImode.
5679         (m32c_address_cost): Detail costs for indirect offsets.
5680
5681 2008-05-23  Rafael Espindola  <espindola@google.com>
5682
5683         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
5684         if a node is a SUBREG.
5685         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
5686         is a SUBREG.
5687
5688 2008-05-23  Paul Brook  <paul@codesourcery.com>
5689             Carlos O'Donell  <carlos@codesourcery.com>
5690
5691         * doc/extend.texi: Clarify use of __attribute__((naked)).
5692         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
5693         * target.h (gcc_target): Add allocate_stack_slots_for_args.
5694         * function.c (use_register_for_decl): Use
5695         targetm.calls.allocate_stack_slots_for_args.
5696         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
5697         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
5698         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
5699
5700 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
5701
5702         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
5703
5704 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
5705
5706         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
5707         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
5708         is only rounded once.
5709
5710 2008-05-23  Richard Guenther  <rguenther@suse.de>
5711
5712         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
5713
5714 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
5715             Jakub Jelinek  <jakub@redhat.com>
5716
5717         PR target/36079
5718         * configure.ac: Handle --enable-cld.
5719         * configure: Regenerated.
5720         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
5721         * config/i386/i386.h (struct machine_function): Add needs_cld field.
5722         (ix86_current_function_needs_cld): New define.
5723         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
5724         (cld): New isns pattern.
5725         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
5726         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
5727         * config/i386/i386.opt (mcld): New option.
5728         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
5729         TARGET_CLD and ix86_current_function_needs_cld.
5730         (override_options): Use -mcld by default for 32-bit code if
5731         USE_IX86_CLD.
5732
5733         * doc/install.texi (Options specification): Document --enable-cld.
5734         * doc/invoke.texi (Machine Dependent Options)
5735         [i386 and x86-64 Options]: Add -mcld option.
5736         (Intel 386 and AMD x86-64 Options): Document -mcld option.
5737
5738 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
5739         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
5740         (return_in_memory_64): Likewise.
5741         (return_in_memory_ms_64): Likewise.
5742
5743 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5744
5745         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
5746         * builtins.c (fold_builtin_fpclassify): New.
5747         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
5748         * builtins.def (BUILT_IN_FPCLASSIFY): New.
5749         * c-common.c (handle_type_generic_attribute): Adjust to accept
5750         fixed arguments before an elipsis.
5751         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
5752         * doc/extend.texi: Document __builtin_fpclassify.
5753
5754 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
5755
5756         * omp-low.c (gate_expand_omp_ssa): Remove.
5757         (pass_expand_omp_ssa): Remove.
5758         (gate_expand_omp): Do not check for flag_openmp_ssa.
5759         * common.opt (-fopenmp-ssa): Remove.
5760         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
5761
5762 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
5763
5764         * config/sh/sh.opt (mfixed-range): New option.
5765         * config/sh/sh-protos.h (sh_fix_range): Declare.
5766         * config/sh/sh.c (sh_fix_range): New function.
5767         * config/sh/sh.h (sh_fixed_range_str): Declare.
5768         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
5769         is not empty.
5770         * doc/invoke.texi (SH Options): Document -mfixed-range.
5771
5772 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
5773
5774         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
5775         it before the redeclaration.
5776
5777 2008-05-22  Anatoly Sokolov <aesok@post.ru>
5778
5779         * config/avr/avr.c (get_sequence_length): Add new function.
5780         (expand_prologue, expand_epilogue): Remove duplicate code.
5781
5782 2008-05-22  Rafael Espindola  <espindola@google.com>
5783
5784         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
5785         sharing.
5786
5787 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
5788
5789         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
5790         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
5791
5792         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
5793         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
5794         (vect_update_misalignment_for_peel): Likewise.
5795         (vector_alignment_reachable_p): Likewise.
5796         * tree-vect-transform.c (vectorizable_load): Likewise.
5797         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
5798         (get_vectype_for_scalar_type): Pass mode of scalar_type
5799         to UNITS_PER_SIMD_WORD.
5800
5801         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
5802         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
5803         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
5804         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
5805         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
5806
5807 2008-05-22  Ira Rosen  <irar@il.ibm.com>
5808
5809         PR tree-optimization/36293
5810         * tree-vect-transform.c (vect_transform_strided_load): Don't check
5811         if the first load must be skipped because of a gap.
5812
5813 2008-05-22  Richard Guenther  <rguenther@suse.de>
5814
5815         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
5816         more cases of offset disambiguation that is possible if
5817         strict-aliasing rules apply.
5818         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
5819         for basic offset and type-based disambiguation.
5820
5821 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
5822
5823         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
5824         ix86_expand_vector_set on V16QImode for SSE4.1.
5825
5826 2008-05-21  Tom Tromey  <tromey@redhat.com>
5827
5828         * c.opt (Wimport): Mark as undocumented.
5829         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
5830         -Wno-import.
5831         (Warning Options): Likewise.
5832         * doc/cppopts.texi: Don't mention -Wimport.
5833
5834 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
5835
5836         PR tree-optimization/36287
5837         PR tree-optimization/36286
5838         * lambda-code.c (build_access_matrix): Do not use the loop->num
5839         for computing the number of induction variables: use the loop depth
5840         instead.
5841
5842 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
5843
5844         PR/36280
5845         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
5846         option -f(no-)leading-underscore.
5847
5848 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
5849
5850         * config/i386/i386.c (ix86_expand_vector_init_general): Use
5851         GET_MODE_NUNITS (mode).
5852
5853 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
5854
5855         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
5856         (-mmulhw): Add 464 to description.
5857         (-mdlmzb): Likewise.
5858         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
5859         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
5860         464fp entries.
5861         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
5862         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
5863         * config/rs6000/rs6000.md: Update comments for 464.
5864
5865 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
5866
5867         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
5868
5869 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
5870
5871         * config/i386/sse.md (vec_extractv4sf): Removed.
5872         (vec_extractv2df): Likewise.
5873         (vec_extractv2di): Likewise.
5874         (vec_extractv4si): Likewise.
5875         (vec_extractv8hi): Likewise.
5876         (vec_extractv16qi): Likewise.
5877         (vec_extract<mode>): New.
5878
5879 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
5880
5881         * config/i386/sse.md (vec_setv4sf): Removed.
5882         (vec_setv2df): Likewise.
5883         (vec_setv2di): Likewise.
5884         (vec_setv4si): Likewise.
5885         (vec_setv8hi): Likewise.
5886         (vec_setv16qi): Likewise.
5887         (vec_set<mode>): New.
5888
5889 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
5890
5891         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
5892         goto for vec_concat and vec_interleave.
5893
5894 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
5895
5896         * config/i386/sse.md (vec_initv4sf): Removed.
5897         (vec_initv2df): Likewise.
5898         (vec_initv2di): Likewise.
5899         (vec_initv4si): Likewise.
5900         (vec_initv8hi): Likewise.
5901         (vec_initv16qi): Likewise.
5902         (vec_init<mode>): New.
5903
5904 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
5905
5906         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
5907
5908 2008-05-21  Tom Tromey  <tromey@redhat.com>
5909
5910         * ggc-zone.c (lookup_page_table_if_allocated): New function.
5911         (zone_find_object_offset): Likewise.
5912         (gt_ggc_m_S): Likewise.
5913         (highest_bit): Likewise.
5914         * ggc-page.c (gt_ggc_m_S): New function.
5915         * stringpool.c (string_stack): Remove.
5916         (init_stringpool): Update.
5917         (ggc_alloc_string): Use ggc_alloc.
5918         (maybe_delete_ident): New function.
5919         (ggc_purge_stringpool): Likewise.
5920         (gt_ggc_m_S): Remove.
5921         * ggc-common.c (ggc_protect_identifiers): New global.
5922         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
5923         ggc_protect_identifiers.
5924         * ggc.h (ggc_protect_identifiers): Declare.
5925         (gt_ggc_m_S): Update.
5926         (ggc_purge_stringpool): Declare.
5927         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
5928         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
5929         special case.
5930         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
5931
5932 2008-05-21  David S. Miller  <davem@davemloft.net>
5933
5934         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
5935         tmake_file.
5936
5937 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
5938
5939         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
5940         once finished.
5941
5942 2008-05-20  David Daney  <ddaney@avtrex.com>
5943
5944         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
5945         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
5946         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
5947         UNSPEC_UPDATE_GOT_VERSION): Renumber.
5948         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
5949         (atomic_hiqi_op): New define_code_iterator.
5950         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
5951         mips_expand_compare_and_swap_12.
5952         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
5953         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
5954         (sync_<optab><mode>, sync_old_<optab><mode>,
5955         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
5956         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
5957         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
5958         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
5959         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
5960         (test_and_set_12): New insn.
5961         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
5962         sync_new_<optab><mode>, sync_old_nand<mode>,
5963         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
5964         clobber to operand 0 for SI and DI mode insns.
5965         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
5966         mips_gen_fn_4): New typedefs.
5967         (mips_gen_fn_ptrs): Define new union type.
5968         (mips_expand_compare_and_swap_12): Remove declaration.
5969         (mips_expand_atomic_qihi): Declare function.
5970         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
5971         (mips_expand_atomic_qihi): ... this.  Use new generator function
5972         parameter.
5973         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
5974         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
5975         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
5976         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
5977         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
5978         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
5979         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
5980         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
5981         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
5982         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
5983         New macros.
5984
5985 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
5986
5987         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
5988         the missing break.
5989
5990 2008-05-20  Anatoly Sokolov <aesok@post.ru>
5991
5992         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
5993         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
5994         (avr_attribute_table): Add 'OS_main' function attribute.
5995         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
5996         functions with 'OS_main' attribute.
5997
5998 2008-05-20  Richard Guenther  <rguenther@suse.de>
5999
6000         PR tree-optimization/35204
6001         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
6002         helper, split out from ...
6003         (DFS): ... here.  Make the DFS walk non-recursive.
6004
6005 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
6006             Jan Sjodin  <jan.sjodin@amd.com>
6007
6008         PR tree-optimization/36181
6009         * tree-parloops.c (loop_has_vector_phi_nodes): New.
6010         (parallelize_loops): Don't parallelize when the loop has vector
6011         phi nodes.
6012
6013 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
6014             Sebastian Pop  <sebastian.pop@amd.com>
6015
6016         * tree-loop-linear.c (gather_interchange_stats): Look in the access
6017         matrix, and never look at the tree representation of the memory
6018         accesses.
6019         (linear_transform_loops): Computes parameters and access matrices.
6020         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
6021         when fails.
6022         (access_matrix_get_index_for_parameter): New.
6023         * tree-data-ref.h (struct access_matrix): New.
6024         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
6025         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
6026         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
6027         am_vector_index_for_loop): New.
6028         (struct data_reference): Add field access_matrix.
6029         (DR_ACCESS_MATRIX): New.
6030         (compute_data_dependences_for_loop): Update declaration.
6031         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
6032         * lambda.h (lambda_vector_vec_p): Declared.
6033         * lambda-code.c: Depend on pointer-set.h.
6034         (lambda_collect_parameters_from_af, lambda_collect_parameters,
6035         av_for_af_base, av_for_af, build_access_matrix,
6036         lambda_compute_access_matrices): New.
6037         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
6038
6039 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
6040
6041         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
6042         $SOURCEDIR/include.
6043
6044 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
6045             Sebastian Pop  <sebastian.pop@amd.com>
6046
6047         PR tree-optimization/36206
6048         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
6049         FOLD_CONVERSIONS.
6050         (instantiate_scev_1): Rename flags to fold_conversions.
6051         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
6052         outeside instantiation_loop.
6053         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
6054         (evolution_function_is_affine_or_constant_p): Removed.
6055         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
6056         instantiate_scev.
6057         (analyze_siv_subscript): Pass in the loop nest number.
6058         Call evolution_function_is_affine_in_loop instead of 
6059         evolution_function_is_affine_p.
6060         (analyze_overlapping_iterations): Pass in the loop nest number.
6061
6062 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
6063             Sebastian Pop  <sebastian.pop@amd.com>
6064
6065         PR tree-optimization/36206
6066         * tree-chrec.h (chrec_fold_op): New.
6067         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
6068         and other trees.
6069
6070 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
6071
6072         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
6073         (DIRS_EQ): New.
6074         (remove_duplicates): Do not set inode on non-inode systems.
6075         Use DIRS_EQ.
6076
6077 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
6078
6079         * config.gcc (tm_file): Update comments about relative pathnames.
6080
6081 2008-05-20  Richard Guenther  <rguenther@suse.de>
6082
6083         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
6084         * tree-ssa-sccvn.c (process_scc): Likewise.
6085         * tree-ssa-sink.c (execute_sink_code): Likewise.
6086         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
6087         * tree-vrp.c (process_assert_insertions): Likewise.
6088         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
6089         (perform_tree_ssa_dce): Likewise.
6090         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
6091         (dump_dominator_optimization_stats): Likewise.
6092         * tree-vectorizer.c (vectorize_loops): Likewise.
6093
6094 2008-05-20  Richard Guenther  <rguenther@suse.de>
6095
6096         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
6097
6098 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
6099
6100         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
6101         (ix86_i386elf_return_in_memory): Likewise.
6102         (ix86_i386interix_return_in_memory): Likewise.
6103         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
6104         (SUBTARGET_RETURN_IN_MEMORY): New.
6105         * config/i386/i386elf.h: Likewise.
6106         * config/i386/ptx4-i.h: Likewise.
6107         * config/i386/sol2-10.h: Likewise.
6108         * config/i386/sysv4.h: Likewise.
6109         * config/i386/vx-common.h: Likewise.
6110         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
6111         * config/i386/i386.c (ix86_return_in_memory): Made static and
6112         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
6113         (ix86_i386elf_return_in_memory): Removed.
6114         (ix86_i386interix_return_in_memory): Removed.
6115         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
6116         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
6117
6118 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
6119
6120         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
6121
6122 2008-05-19  Xinliang David Li  <davidxl@google.com>
6123
6124         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
6125         * opts.c: Ditto.
6126         * common.opt: Ditto.
6127         * doc/invoke.texi: Ditto.
6128
6129 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
6130
6131         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
6132         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
6133
6134 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
6135
6136         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
6137         sizes of operand array from 8/4 to 4/2.
6138         (ix86_expand_vector_init_general): Change size of operand array
6139         from 32 to 16.  Remove op0, op1 and half_mode.
6140
6141 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
6142
6143         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
6144         (ix86_expand_vector_init_interleave): Likewise.
6145         (ix86_expand_vector_init_general): Use them.  Assert
6146         word_mode == SImode when n_words == 4.
6147
6148 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
6149
6150         * config/i386/i386.c (ix86_secondary_reload): New static function.
6151         (TARGET_SECONDARY_RELOAD): New define.
6152         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
6153         * config/i386/i386.md (reload_outqi): Remove.
6154
6155 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6156
6157         PR middle-end/35509
6158         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
6159         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
6160         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
6161         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
6162         (fold_builtin_1): Likewise.
6163         * builtins.def (BUILT_IN_ISINF_SIGN): New.
6164         c-common.c (check_builtin_function_arguments): Handle
6165         BUILT_IN_ISINF_SIGN.
6166         * doc/extend.texi: Document __builtin_isinf_sign.
6167         * fold-const.c (operand_equal_p): Handle COND_EXPR.
6168
6169 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
6170
6171         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
6172         EH cleanup at the end of the pass, search for those that have been
6173         turned into forwarder blocks and do the cleanup on their successor.
6174
6175 2008-05-18  Richard Guenther  <rguenther@suse.de>
6176
6177         * tree-cfg.c (verify_gimple_expr): Allow conversions from
6178         pointers to sizetype and vice versa.
6179
6180 2008-05-18 Xinliang David Li   <davidxl@google.com>
6181
6182         * gcc/tree-ssa-dce.c: Coding style fix.
6183         (check_pow): Documentation comment. 
6184         (check_log): Documenation comment. Coding style fix.
6185         (is_unnecessary_except_errno_call): Ditto.
6186         (gen_conditions_for_pow): Ditto.
6187         (gen_conditions_for_log): Ditto.
6188         (gen_shrink_wrap_conditions): Ditto.
6189         (shrink_wrap_one_built_in_calls): Ditto.
6190         * gcc/doc/invoke.texi: Better documentation string.
6191         * ChangeLog: Fix wrong change log entries from 
6192         May 17 checkin on function call DCE.
6193
6194 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
6195
6196         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
6197
6198 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
6199
6200         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
6201         * df-problems.c (simulation routines): Fixed block comment to
6202         properly say how to add forwards scanning functions.
6203         
6204 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
6205
6206         * tree-inline.c (setup_one_parameter): Remove dead code.
6207
6208 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
6209
6210         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
6211         a BIT_AND_EXPR only for an INTEGER_TYPE.
6212
6213 2008-05-17 Xinliang David Li   <davidxl@google.com>
6214
6215         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
6216         (check_pow, check_log, is_unnecessary_except_errno_call): New 
6217         functions to check for eliminating math functions that are pure 
6218         except for setting errno.
6219         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
6220         general condition expressions for shrink-wrapping pow/log calls.
6221         (gen_shrink_wrap_conditions): Ditto.
6222         (shrink_wrap_one_built_in_call): Ditto.
6223         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
6224         (mark_operand_necessary): If debugging, output if OP is necessary.
6225         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
6226         unnecessary.
6227         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
6228         opt level >= 2.
6229         * gcc/common.opt: New user flag -ftree-builtin-dce.
6230         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
6231
6232 2008-05-16  David S. Miller  <davem@davemloft.net>
6233
6234         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
6235         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
6236
6237 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
6238
6239         PR target/36246
6240         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
6241
6242 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6243
6244         * ifcvt.c (dead_or_predicable): Rename
6245         df_simulate_one_insn_backwards to df_simulate_one_insn.
6246         * recog.c (peephole2_optimize): Ditto.
6247         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
6248         Ditto.
6249         * df.h: Rename df_simulate_one_insn_backwards to
6250         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
6251         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
6252         scanning of defs and uses.
6253         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
6254         (df_simulate_one_insn_forwards): Removed.
6255
6256 2008-05-16  Doug Kwan  <dougkwan@google.com>
6257
6258         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
6259         QNaN & SNaN.
6260         (real_from_string): Handle NaNs and Inf as approriate.
6261
6262 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
6263
6264         * doc/gty.texi (Source Files Containing Type Information): Note
6265         that headers should appear first in the gtfiles list.
6266
6267 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6268
6269         * tree.def (COND_EXEC): Properly documented this code.
6270
6271 2008-05-16  Diego Novillo  <dnovillo@google.com>
6272
6273         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
6274         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
6275         the new field.
6276
6277 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6278
6279         * tree-ssa-dse (max_stmt_uid): Removed.
6280         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
6281         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
6282         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
6283         * function.h (cfun.last_stmt_uid): New field.
6284         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
6285         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
6286         New functions.
6287         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
6288         (create_stmt_ann): Initialize the ann->uid field.
6289         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
6290         with new calls.
6291         * tree-flow.h (renumber_gimple_stmt_uids): New function.
6292
6293 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
6294
6295         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
6296         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
6297         (init_empty_tree_cfg): Call it.
6298
6299 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6300
6301         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
6302         Update all users.
6303
6304 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6305
6306         * doc/invoke.text (-fdump-tree-*-verbose): New option.
6307         * tree-dump.c (dump_options): New verbose option.
6308         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
6309         Add verbose dump.
6310         * tree-pass.h (TDF_VERBOSE): New dump flag.
6311         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
6312         (tree-flow.h): Added include.
6313         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
6314
6315 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
6316
6317         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
6318
6319         From Jie Zhang  <jie.zhang@analog.com>
6320         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
6321         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
6322         mcpu=bf561-none and mcpu=bf561-0.2.
6323         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
6324         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
6325         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
6326         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
6327         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
6328         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
6329         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
6330         option.
6331         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
6332         (cputype_selected): Remove.
6333         (bfin_handle_option): Don't use cputype_selected.
6334         (override_options): When no mcpu option, enable all workarounds.
6335         Don't use bfin_workarounds.
6336         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
6337         processor type.
6338         (DEFAULT_CPU_TYPE): Don't define.
6339
6340 2008-05-16  Richard Guenther  <rguenther@suse.de>
6341
6342         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
6343         on deletion of the last stmt.
6344
6345 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
6346
6347         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
6348         V8HImode for SSE2 and V16QImode for SSE4.1.
6349
6350 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
6351
6352         * cgraph.h (compute_inline_parameters): Made public.
6353         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
6354         variable_generate_summary, function_write_summary,
6355         variable_write_summary, variable_read_summary.  Added generate_summary,
6356         write_summary, read_summary.
6357         * cgraphunit.c (cgraph_process_new_functions): Changed call from
6358         pass_ipa_inline.function_generate_summary, to
6359         compute_inline_parameters. 
6360         * ipa-inline.c (compute_inline_parameters): Made public and added
6361         node parameter.
6362         (compute_inline_parameters_for_current): New function.
6363         (pass_inline_param): Now calls compute_inline_parameters_for_current.
6364         (inline_generate_summary): Removed parameter and made to loop over
6365         all cgraph nodes.
6366         (pass_ipa_inline): Updated for new IPA_PASS structure.
6367         * passes.c (execute_ipa_summary_passes): Now is called once per
6368         pass rather than once per node*pass.
6369         
6370 2008-05-15  Anatoly Sokolov <aesok@post.ru>
6371
6372         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
6373         avr_have_mul_p, avr_asm_only_p): Remove variables.
6374         (avr_override_options): Remove initialization of removed variables.
6375         (avr_file_start):  Convert removed variables to fields of 
6376         'struct base_arch_s *avr_current_arch'. 
6377         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
6378         (AVR_HAVE_MUL): (Ditto.).
6379         (AVR_HAVE_MOVW): (Ditto.).
6380         (AVR_HAVE_LPMX): (Ditto.). 
6381         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
6382         avr_asm_only_p): Remove declaration.
6383
6384 2008-05-15  Diego Novillo  <dnovillo@google.com>
6385
6386         * config/arm/arm.c (arm_return_in_memory): Fix return type.
6387         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
6388
6389 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
6390
6391         PR middle-end/36194
6392         * combine.c (check_conversion): Rename back to check_promoted_subreg.
6393         Don't call record_truncated_value from here.
6394         (record_truncated_value): Turn it into a for_each_rtx callback.
6395         (record_truncated_values): New function.
6396         (combine_instructions): Call note_uses with record_truncated_values.
6397         Change name of check_conversion to check_promoted_subreg. 
6398
6399 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
6400
6401         * doc/sourcebuild.texi: Document support for torture tests.
6402
6403 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
6404
6405         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
6406         to alternative 4 of operand 2.
6407
6408 2008-05-15  Richard Guenther  <rguenther@suse.de>
6409
6410         * tree-pass.h (current_pass): Declare.
6411         (get_pass_for_id): Likewise.
6412         * passes.c (passes_by_id, passes_by_id_size): New globals.
6413         (set_pass_for_id): New function.
6414         (get_pass_for_id): Likewise.
6415         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
6416         (execute_function_todo): Flush per function statistics.
6417         * toplev.c (compile_file): Init statistics.
6418         (general_init): Do early statistics initialization.
6419         (finalize): Finish statistics.
6420         * statistics.h (statistics_early_init): Declare.
6421         (statistics_init): Likewise.
6422         (statistics_fini): Likewise.
6423         (statistics_fini_pass): Likewise.
6424         (statistics_counter_event): Likewise.
6425         (statistics_histogram_event): Likewise.
6426         * statistics.c: New file.
6427         * Makefile.in (OBJS-common): Add statistics.o.
6428         (statistics.o): Add dependencies.
6429         * doc/invoke.texi (-fdump-statistics): Document.
6430
6431         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
6432         (insert): Likewise.
6433         (execute_pre): Use statistics_counter_event.
6434         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
6435         (substitute_and_fold): Increment it.  Use statistics_counter_event.
6436
6437 2008-05-15  Diego Novillo  <dnovillo@google.com>
6438
6439         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
6440
6441         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
6442         * tree-ssa-alias.c (new_type_alias): Remove references to
6443         sub-variables from comment.
6444         * tree-ssa-operands.c (swap_tree_operands): Likewise.
6445
6446 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
6447
6448         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
6449         attribute to 1 only for insertps alternative.
6450
6451 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
6452
6453         * config/bfin/bfin.md (loadbytes): New pattern.
6454         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
6455         (bfin_init_builtins): Initialize it.
6456         (bdesc_1arg): Add it.
6457
6458 2008-05-15  Sa Liu  <saliu@de.ibm.com>
6459
6460         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
6461         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
6462         * testsuite/lib/target-supports.exp: Add
6463         check_effective_target_fortran_integer_16.
6464
6465 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
6466
6467         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
6468         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
6469         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
6470         (TARGET_RETURN_IN_MEMORY): Define.
6471
6472 2008-05-15  Richard Guenther  <rguenther@suse.de>
6473
6474         PR middle-end/36244
6475         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
6476         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
6477         represent unmodifiable vars.
6478
6479 2008-05-15  Richard Guenther  <rguenther@suse.de>
6480
6481         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
6482         INDIRECT_REF and TARGET_MEM_REF.
6483         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
6484         TARGET_MEM_REF.
6485
6486 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
6487             H.J. Lu  <hongjiu.lu@intel.com>
6488
6489         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
6490         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
6491         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
6492         insn alternatives.  Add missing alternatives.
6493         (*vec_concatv2di_rex64_sse4_1): Likewise.
6494         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
6495         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
6496         Require TARGET_SSE.
6497
6498 2008-05-15  Richard Guenther  <rguenther@suse.de>
6499
6500         PR tree-optimization/36009
6501         PR tree-optimization/36204
6502         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
6503         (determine_invariantness_stmt): Record the loop a store is
6504         always executed in.
6505         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
6506         dependency.
6507
6508 2008-05-15  Richard Guenther  <rguenther@suse.de>
6509
6510         PR tree-optimization/34330
6511         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
6512         through the pointer will alias the SMT.
6513
6514 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
6515
6516         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
6517
6518 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
6519
6520         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
6521
6522 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
6523             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
6524
6525         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
6526         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
6527         (vashl_optab): New optab for vector/vector shifts.
6528         (vashr_optab): Ditto.
6529         (vlshr_optab): Ditto.
6530         (vrotl_optab): Ditto.
6531         (vrotr_optab): Ditto.
6532         (optab_subtype): New enum for optab_for_tree_code call.
6533         (optab_for_tree_code): Add enum optab_subtype argument.
6534
6535         * optabs.c (optab_for_tree_code): Take an additional argument to
6536         distinguish between a vector shift by a scalar and vector shift by
6537         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
6538         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
6539         vector shift by a vector.
6540         (expand_widen_pattern_expr): Pass additional argument to
6541         optab_for_tree_code.
6542
6543         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
6544         vrotl_optab, vrotr_optab.
6545
6546         * expr.c (expand_expr_real_1): Update calls to
6547         optab_for_tree_code to distinguish between vector shifted by a
6548         scalar and vector shifted by a vector.
6549         * tree-vectorizer.c (supportable_widening_operation): Ditto.
6550         (supportable_narrowing_operation): Ditto.
6551         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
6552         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
6553         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
6554         (vect_create_epilog_for_reduction): Ditto.
6555         (vectorizable_reduction): Ditto.
6556         (vectorizable_operation): Ditto.
6557         (vect_strided_store_supported): Ditto.
6558         (vect_strided_load_supported): Ditto.
6559         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
6560         * expmed.c (expand_shift): Ditto.
6561
6562         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
6563         scalar type.
6564         (ashr@var{m}3): Ditto.
6565         (vashl@var{m}3): Document new vector/vector shift standard name.
6566         (vashr@var{m}3): Ditto.
6567         (vlshr@var{m}3): Ditto.
6568         (vrotl@var{m}3): Ditto.
6569         (vrotr@var{m}3): Ditto.
6570
6571         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
6572         (PPERM_INVERT): Ditto.
6573         (PPERM_REVERSE): Ditto.
6574         (PPERM_REV_INV): Ditto.
6575         (PPERM_ZERO): Ditto.
6576         (PPERM_ONES): Ditto.
6577         (PPERM_SIGN): Ditto.
6578         (PPERM_INV_SIGN): Ditto.
6579         (PPERM_SRC1): Ditto.
6580         (PPERM_SRC2): Ditto.
6581
6582         * config/i386/sse.md (mulv2di3): Add SSE5 support.
6583         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
6584         allows a memory operand to be the value being added, and split it
6585         to improve vectorization.
6586         (sse5_pmacsdqh_mem): Ditto.
6587         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
6588         (sse5_mulv2div2di3_high): Ditto.
6589         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
6590         (vec_pack_trunc_v4si): Ditto.
6591         (vec_pack_trunc_v2di): Ditto.
6592         (sse5_pcmov_<mode>): Remove code that tried to use use
6593         andps/andnps instead of pcmov.
6594         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
6595         pmacsdqh instructions.
6596         (vec_widen_smult_lo_v4si): Ditto.
6597
6598         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
6599         (PPERM_INVERT): Ditto.
6600         (PPERM_REVERSE): Ditto.
6601         (PPERM_REV_INV): Ditto.
6602         (PPERM_ZERO): Ditto.
6603         (PPERM_ONES): Ditto.
6604         (PPERM_SIGN): Ditto.
6605         (PPERM_INV_SIGN): Ditto.
6606         (PPERM_SRC1): Ditto.
6607         (PPERM_SRC2): Ditto.
6608         (ix86_expand_sse_movcc): Move the SSE5 test after the if
6609         true/false tests.
6610         (ix86_expand_int_vcond): If SSE5 generate all possible integer
6611         comparisons.
6612         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
6613         says ignore whether the last reference is a memory operand.
6614
6615 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
6616             Paolo Bonzini <bonzini at gnu dot org>
6617
6618         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
6619         shift patterns.
6620
6621         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
6622         (vlshr<mode>3): Rename from vlshr<mode>3.
6623         (vashr<mode>3): Rename from vashr<mode>3.
6624         (mulv4sf3): Change the names of vector shift patterns.
6625         (mulv4si3): Ditto.
6626         (negv4sf2): Ditt.
6627
6628         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
6629         shift insns.
6630
6631         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
6632         (SI_SHLHI): Ditto.
6633         (SI_SHL): Ditto.
6634         (SI_SHLI): Ditto.
6635         (SI_ROTH): Ditto.
6636         (SI_ROTHI): Ditto.
6637         (SI_ROT): Ditto.
6638         (SI_ROTI): Ditto.
6639         (SPU_RL_0): Ditto.
6640         (SPU_RL_1): Ditto.
6641         (SPU_RL_2): Ditto.
6642         (SPU_RL_3): Ditto.
6643         (SPU_RL_4): Ditto.
6644         (SPU_RL_5): Ditto.
6645         (SPU_RL_6): Ditto.
6646         (SPU_RL_7): Ditto.
6647         (SPU_SL_0): Ditto.
6648         (SPU_SL_1): Ditto.
6649         (SPU_SL_2): Ditto.
6650         (SPU_SL_3): Ditto.
6651         (SPU_SL_4): Ditto.
6652         (SPU_SL_5): Ditto.
6653         (SPU_SL_6): Ditto.
6654         (SPU_SL_7): Ditto.
6655
6656         * config/spu/spu.md (v): New iterator macro to add v for vector types.
6657         (floatunssidf2_internal): Change vector/vector shift names.
6658         (floatunsdidf2_internal): Ditto.
6659         (mulv8hi3): Ditto.
6660         (ashrdi3): Ditto.
6661         (ashrti3): Ditto.
6662         (cgt_df): Ditto.
6663         (cgt_v2df): Ditto.
6664         (dftsv): Ditto.
6665         (vashl<mode>3): Rename from ashl<mode>3.
6666         (vashr<mode>3): Rename from ashr<mode>3.
6667         (vlshr<mode>3): Rename from lshr<mode>3.
6668         (vrotl<mode>3): Rename from rotl<mode>3.
6669
6670 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
6671
6672         PR target/36224
6673         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
6674         multiply gives the wrong value when doing widening multiplies.
6675         (vec_widen_smult_lo_v4si): Ditto.
6676
6677 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
6678
6679         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
6680         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
6681         emit_library_call_value. 
6682         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
6683         * tree.h (ECF_LIBCALL_BLOCK): Removed.
6684         * calls.c (initialize_argument_information, precompute_arguments, 
6685         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
6686         (precompute_arguments): Removed flags parameter.
6687         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
6688         
6689 2008-05-14  Richard Guenther  <rguenther@suse.de>
6690
6691         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
6692         Make sure to register the store if the use is a PHI_NODE.
6693
6694 2008-05-14  Olivier Hainque  <hainque@adacore.com>
6695
6696         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
6697         memory if the component is to be referenced in BLKmode according
6698         to get_inner_reference.
6699
6700 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
6701
6702         * calls.c (emit_library_call_value_1): Restore code clearing
6703         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
6704
6705 2008-05-14  Olivier Hainque  <hainque@adacore.com>
6706             Nicolas Roche  <roche@adacore.com>
6707
6708         * configure.ac: Add support for a "gcc_subdir" variable in
6709         config-lang.in, to denote a subdirectory where the language/GCC
6710         integration files are to be found.
6711         * configure: Regenerate.
6712
6713 2008-05-14  Ira Rosen  <irar@il.ibm.com>
6714
6715         PR tree-optimization/36098
6716         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
6717         value for the first load in the group in case of a gap.
6718         (vect_build_slp_tree): Check that there are no gaps in loads.
6719
6720 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
6721
6722         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
6723         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
6724         expand_copysign_bit, ): Change call to emit_no_conflict_block to
6725         emit_insn and remove unneeded code to construct extra args.
6726         (emit_no_conflict_block): Removed.
6727         * optabls.h: (emit_no_conflict_block): Removed.
6728         * cse.c (cse_extended_basic_block): Remove search for
6729         REG_NO_CONFLICT note.
6730         * global.c: Removed incorrect comment added in revision 117.
6731         * expr.c (convert_move): Change call to emit_no_conflict_block to
6732         emit_insn.
6733         * recog.c: Change comments so that they do not mention
6734         REG_NO_CONFLICT.
6735         * local_alloc.c (combine_regs): Removed last parameter.
6736         (no_conflict_p): Removed.
6737         (block_alloc): Removed note, no_conflict_combined_regno and set
6738         local vars. Removed all code to process REG_NO_CONFLICT blocks.
6739         (combine_regs): Removed already_dead and code to look for
6740         REG_NO_CONFLICT notes.
6741         * lower_subreg (remove_retval_note): Removed code to look for
6742         REG_NO_CONFLICT block.
6743         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
6744         (resolve_clobber): Remove code to process libcalls that have
6745         REG_NO_CONFLICT notes.
6746         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
6747         case.
6748         * combine.c (can_combine_p, distribute_notes):  Removed
6749         REG_NO_CONFLICT case.
6750         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
6751         to emit_insns.
6752         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
6753         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
6754         Ditto.
6755         * reg-notes.def (NO_CONFLICT): Removed.
6756
6757 2008-05-14  David S. Miller  <davem@davemloft.net>
6758
6759         * config/sparc/sparc.c (sparc_profile_hook): If
6760         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
6761         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
6762         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
6763
6764 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
6765
6766         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
6767
6768 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
6769
6770         PR target/36222
6771         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
6772         and op1 expansion before vector concat to have less live pseudos.
6773
6774 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
6775
6776         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
6777         ix86_expand_vector_set if supported.
6778
6779 2008-05-13  Diego Novillo  <dnovillo@google.com>
6780             Kenneth Zadeck  <zadeck@naturalbridge.com>
6781
6782         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
6783
6784         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
6785         phinodes_print_statistics, init_ssanames, fini_ssanames,
6786         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
6787         release_ssa_name, release_defs, replace_ssa_name_symbol,
6788         ssanames_print_statistics): Move ...
6789         * tree-flow.h: ... here.
6790         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
6791         Use FN instead of cfun.
6792         (make_ssa_name_fn): Rename from make_ssa_name.
6793         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
6794         * tree-flow-inline.h (make_ssa_name): Move from
6795         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
6796         * omp-low.c (expand_omp_parallel):
6797         * tree-flow-inline.h (redirect_edge_var_map_result):
6798         * tree-ssa.c (init_tree_ssa): Add argument FN.
6799         Use it instead of cfun.  Update all users.
6800
6801 2008-05-13  Tom Tromey  <tromey@redhat.com>
6802
6803         PR preprocessor/22168:
6804         * doc/cpp.texi (Top): Update menu.
6805         (Alternatives to Wrapper #ifndef): New node.
6806         (Other Directives): Document deprecation.
6807         (Obsolete Features): Remove menu.
6808         (Assertions): Merge node into Obsolete Features.
6809         (Obsolete once-only headers): Move earlier; rename to Alternatives
6810         to Wrapper #ifndef.
6811         * doc/cppopts.texi: Update.
6812         * c.opt (Wdeprecated): Enable for C and ObjC.
6813         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
6814         (C++ Dialect Options): Move -Wno-deprecated from here to...
6815         (Warning Options): ... here.
6816
6817 2008-05-13  Richard Guenther  <rguenther@suse.de>
6818
6819         PR middle-end/36227
6820         * fold-const.c (fold_sign_changed_comparison): Do not allow
6821         changes in pointer-ness.
6822
6823 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
6824
6825         PR target/24713
6826         * config/sh/sh.c (sh_expand_prologue): Don't clear
6827         RTX_FRAME_RELATED_P for push insns.
6828
6829 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
6830
6831         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
6832
6833 2008-05-12  Anatoly Sokolov <aesok@post.ru>
6834
6835         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
6836         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
6837         Use 'machine->is_leaf' instead of 'leaf_func_p'.
6838
6839 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
6840
6841         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
6842         (*vec_concatv4sf_sse): This.
6843         (*sse2_concatv2si): Renamed to ...
6844         (*vec_concatv2si_sse2): This.
6845         (*sse1_concatv2si): Renamed to ...
6846         (*vec_concatv2si_sse): This.
6847         (*vec_concatv2di_rex): Renamed to ...
6848         (*vec_concatv2di_rex64): This.
6849         (*vec_concatv2si_sse4_1): New.
6850         (*vec_concatv2di_rex64_sse4_1): Likewise.
6851
6852 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
6853
6854         PR rtl-optimization/36111
6855         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
6856         that was created for swappable operands.
6857
6858 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
6859
6860         PR ada/36001
6861         * Makefile.in: Substitute GNATMAKE and GNATBIND.
6862         * configure.ac: Add call to ACX_PROG_GNAT.
6863
6864 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
6865
6866         * optc-gen.awk: Fix comment typo.
6867
6868 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
6869
6870         * pretty-print.c (pp_integer_with_precision): Use
6871         HOST_LONG_LONG_FORMAT.
6872
6873 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
6874
6875         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
6876                 
6877 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
6878
6879         * config/i386/i386.c (bdesc_ptest): Removed.
6880         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
6881         (bdesc_args): Add __builtin_ia32_ptestz128,
6882         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
6883         (ix86_init_mmx_sse_builtins): Updated.
6884         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
6885         (ix86_expand_builtin): Updated.
6886
6887 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
6888
6889         * tree-cfg.c (valid_fixed_convert_types_p): New function.
6890         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
6891
6892 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
6893
6894         * value-prof.c (interesting_stringop_to_profile): Do not
6895         return early for BUILT_IN_MEMPCPY.
6896
6897 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
6898
6899         * calls.c (expand_call): Don't use callgraph to increase
6900         preferred_stack_boundary.
6901
6902         * cgraph.h (cgraph_rtl_info): Use unsigned on
6903         preferred_incoming_stack_boundary.
6904
6905         * final.c (rest_of_clean_state): Use unsigned on
6906         preferred_stack_boundary.
6907
6908 2008-05-09  Tom Tromey  <tromey@redhat.com>
6909
6910         PR preprocessor/22231:
6911         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
6912         proceeding.
6913
6914 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
6915
6916         PR tree-optimization/36129
6917         * tree-ssa-ccp.c: Include value-prof.h.
6918         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
6919         built-in function was folded to a constant.
6920         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
6921
6922 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
6923             Sebastian Pop  <sebastian.pop@amd.com>
6924
6925         * tree-scalar-evolution.c: Document instantiate_scev.
6926         (instantiate_parameters_1): Renamed instantiate_scev_1.
6927         Don't use the same loop for instantiation_loop and evolution_loop.
6928         (instantiate_scev): New.
6929         (instantiate_parameters): Moved...
6930         (resolve_mixers): Update call to instantiate_scev_1 to pass the
6931         same loop twice.  Maintains the semantics for this function.
6932         * tree-scalar-evolution.h (instantiate_scev): Declare.
6933         (instantiate_parameters): ...here.  Now static inline.
6934         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
6935         instead of resolve_mixers.
6936
6937 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
6938
6939         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
6940
6941 2008-05-09  Tomas Bily  <tbily@suse.cz>
6942
6943         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
6944         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
6945         * tree-ssa-structalias.c (get_constraint_for): Likewise.
6946         * c-common.c (c_common_truthvalue_conversion): Likewise.
6947         * tree-object-size.c (compute_object_offset): Likewise.
6948         * tree-inline.c (estimate_num_insns_1): Likewise.
6949         * varasm.c (const_hash_1, compare_constant, copy_constant)
6950         (compute_reloc_for_constant, output_addressed_constants)
6951         (initializer_constant_valid_p): Likewise.
6952         * c-omp.c (check_omp_for_incr_expr): Likewise.
6953         * gimplify.c (gimplify_expr): Likewise.
6954         * c-typeck.c (c_finish_return): Likewise.
6955         * tree-vectorizer.c (supportable_widening_operation)
6956         (supportable_narrowing_operation): Likewise.
6957         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
6958         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
6959         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
6960         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
6961         (descr_info_loc): Likewise.
6962         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
6963         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
6964         (fold_unary): Likewise.
6965         * builtins.c (get_pointer_alignment): Likewise.
6966         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
6967         (instantiate_parameters_1): Likewise.
6968         * tree.c (expr_align, stabilize_reference): Likewise.
6969         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
6970         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
6971         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
6972         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
6973         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
6974         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
6975         Likewise.
6976         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
6977         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
6978         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
6979         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
6980         (forward_propagate_comparison)
6981         (tree_ssa_forward_propagate_single_use_vars): Likewise.
6982         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
6983         * emit-rtl.c (component_ref_for_mem_expr)
6984         (set_mem_attributes_minus_bitpos): Likewise.
6985         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
6986         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
6987         Likewise.
6988         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
6989         (build_function_call, pointer_diff, build_compound_expr)
6990         (c_finish_return): Likewise.
6991         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
6992         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
6993         Likewise.
6994         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
6995         * expr.c (is_aligning_offset): Likewise.
6996         * tree-ssa-alias.c (is_escape_site): Likewise.
6997         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
6998         (check_all_va_list_escapes): Likewise.
6999         * tree-ssa-loop-ivopts.c (determine_base_object)
7000         (determine_common_wider_type): Likewise.
7001         * dojump.c (do_jump): Likewise.
7002         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
7003         * tree-gimple.c (is_gimple_cast): Likewise.
7004         * fold-const.c (decode_field_reference, )
7005         (fold_sign_changed_comparison, fold_unary, fold_comparison)
7006         (fold_binary): Likewise.
7007         * tree-ssa-alias-warnings.c (find_alias_site_helper)
7008         (already_warned_in_frontend_p): Likewise.
7009         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
7010         * tree.c (really_constant_p, get_unwidened): Likewise.
7011         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
7012         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
7013         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
7014         Likewise.
7015         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
7016         CONVERT_EXPR_P.
7017         (CONVERT_EXPR_P): Define.
7018         (CASE_CONVERT): Define.
7019         
7020 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
7021
7022         PR middle-end/36117
7023         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
7024         (delete_unmarked_insns): When deleting a call, call
7025         delete_unreachable_blocks.
7026         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
7027         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
7028
7029 2008-05-08  Richard Guenther  <rguenther@suse.de>
7030
7031         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
7032         (-ftree-salias): Likewise.
7033         (salias-max-implicit-fields): Remove param documentation.
7034         (salias-max-array-elements): Likewise.
7035         * tree-pass.h (pass_create_structure_vars): Remove.
7036         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
7037         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
7038         * tree-ssa-alias.c (create_structure_vars): Remove.
7039         (gate_structure_vars): Likewise.
7040         (pass_create_structure_vars): Likewise.
7041         (gate_build_alias): Likewise.
7042         (pass_build_alias): Adjust to run always and dump the function.
7043         * common.opt (ftree-salias): Hide.
7044         * passes.c (init_optimization_passes): Remove
7045         pass_create_structure_vars, adjust comment.
7046         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
7047         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
7048         * opts.c (decode_options): Do not set flag_tree_salias.
7049         (common_handle_option): Add OPT_ftree_salias to the backward
7050         compatibility section.
7051
7052 2008-05-08  Richard Guenther  <rguenther@suse.de>
7053
7054         * tree-flow-inline.h (var_can_have_subvars): Move ...
7055         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
7056         * tree-flow.h (var_can_have_subvars): Remove.
7057         (push_fields_onto_fieldstack): Remove.
7058         (sort_fieldstack): Likewise.
7059         (struct fieldoff): Move ...
7060         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
7061         alias_set and base_for_components fields.
7062         (sort_fieldstack): Make static.
7063         (push_fields_onto_fieldstack): Likewise.  Remove code that
7064         handles anything but RECORD_TYPEs.  Remove alias_set and
7065         base_for_components handling.
7066         (create_variable_info_for): Adjust.
7067
7068 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
7069
7070         * common.opt (Wframe-larger-than=): Shorten the help message
7071         to one line.
7072         * doc/invoke.texi (Wframe-larger-than=): Add more description.
7073
7074 2008-05-08  Rafael Espindola  <espindola@google.com>
7075
7076         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
7077         trap.
7078         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
7079         trap and that both operands are gimple values.
7080         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
7081         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
7082         is a fp operation.
7083
7084 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
7085
7086         * read-rtl.c (join_c_conditions): Return the first string if the
7087         two strings are equal.
7088
7089 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
7090
7091         * gensupport.h (pred_data): Add a "num_codes" field.
7092         (add_predicate_code): Declare.
7093         * gensupport.c (add_predicate_code): New function.
7094         (std_pred_table): Add an "allows_const_p" field.
7095         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
7096         Remove the (incomplete) list of such codes from the codes field.
7097         (init_predicate_table): Use add_predicate_code.  Add all
7098         RTX_CONST_OBJs if allows_const_p is true.
7099         * genrecog.c (process_define_predicate): Use add_predicate_code.
7100
7101 2008-05-08  David Daney  <ddaney@avtrex.com>
7102             Richard Sandiford  <rsandifo@nildram.co.uk>
7103         
7104         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
7105         special case of constant zero operands.
7106         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
7107         old and new values.  Special case constant zero values.
7108         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
7109         fails.
7110         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
7111         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
7112
7113 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
7114
7115         PR target/36090
7116         * simplify-rtx.c (simplify_plus_minus): Create CONST of
7117         similar RTX_CONST_OBJ before CONST_INT.
7118
7119 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
7120
7121         * stmt.c (expand_stack_restore): Change sa mode if needed.
7122
7123 2008-05-08  Richard Guenther  <rguenther@suse.de>
7124
7125         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
7126         return type to bool.
7127         (ix86_sol10_return_in_memory): Likewise.
7128         (ix86_i386elf_return_in_memory): Likewise.
7129         (ix86_i386interix_return_in_memory): Likewise.
7130         * config/i386/i386.c (ix86_return_in_memory): Likewise.
7131         (ix86_sol10_return_in_memory): Likewise.
7132         (ix86_i386elf_return_in_memory): Likewise.
7133         (ix86_i386interix_return_in_memory): Likewise.
7134
7135 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
7136
7137         PR bootstrap/36180
7138         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
7139         fndecl argument.
7140         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
7141         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
7142         declared in front.
7143
7144 2008-05-08  Richard Guenther  <rguenther@suse.de>
7145
7146         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
7147         * tree-data-ref.h (struct dr_alias): Remove subvars field.
7148         (DR_SUBVARS): Remove.
7149         * tree-dfa.c (dump_subvars_for): Remove.
7150         (debug_subvars_for): Likewise.
7151         (dump_variable): Do not dump subvars.
7152         (remove_referenced_var): Do not remove subvars.
7153         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
7154         (lookup_subvars_for_var): Remove.
7155         (get_subvars_for_var): Likewise.
7156         (get_subvars_at): Likewise.
7157         (get_first_overlapping_subvar): Likewise.
7158         (overlap_subvar): Likewise.
7159         * tree-flow.h (subvar_t): Remove.
7160         (struct var_ann_d): Remove subvars field.
7161         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
7162         argument.  Remove special handling of SFTs.
7163         (compute_tag_properties): Likewise.
7164         (set_initial_properties): Likewise.
7165         (compute_call_clobbered): Likewise.
7166         (count_mem_refs): Likewise.
7167         (compute_memory_partitions): Likewise.
7168         (compute_flow_insensitive_aliasing): Likewise.
7169         (setup_pointers_and_addressables): Likewise.
7170         (new_type_alias): Likewise.
7171         (struct used_part): Remove.
7172         (used_portions): Likewise.
7173         (struct used_part_map): Likewise.
7174         (used_part_map_eq): Likewise.
7175         (used_part_map_hash): Likewise.
7176         (free_used_part_map): Likewise.
7177         (up_lookup): Likewise.
7178         (up_insert): Likewise.
7179         (get_or_create_used_part_for): Likewise.
7180         (create_sft): Likewise.
7181         (create_overlap_variables_for): Likewise.
7182         (find_used_portions): Likewise.
7183         (create_structure_vars): Likewise.
7184         * tree.def (STRUCT_FIELD_TAG): Remove.
7185         * tree.h (MTAG_P): Adjust.
7186         (struct tree_memory_tag): Remove base_for_components and
7187         unpartitionable flags.
7188         (struct tree_struct_field_tag): Remove.
7189         (SFT_PARENT_VAR): Likewise.
7190         (SFT_OFFSET): Likewise.
7191         (SFT_SIZE): Likewise.
7192         (SFT_NONADDRESSABLE_P): Likewise.
7193         (SFT_ALIAS_SET): Likewise.
7194         (SFT_UNPARTITIONABLE_P): Likewise.
7195         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
7196         (union tree_node): Remove sft field.
7197         * alias.c (get_alias_set): Remove special handling of SFTs.
7198         * print-tree.c (print_node): Remove handling of SFTs.
7199         * tree-dump.c (dequeue_and_dump): Likewise.
7200         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
7201         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
7202         * tree-predcom.c (set_alias_info): Do not set subvars.
7203         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
7204         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
7205         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
7206         (add_vars_for_offset): Remove.
7207         (add_virtual_operand): Remove special handling of SFTs.
7208         (add_call_clobber_ops): Likewise.
7209         (add_call_read_ops): Likewise.
7210         (get_asm_expr_operands): Likewise.
7211         (get_modify_stmt_operands): Likewise.
7212         (get_expr_operands): Likewise.
7213         (add_to_addressable_set): Likewise.
7214         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
7215         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
7216         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
7217         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
7218         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
7219         (tree_node_structure): Likewise.
7220         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
7221         handling of SFTs.
7222         (find_what_p_points_to): Likewise.
7223
7224 2008-05-08  Sa Liu  <saliu@de.ibm.com>
7225
7226         * config/spu/spu.md: Fixed subti3 pattern.
7227
7228 2008-05-08  Richard Guenther  <rguenther@suse.de>
7229
7230         PR middle-end/36154
7231         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
7232         sure to create a representative for trailing arrays for PTA.
7233
7234 2008-05-08  Richard Guenther  <rguenther@suse.de>
7235
7236         PR middle-end/36172
7237         * fold-const.c (operand_equal_p): Two objects which types
7238         differ in pointerness are not equal.
7239
7240 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
7241
7242         * calls.c (compute_argument_block_size): Add argument tree fndecl.
7243         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
7244         (emit_library_call_value_1): Add new variable fndecl initialized by
7245         NULL_TREE. It should be the decl type of orgfun, but this information
7246         seems not to be available here, so it uses the default calling abi.
7247         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
7248         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
7249         by TARGET_RETURN_IN_MEMORY.
7250         * config/i386/i386-interix.h: Likewise.
7251         * config/i386/i386.h: Likewise.
7252         * config/i386/i386elf.h: Likewise.
7253         * config/i386/ptx4-i.h: Likewise.
7254         * config/i386/sol2-10.h: Likewise.
7255         * config/i386/sysv4.h: Likewise.
7256         * config/i386/vx-common.h: Likewise.
7257         * config/cris/cris.h: Removed #if 0 clause.
7258         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
7259         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
7260         argument.
7261         (ix86_sol10_return_in_memory): Likewise.
7262         (ix86_i386elf_return_in_memory): New.
7263         (ix86_i386interix_return_in_memory): New.
7264         * config/mt/mt-protos.h (mt_return_in_memory): New.
7265         * config/mt/mt.c: Likewise.
7266         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
7267         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
7268         * config/bfin/bfin.h: Likewise.
7269         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
7270         argument.
7271         * config/bfin/bfin.c: Likewise.
7272         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
7273         * config/alpha/unicosmk.h: Likewise.
7274         * config/i386/cygming.h: Likewise.
7275         * config/iq2000/iq2000.h: Likewise.
7276         * config/mips/mips.h: Likewise.
7277         * config/mn10300/mn10300.h: Likewise.
7278         * config/rs6000/rs6000.h: Likewise.
7279         * config/score/score.h: Likewise.
7280         * config/spu/spu.h: Likewise.
7281         * config/v850/v850.h: Likewise.
7282         * defaults.h: Likewise.
7283         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
7284         * expr.c (emit_block_move): Adjust use of
7285         OUTGOING_REG_PARM_STACK_SPACE.
7286         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
7287         OUTGOING_REG_PARM_STACK_SPACE.
7288         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
7289
7290 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
7291
7292         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
7293         on OMP_RETURN for OMP_FOR.
7294
7295         PR debug/35896
7296         * dwarf2out.c (dw_expand_expr, common_check): Removed.
7297         (fortran_common): New function.
7298         (gen_variable_die): Call fortran_common instead of common_check,
7299         adjust for it returning tree instead of rtx.  Formatting.
7300
7301 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
7302
7303         PR rtl/7335
7304         PR rtl/33826
7305         * see.c (see_copy_insn): Copy new pure const attributes for new call.
7306         * c-decl.c (merge_decls): Ditto.
7307         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
7308         to RTL_CONST_OR_PURE_CALL_P.
7309         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
7310         Initialized DECL_LOOPING_CONST_PURE.
7311         (process_call_operands): Set tree_side_effects properly.
7312         * tree.h (TREE_READONLY_DECL_P): Removed.
7313         (DECL_IS_PURE): Renamed to DECL_PURE_P.
7314         (DECL_LOOPING_OR_CONST_P): New macro.
7315         (struct tree_function_decl): Added looping_const_or_pure_p.
7316         (ECF_*) Renumbered.
7317         (ECF_LOOPING_OR_CONST_P): New macro.
7318         * rtlanal.c (pure_const_p): Removed.
7319         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
7320         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
7321         to RTL_CONST_CALL_P.
7322         * ipa-pure-const.c (pure_const_state_e): Added looping field.
7323         (check_decl, check_tree, check_call, scan_function): Initialize
7324         looping.
7325         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
7326         (static_execute): Set looping true for recursive functions.
7327         Undo setting state to IPA_NEITHER for recursive functions.
7328         * cse.c (cse_insn): 
7329         * ifcvt.c (noce_can_store_speculate_p): Changed
7330         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
7331         RTL_CONST_OR_PURE_CALL_P.
7332         * dse.c (scan_insn): Ditto.
7333         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
7334         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
7335         RTL_CONST_OR_PURE_CALL_P.
7336         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
7337         pure_call_p to RTL_CONST_CALL_P.
7338         * gimplify.c (gimplify_call_expr): Clear side effects for
7339         non-looping pure and constant calls.
7340         * calls.c (emit_call_1): Set rtl flags from ecf flags.
7341         (flags_from_decl_or_type): Set ecf flags from decl flags.
7342         (initialize_argument_information): Turn off
7343         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
7344         Change const to pure if callee_copies is true rather than just
7345         turning off const.
7346         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
7347         way of marking pure calls.
7348         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
7349         Remove hack that was supposed to fix pr7335 and remove old
7350         way of marking pure calls.
7351         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
7352         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
7353         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
7354         RTL_CONST_OR_PURE_CALL_P.
7355         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
7356         * loop-invariant.c (find_exits, find_invariant_bb): Changed
7357         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
7358         * sched-deps.c (schedule_analyze): Ditto.
7359         * rtl.h (struct rtx_def): Use call field, unchanging field, and
7360         return_val field of calls to represent pure and const function info.
7361         (CONST_OR_PURE_CALL_P): Deleted macro.
7362         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
7363         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
7364         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
7365         TREE_READONLY.
7366         * tree-optimize.c (execute_fixup_cfg): Added test for
7367         ECF_LOOPING_CONST_OR_PURE.
7368         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
7369         DECL_PURE_P.
7370         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
7371         effects for looping pure or const calls.
7372         (verify_gimple_expr): Added verification code. 
7373         * config/alpha/alpha.c (alpha_legitimize_address,
7374         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
7375         RTL_CONST_CALL_P.
7376         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
7377         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
7378         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
7379         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
7380         RTL_CONST_OR_PURE_CALL_P.
7381         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
7382         and const calls to be deleted.
7383
7384 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
7385
7386         PR target/35714
7387         * config/i386/mmx.md (mmx_subv2sf3): New expander.
7388         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
7389         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
7390         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
7391         to handle nonimmediate operands.
7392         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
7393         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
7394         to handle nonimmediate operands.
7395         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
7396         (mmx_pmulhrwv4hi3): New expander.  Use
7397         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7398         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
7399         (sse2_umulv1siv1di3): New expander.  Use
7400         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7401         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
7402         (mmx_eq<mode>3): New expander.  Use
7403         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7404         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
7405         (mmx_uavgv8qi3): New expander.  Use
7406         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7407         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
7408         (mmx_uavgv4hi3): New expander.  Use
7409         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7410
7411         * config/i386/sse.md
7412         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
7413         to handle nonimmediate operands.
7414         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
7415         to handle nonimmediate operands.
7416         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
7417         to handle nonimmediate operands.
7418         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
7419         to handle nonimmediate operands.
7420         (sse2_unpckhpd_exp): New expander.  Use
7421         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7422         (sse2_unpcklpd_exp): New expander.  Use
7423         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7424         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
7425         to handle nonimmediate operands.
7426         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
7427         to handle nonimmediate operands.
7428         (*sse2_<plusminus_insn><mode>3): Rename from
7429         sse2_<plusminus_insn><mode>3 insn pattern.
7430         (sse2_<plusminus_insn><mode>3): New expander.  Use
7431         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7432         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
7433         (sse2_umulv2siv2di3): New expander.  Use
7434         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7435         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
7436         (sse4_1_mulv2siv2di3): New expander.  Use
7437         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7438         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
7439         (sse2_pmaddwd): New expander.  Use
7440         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7441         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
7442         (sse2_eq<mode>3): New expander.  Use
7443         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7444         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
7445         (sse4_1_eqv2di3): New expander.  Use
7446         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7447         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
7448         (sse2_uavgv16qi3): New expander.  Use
7449         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7450         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
7451         (sse2_uavgv16qi3): New expander.  Use
7452         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7453         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
7454         (sse2_uavgv8hi3): New expander.  Use
7455         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7456         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
7457         (ssse3_pmulhrswv8hi3): New expander.  Use
7458         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7459         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
7460         (ssse3_pmulhrswv4hi3): New expander.  Use
7461         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7462
7463         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
7464         (<sse>_vmmul<mode>3): Ditto.
7465         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
7466         (divv2df3): Ditto.
7467         (ssse3_pmaddubsw128): Use register_operand for operand 1.
7468         (ssse3_pmaddubsw): Ditto.
7469
7470         * config/i386/i386.c (struct_builtin_description)
7471         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
7472         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
7473         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
7474         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
7475         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
7476         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
7477         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
7478         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
7479         (ix86_fixup_binary_operands): Assert that src1
7480         and src2 must have the same mode when swapped.
7481         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
7482         and ix86_binary_operator_ok.  Do not force operands in registers
7483         when optimizing.
7484
7485 2008-05-07  Jan Hubicka  <jh@suse.cz>
7486
7487         * cgraph.c (dump_cgraph_node): Update.
7488         * cgraph.h (cgraph_local_info): Break out inline summary.
7489         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
7490         hook.
7491         * ipa-inline (inline_summary): New accestor function.
7492         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
7493         cgraph_decide_inlining, compute_inline_parameters): Update.
7494         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
7495
7496 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
7497
7498         Cleanup ColdFire scheduling support and add V4 pipeline model.
7499
7500         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
7501         (define_attr cpu): Add cfv4 value.
7502         (define_attr type, define_attr type1): Merge into a single 'type'
7503         attribute.  Update all uses.
7504         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
7505         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
7506         Update all uses.
7507         (define_attr opx_mem, define_attr opy_mem): Remove.
7508         (define_attr op_mem): Clean up, update comment.
7509         (define_attr size): Use specific values instead of general int.
7510         (define_attr guess, define_attr split): Remove.  Update all uses.
7511         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
7512         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
7513         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
7514         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
7515         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
7516         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
7517         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
7518         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
7519         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
7520         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
7521         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
7522         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
7523         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
7524         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
7525         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
7526         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
7527         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
7528         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
7529         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
7530         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
7531         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
7532         Update or set attributes.
7533         (stack_tie): New fake instruction.
7534
7535         * config/m68k/m68k.h (TUNE_CFV4): New macro.
7536         (m68k_sched_attr_size): Update declaration.
7537         (m68k_sched_attr_type2): Remove.
7538         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
7539         Declare new bypass predicates.
7540
7541         * config/m68k/m68k.c (m68k_sched_issue_rate,
7542         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
7543         implementations.
7544         (TARGET_SCHED_ISSUE_RATE,
7545         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
7546         (override_options): Handle scheduling for ColdFire V4 core.
7547         (m68k_expand_prologue): Emit stack_tie.
7548         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
7549         'OP_TYPE_FPN'.  Update all uses.
7550         (sched_guess_p): Remove.
7551         (sched_address_type): Handle symbolic addresses.
7552         (sched_get_operand): New static function.
7553         (sched_operand_type): Merge into sched_attr_op_type.
7554         (sched_attr_op_type): Handle FP registers, handle quick constants,
7555         update.
7556         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
7557         (m68k_sched_attr_size): Update.  Move logic to ...
7558         (sched_get_attr_size_int): New static function.
7559         (sched_get_opxy_mem_type): New static function.
7560         (m68k_sched_attr_op_mem): Update.
7561         (m68k_sched_attr_type2): Remove.
7562         (sched_cfv4_bypass_data): New static variable.
7563         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
7564         (m68k_sched_issue_rate): Implement scheduler hook.
7565         (struct _sched_ib: enabled_p): New field.
7566         (m68k_sched_variable_issue): Update.  Handle V4.
7567         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
7568         sched_dump_class_func_t, sched_dump_split_class,
7569         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
7570         sched_dump_dfa_class, m68k_sched_dump): Remove.
7571         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
7572         hook.
7573         (m68k_sched_init_global): Remove statisctics dumping, introduce
7574         sanity check that all instructions have pipeline reservations.  Handle
7575         ColdFire V4 core.
7576         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
7577         Handle ColdFire V4 core.
7578         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
7579         New static functions.
7580         (m68k_sched_address_bypass_p): New bypass predicate.
7581         (sched_get_indexed_address_scale): New static function.
7582         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
7583
7584         * cf.md: Update comments.
7585         (define_attr type2): Remove.  Use 'type' attribute instead.
7586         Update all uses.
7587         (cf_ib): Rename to cfv123_ib.  Update all uses.
7588         (cf_oep): Rename to cfv123_oep.  Update all uses.
7589         (cf_chr): Rename to cfv123_chr.  Update all uses.
7590         (cf_mem): Rename to cfv123_mem.  Update all uses.
7591         (cf_mac): Move to more appropriate place.
7592         (cfv123_guess): New automaton and cpu_unit.
7593         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
7594         Update uses of 'size' attribute.  Handle before reload scheduling.
7595         (cfv123_guess): New dummy reservation for unhandled instructions.
7596         (cfv4_*): Pipeline description of ColdFire V4 core.
7597         (ignore): New reservation to handle 'ignore' type.
7598
7599 2008-05-07  Ian Lance Taylor  <iant@google.com>
7600
7601         PR middle-end/36013
7602         * gimplify.c (find_single_pointer_decl_1): Don't look through
7603         indirections.
7604         (find_single_pointer_decl): Adjust comments.
7605
7606 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
7607
7608         PR middle-end/36137
7609         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
7610         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
7611
7612         PR middle-end/36106
7613         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
7614         integral type rather than floating point, then VIEW_CONVERT_EXPR
7615         to the floating point type.
7616
7617 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
7618
7619         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
7620         TFmode op0 to register.
7621
7622 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
7623
7624         * c-decl.c (grokdeclarator): Comment typo.
7625
7626 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
7627
7628         * tree-flow.h: Remove prototype for computed_goto_p.
7629         * tree-cfg.c (computed_goto_p): Make static.
7630
7631 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
7632
7633         PR target/35657
7634         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
7635         (contains_aligned_value_p): This.  Handle _Decimal128.
7636         (ix86_function_arg_boundary): Only align _Decimal128 to its
7637         natural boundary and handle it properly.
7638
7639 2008-05-06  Martin Jambor  <mjambor@suse.cz>
7640
7641         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
7642         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
7643         (ipcp_method_set_orig_node): Removed.
7644         (ipcp_cval_get_cvalue_type): Removed.
7645         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
7646         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
7647         (ipcp_cval_set_cvalue_type): Removed.
7648         (ipcp_cval_get_cvalue): Removed.
7649         (ipcp_cval_set_cvalue): Removed.
7650         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
7651         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
7652         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
7653         (ipcp_cval_meet): Renamed to ipa_lattice_meet
7654         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
7655         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
7656         (ipcp_get_ith_lattice): Changed parameters.
7657         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
7658         (ipcp_lattice_from_jfunc): Changed parameters.
7659         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
7660         (ipcp_method_cval_print): Added temporary variable info.
7661         (ipcp_redirect): Removed already unused local variable caller.
7662         (ipcp_redirect): New temporary variable orig_callee_info
7663         (ipcp_redirect): Removed newly unused local variable callee.
7664         (ipcp_redirect): Removed (a bit confusing) local variable type.
7665         (ipcp_insert_stage): Added local variable info.
7666         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
7667         renamed too
7668         (ipcp_formal_create): Removed.
7669         (ipcp_method_cval_set): Removed.
7670         (ipcp_propagate_stage): Renamed lattice variables.
7671         (ipcp_method_cval_set_cvalue_type): Removed.
7672         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
7673         (ipcp_print_all_lattices): Changed printed strings to refer to 
7674         lattices rather than cvals.
7675         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
7676         (ipcp_propagate_const): Changed formal parameters.
7677         (build_const_val): Changed formal parameters.
7678         (ipcp_insert_stage): Removed useless variable cvalue
7679         (build_const_val): Changed formal parameters.
7680         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
7681         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
7682         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
7683         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
7684         (ipcp_print_func_profile_counts): Changed string from "method" to 
7685         "function"
7686         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
7687         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
7688         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
7689         (ipcp_structures_print): Renamed to ipcp_print_all_structures
7690         (ipcp_profile_print): Renamed to ipcp_print_profile_data
7691         (ipcp_lat_is_const): Changed parameters and made inline.
7692         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
7693         (ipcp_redirect): Renamed to ipcp_need_redirect_p
7694         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
7695         the predicate condition directly
7696         (ipcp_propagate_stage): Added local variable args. Removed local
7697         variable callee.  (Both are mere code simplifications.)
7698         (ipcp_method_dont_insert_const): Renamed to
7699         ipcp_node_not_modifiable_p.
7700         (ipcp_node_not_modifiable_p): Made inline.
7701         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
7702         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
7703         (ipcp_print_all_lattices): Removed variable cvalue
7704         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
7705         Updated comments.
7706
7707 2008-05-06  Olivier Hainque  <hainque@adacore.com>
7708
7709         * tree-sra.c (try_instantiate_multiple_fields): Early return
7710         if field has POINTER_TYPE.
7711
7712 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
7713
7714         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
7715         by using 'q' specifier for instruction.
7716         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
7717
7718 2008-05-06  Anatoly Sokolov <aesok@post.ru>
7719
7720         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
7721         Change mode of zero_extract from QImode to HImode.
7722         (sign bit tests peepholes): (Ditto.).
7723
7724 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
7725
7726         * config/i386/mmx.md: Remove double backslashes from asm templates.
7727         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
7728         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
7729         to handle nonimmediate operands.
7730         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
7731         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
7732         to handle nonimmediate operands.
7733         (*mmx_<code>v2sf3_finite): New insn pattern.
7734         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
7735         (mmx_<code>v2sf3): New expander.  Use
7736         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7737         (mmx_<plusminus_insn><mode>3): New expander.  Use
7738         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7739         (*mmx_<plusminus_insn><mode>3): New insn pattern.
7740         (mmx_add<mode>3): Removed.
7741         (mmx_ssadd<mode>3): Ditto.
7742         (mmx_usadd<mode>3): Ditto.
7743         (mmx_sub<mode>3): Ditto.
7744         (mmx_sssub<mode>3): Ditto.
7745         (mmx_ussub<mode>3): Ditto.
7746         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
7747         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
7748         to handle nonimmediate operands.
7749         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
7750         insn pattern.
7751         (mmx_smulv4hi3_highpart): New expander.  Use
7752         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7753         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
7754         insn pattern.
7755         (mmx_umulv4hi3_highpart): New expander.  Use
7756         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7757         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
7758         (mmx_<code>v4hi3): New expander.  Use
7759         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7760         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
7761         (mmx_<code>v8qi3): New expander.  Use
7762         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7763         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
7764         (mmx_<code><mode>3): New expander.  Use
7765         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7766
7767 2008-05-05  Jan Hubicka  <jh@suse.cz>
7768
7769         PR tree-optimization/36118
7770         * passes.c (pass_init_dump_file): Fix dump header.
7771
7772 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7773
7774         PR middle-end/36141
7775         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
7776         VCE for function decls.
7777
7778 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
7779
7780         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
7781
7782 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
7783
7784         * config/i386/i386.md (sat_plusminus): New.
7785         (plusminus_insn): Likewise.
7786         (plusminus_mnemonic): Likewise.
7787         (addsub): Removed.
7788         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
7789         (*<addsub><mode>3_cc_overflow): Renamed to ...
7790         (*<plusminus_insn><mode>3_cc_overflow): This.
7791         (*<addsub>si3_zext_cc_overflow): Renamed to ...
7792         (*<plusminus_insn>si3_zext_cc_overflow): This.
7793
7794         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
7795         (<plusminus_insn><mode>3): This.
7796         (*<addsub><mode>3): Renamed to ...
7797         (*<plusminus_insn><mode>3): This.
7798         (<sse>_vm<addsub><mode>3): Renamed to ...
7799         (<sse>_vm<plusminus_insn><mode>3): This.
7800         (sse3_h<addsub>v4sf3): Renamed to ...
7801         (sse3_h<plusminus_insn>v4sf3): This.
7802         (sse3_h<addsub>v2df3): Renamed to ...
7803         (sse3_h<plusminus_insn>v2df3): This.
7804         (<plusminus_insn><mode>3): New.
7805         (*<plusminus_insn><mode>3): Likewise.
7806         (sse2_<plusminus_insn><mode>3): Likewise.
7807         (add<mode>): Removed.
7808         (*add<mode>3): Likewise.
7809         (sse2_ssadd<mode>3): Likewise.
7810         (sse2_usadd<mode>3): Likewise.
7811         (sub<mode>3): Likewise.
7812         (*sub<mode>3): Likewise.
7813         (sse2_sssub<mode>3): Likewise.
7814         (sse2_ussub<mode>3): Likewise.
7815
7816 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
7817
7818         * gthr-single.h: Add in required interface elements as per gthr.h.
7819         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
7820         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
7821         Generalize UNUSED macro. 
7822         (__gthread_once): Add.
7823         (__gthread_key_create): Add.
7824         (__gthread_key_delete): Add.
7825         (__gthread_getspecific): Add.
7826         (__gthread_setspecific): Add.
7827         
7828 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
7829
7830         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
7831         the same size types for the indirect reference on the rhs, then
7832         create a VCE.
7833
7834 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
7835
7836         * config/i386/i386.md
7837         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
7838         one insn template instead of template series.
7839         (*xordi_1_rex64): Ditto.
7840         (*xordi_2_rex64): Ditto.
7841
7842 2008-05-05  Ira Rosen  <irar@il.ibm.com>
7843
7844         PR tree-optimization/36119
7845         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
7846         in case of SLP.
7847
7848 2008-06-04  Jan Hubicka  <jh@suse.cz>
7849
7850         tree-optimization/36100
7851         * tree-pass.h (pass_O0_always_inline): Declare.
7852         * ipa-inline.c (inline_transform): Remove dead code.
7853         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
7854         pass_O0_always_inline): New.
7855         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
7856
7857 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
7858
7859         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
7860         mnemonic in this_param move for TARGET_64BIT.
7861
7862 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
7863
7864         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
7865         (*strmovsi_rex_1): Ditto.
7866         (*strsetsi_1): Ditto.
7867         (*strsetsi_rex_1): Ditto.
7868
7869         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
7870         adddicc expanders using SWI mode iterator.
7871
7872 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
7873
7874         PR target/36121
7875         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
7876         argument handling.
7877
7878 2008-05-04  David S. Miller  <davem@davemloft.net>
7879
7880         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
7881         (sparc*-*-linux*): Use linux.h in tm_file.
7882         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
7883         compiler defaulting to 32-bit.
7884         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
7885         no longer needed.
7886         * config/sparc/linux.h: Remove definitions now obtained
7887         properly from linux.h
7888         * config/sparc/linux64.h: Likewise.
7889         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
7890         don't want this setting for 32-bit builds in a biarch compiler.
7891         * doc/install.texi: Add sparc-linux to list of targets
7892         supporting --enable-targets=all.
7893
7894 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
7895
7896         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
7897
7898 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
7899
7900         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
7901         after V4SI_FTYPE_V8HI.
7902         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
7903         case V4SI_FTYPE_V2DF.
7904
7905 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
7906
7907         * doc/invoke.texi (max-flow-memory-locations): Removed.
7908         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
7909         
7910 2008-05-03  Richard Guenther  <rguenther@suse.de>
7911
7912         PR middle-end/34973
7913         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
7914
7915 2008-05-02  David S. Miller  <davem@davemloft.net>
7916
7917         * config.gcc (need_64bit_hwint): Document libcpp dependency.
7918
7919 2008-05-02  Simon Baldwin <simonb@google.com>
7920
7921         PR bootstrap/36108
7922         * c-common.h (warn_array_subscript_range): Removed.
7923         * c-common.c (warn_array_subscript_range): Ditto.
7924         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
7925         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
7926
7927 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
7928
7929         * config/i386/i386.c (ix86_special_builtin_type): New.
7930         (bdesc_special_args): Likewise.
7931         (ix86_expand_special_args_builtin): Likewise.
7932         (ix86_init_mmx_sse_builtins): Updated.
7933         (ix86_expand_builtin): Updated.
7934         (ix86_expand_store_builtin): Removed.
7935         (ix86_expand_unop_builtin): Likewise.
7936
7937         * config/i386/mm3dnow.h (__v2sf): Moved to ...
7938         * config/i386/mmintrin.h (__v2sf): Here.
7939
7940         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
7941         const __v2sf.
7942         (_mm_loadl_pi): Likewise.
7943         (_mm_storeh_pi): Replace __v2si with __v2sf.
7944         (_mm_storel_pi): Likewise.
7945
7946         * doc/extend.texi: Correct __builtin_ia32_loadhps,
7947         __builtin_ia32_loadlps, __builtin_ia32_storehps,
7948         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
7949         __builtin_ia32_loadlpd.
7950
7951 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
7952
7953         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
7954         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
7955         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
7956         (ix86_init_mmx_sse_builtins): Updated.
7957         (ix86_expand_args_builtin): Likewise.
7958         (ix86_expand_builtin): Likewise.
7959         (ix86_expand_unop1_builtin): Renamed to ...
7960         (ix86_expand_unop_vec_merge_builtin): This.
7961
7962 2008-05-01  Jan Hubicka  <jh@suse.cz>
7963
7964         PR bootstrap/36100
7965         * ipa-inline.c (inline_generate_summary): Make static.
7966         (inline_transform): Do not call inlining at -O0; make static.
7967         * passes.c (execute_todo): Add sanity check.
7968         (execute_one_ipa_transform_pass): Execute proper flags.
7969
7970 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
7971
7972         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
7973         (DECL_NONADDRESSABLE_P): Likewise.
7974         * alias.c (record_component_aliases): Fix comment.
7975
7976 2008-05-01  Simon Baldwin <simonb@google.com>
7977
7978         * c-common.h (warn_array_subscript_range): New function.
7979         * c-common.c (warn_array_subscript_range): Ditto.
7980         * tree-vrp.c (check_array_ref): Corrected code to agree with
7981         comment, ignoring only arrays of size 0 or size 1.
7982         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
7983
7984 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
7985
7986         * config/i386/i386.c (ix86_builtin_type): Replace
7987         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
7988         (bdesc_args): Updated.
7989         (ix86_init_mmx_sse_builtins): Likewise.
7990         (ix86_expand_args_builtin): Likewise.
7991
7992         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
7993         with __v1di.
7994
7995         * doc/extend.texi: Correct __builtin_ia32_palignr.
7996
7997 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
7998
7999         PR target/36095
8000         * config/i386/i386.c (bdesc_crc32): Removed.
8001         (ix86_expand_crc32): Likewise.
8002         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
8003         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
8004         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
8005         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
8006         UINT_FTYPE_UINT_UCHAR.
8007         (bdesc_args): Updated. Add crc32 builtins.
8008         (ix86_init_mmx_sse_builtins): Updated.
8009         (ix86_expand_args_builtin): Updated to support subreg.
8010
8011         * doc/extend.texi: Correct __builtin_ia32_crc32di.
8012
8013 2008-05-01  Jan Hubicka  <jh@suse.cz>
8014
8015         * tree-pass.h (opt_pass): Add IPA_PASS.
8016         (varpool_node, cgraph_node): Forward declare.
8017         (ipa_opt_pass): Define.
8018         (pass_ipa_inline): Turn into ipa_opt_pass.
8019         (pass_apply_inline): Remove.
8020         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
8021         (apply_inline): Turn into ....
8022         (inline_transform): ... this one.
8023         (inline_generate_summary): New function.
8024         (pass_apply_inline): Remove.
8025         * function.h (ipa_opt_pass): Forward declare structure; typedef;
8026         vector.
8027         (struct function): Add ipa_transforms_to_apply.
8028         * passes.c (register_one_dump_file): Work on IPA_PASS.
8029         (init_optimization_passes): Remove pass_inline_parameters and
8030         pass_apply_inline.
8031         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
8032         (execute_one_pass) ... here; apply transforms when possible.
8033         (add_ipa_transform_pass, execute_ipa_summary_asses,
8034         execute_one_ipa_transform_pass): New.
8035         (execute_ipa_pass_list): Update for IPA_PASS type.
8036
8037 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
8038
8039         * config/i386/i386.c (ix86_builtin_type): Add
8040         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
8041         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
8042         (bdesc_args): Add SSE4a builtins.
8043         (ix86_init_mmx_sse_builtins): Updated.
8044         (ix86_expand_args_builtin): Likewise.
8045         (ix86_expand_builtin): Likewise.
8046
8047 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
8048
8049         * config/i386/i386.c (ix86_builtin_type): Add
8050         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
8051         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
8052         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
8053         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
8054         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
8055         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
8056         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
8057         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
8058         and DI_FTYPE_DI_DI_INT.
8059         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
8060         (ix86_init_mmx_sse_builtins): Updated.
8061         (ix86_expand_args_builtin): Likewise.
8062         (ix86_expand_builtin): Likewise.
8063         (ix86_expand_binop_imm_builtin): Removed.
8064
8065         * doc/extend.texi: Correct __builtin_ia32_palignr128.
8066
8067 2008-04-30  Richard Guenther  <rguenther@suse.de>
8068
8069         PR tree-optimization/32921
8070         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
8071
8072 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
8073
8074         * config/arm/arm.c (arm_unwind_emit): Use
8075         crtl->all_throwers_are_sibcalls instead of
8076         cfun->all_throwers_are_sibcalls.
8077         (arm_output_fn_unwind): Likewise.
8078         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
8079         instead of cfun->uses_pic_offset_table.
8080         (frv_expand_prologue): Likewise.
8081         (frv_frame_pointer_required): Likewise.
8082         (frv_expand_fdpic_call): Likewise.
8083         (frv_emit_movsi): Likewise.
8084         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
8085         cfun->returns_pcc_struct instead of
8086         current_function_returns_pcc_struct.
8087         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
8088         instead of cfun->calls_eh_return.
8089         (m32c_pushm_popm): Likewise.
8090         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
8091         "extern" declaration.
8092
8093 2008-04-30  Richard Guenther  <rguenther@suse.de>
8094
8095         PR tree-optimization/21636
8096         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
8097         constant address.
8098         (evaluate_stmt): Print the likely value.
8099         (ccp_visit_stmt): Avoid excessive vertical spacing.
8100
8101 2008-04-30  Rafael Espindola  <espindola@google.com>
8102
8103         * builtins.c (fold_call_expr): Return realret.
8104         * tree-ssa-threadedge.c
8105         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
8106         __builtin_object_size.
8107
8108 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
8109
8110         * gcc.c (wrapper_string): New variable.
8111         (insert_wrapper): New function.
8112         (execute): New option -wrapper.
8113         * doc/invoke.texi (Overall Options): New driver option -wrapper.
8114
8115 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
8116
8117         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
8118         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
8119         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
8120         from...
8121         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
8122         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
8123         config/rs6000/e500crtres64gprctr.asm,
8124         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
8125         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
8126         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
8127         config/rs6000/e500crtsav64gprctr.asm,
8128         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
8129         config/rs6000/e500crtsavg64gprctr.asm: New files.
8130         * config/rs6000/t-ppccomm: Add build rules for new files.
8131         (LIB2FUNCS_STATIC_EXTRA): Add new files.
8132         * config/rs6000/t-netbsd: Add build rules for new files.
8133         (LIB2FUNCS_STATIC_EXTRA): New variable.
8134         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
8135         (CRTSAVRES_DEFAULT_SPEC): Likewise.
8136         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
8137
8138 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
8139
8140         * config/i386/i386.c (ix86_builtin_type): Add
8141         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
8142         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
8143         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
8144         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
8145         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
8146         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
8147         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
8148         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
8149         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
8150         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
8151         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
8152         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
8153         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
8154         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
8155         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
8156         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
8157         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
8158         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
8159         V1DI_FTYPE_V2SI_V2SI.
8160         (bdesc_2arg): Moved to ...
8161         (bdesc_args): Here.
8162         (ix86_init_mmx_sse_builtins): Updated.
8163         (ix86_expand_args_builtin): Updated.  Take a pointer
8164         to const struct builtin_description.  Handle comparison
8165         builtin functions.
8166         (ix86_expand_sse_compare): Take a new argument for swapping operands.
8167         (ix86_expand_builtin): Updated.
8168
8169         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
8170         (ssse3_pmaddubsw128): This.
8171         (ssse3_pmaddubswv4hi3): Renamed to ...
8172         (ssse3_pmaddubsw): This.
8173
8174         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
8175         (__builtin_ia32_packssdw128): Likewise.
8176         (__builtin_ia32_packuswb128): Likewise.
8177         (__builtin_ia32_pmaddubsw): Likewise.
8178         (__builtin_ia32_pmaddubsw128): Likewise.
8179
8180 2008-04-30  Richard Guenther  <rguenther@suse.de>
8181
8182         PR tree-optimization/14847
8183         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
8184         (recognize_bits_test): Use it.
8185         (recognize_single_bit_test): Likewise.
8186
8187 2008-04-30  Martin Jambor  <mjambor@suse.cz>
8188
8189         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
8190         instead of setting number of formal parameters to zero.
8191         (ipcp_init_stage): Do not set the number of actual parameters to zero 
8192         either.
8193         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
8194         which are called with variable number of arguments.
8195         (ipcp_insert_stage): Explicitely skipping all nodes which are
8196         called with variable number of arguments.
8197         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
8198         number of parameters.
8199
8200         * ipa-prop.h (struct ipa_node_params): Added flag
8201         called_with_var_arguments
8202         (ipa_set_param_count): Added.  Changed sole setter to use it.
8203         (ipa_get_param_count): Added.  All readers of param_count
8204         converted to use it instead.
8205         (ipa_set_called_with_variable_arg): Added.
8206         (ipa_is_called_with_var_arguments): Added.
8207         (ipa_get_ith_param): Added.  All readers of param_decls converted
8208         to use it instead.
8209         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
8210         changed to use it. 
8211         (ipa_get_cs_argument_count): Added, all readers of argument_count
8212         changed to cal it.
8213         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
8214         to use it.
8215         
8216         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
8217         (struct ipcp_lattice): Renamed cval_type to type
8218         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
8219
8220         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
8221         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
8222         (ipcp_insert_stage): Changed the type of variable cvalue to tree
8223         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
8224         (build_const_val): Changed the type of parameter cvalue to tree
8225         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
8226         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
8227         
8228         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
8229         constant 
8230
8231         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
8232         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
8233         (ipa_add_method): Renamed to ipa_push_func_to_list
8234         (ipa_remove_method): Renamed to ipa_pop_func_from_list
8235         (ipa_callsite_param_count): Removed.
8236         (ipa_callsite_param_count_set): Removed.
8237         (ipa_callsite_param): Removed.
8238         (ipa_callsite_callee): Removed.
8239         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
8240         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
8241         (ipa_method_formal_count): Removed.
8242         (ipa_method_formal_count_set): Removed.
8243         (ipa_method_get_tree): Removed.
8244         (ipa_method_tree_map_create): Removed.
8245         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
8246         (ipa_create_param_decls_array): Creates the array itself
8247         (ipa_create_param_decls_array): Temporary variable info instead of 
8248         a few dereferences.
8249         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
8250         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
8251         (get_type): Removed.
8252         (ipa_jf_get_info_type): Removed.
8253         (ipa_node_create): Renamed to ipa_create_node_params
8254         (ipa_free): Renamed to ipa_free_all_node_params
8255         (ipa_nodes_create): Renamed to ipa_create_all_node_params
8256         (ipa_edges_create): Renamed to ipa_create_all_edge_args
8257         (ipa_edges_free): Renamed to ipa_free_all_edge_args
8258         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
8259         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
8260         ipa_free_all_edge_args
8261         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
8262         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
8263         (ipa_create_methodlist_node): Removed.
8264         (ipa_methodlist_method): Removed.
8265         (ipa_methodlist_method_set): Removed.
8266         (ipa_methodlist_next_method): Removed.
8267         (ipa_methodlist_next_method_set): Removed.
8268         (ipa_method_is_modified): Removed.
8269         (ipa_method_modify_create): Removed.
8270         (ipa_method_modify_init): Temporary variable info instead of a few 
8271         dereferences.
8272         (ipa_detect_param_modifications): Temporary variable info instead of 
8273         a few dereferences.
8274         (ipa_compute_jump_functions): Temporary variable info instead of 
8275         a few dereferences.
8276         (ipa_method_modify_set): Removed.
8277         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
8278         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
8279         than craph_node as the first parameter.
8280         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
8281         (ipa_method_modify_init): Removed.
8282         (ipa_compute_jump_functions): Added a temp variable instead of 
8283         repeatadly dereferencing the cgraph_edge.aux pointer
8284         (ipa_callsite_param_set_type): Removed.
8285         (ipa_compute_jump_functions): i renamed to index and moved to 
8286         an inner block
8287         (ipa_callsite_param_set_info_type_formal): Removed.
8288         (ipa_callsite_param_set_info_type): Removed.
8289         (ipa_callsite_param_map_create): Removed.
8290         (ipa_callsite_tree): Removed.
8291         (ipa_callsite_caller): Removed.
8292         (ipa_pop_func_from_list): return_method removed to return_func
8293
8294         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
8295         prefixed all values with IPA_. Changed all users.
8296         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
8297         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
8298         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
8299         (union parameter_info): Renamed to jump_func_value.
8300         (union jump_func_value): Renamed value to constant
8301         (struct ipa_jump_func): Renamed info_type to value
8302         (struct ipa_node): Renamed to ipa_node_params
8303         (struct ipa_node_params): Renamed ipa_arg_num to param_count
8304         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
8305         (struct ipa_node_params): Renamed ipa_mod to modified_flags
8306         (struct ipa_edge): Renamed to ipa_edge_args
8307         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
8308         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
8309         (struct ipa_methodlist): Renamed to ipa_func_list
8310         (struct ipa_func_list): method_p renamed to node, next_method
8311         renamed to next
8312         (ipa_methodlist_p): Removed, switched all users to struct pointer
8313         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
8314
8315 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
8316
8317         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
8318         (rs6000_emit_epilogue): Use backchain to restore only when we
8319         have a large frame.  Make use of frame pointer to restore if we
8320         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
8321
8322 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
8323
8324         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
8325         Add mode to zero_extract.
8326         (sign bit tests peepholes): (Ditto.).
8327
8328 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
8329
8330         * config/i386/i386.c (ix86_builtins): Replace Prescott New
8331         Instructions in comments with SSE3.
8332         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
8333         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
8334         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
8335         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
8336         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
8337         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
8338         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
8339         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
8340         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
8341         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
8342         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
8343         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
8344         (bdesc_sse_args): Renamed to ...
8345         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
8346         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
8347         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
8348         IX86_BUILTIN_FABSQ.
8349         (bdesc_1arg): Moved to ...
8350         (bdesc_args): Here.
8351         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
8352         Instructions in comments with SSE3.
8353         (ix86_expand_sse_operands_builtin): Renamed to ...
8354         (ix86_expand_args_builtin): This.  Updated.
8355         (ix86_expand_unop1_builtin): Update comments.
8356         (ix86_expand_builtin): Updated.
8357
8358 2008-04-29  Richard Guenther  <rguenther@suse.de>
8359
8360         PR tree-optimization/36078
8361         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
8362         Update virtual SSA form after cleaning up the CFG.
8363
8364 2008-04-29  Richard Guenther  <rguenther@suse.de>
8365
8366         PR middle-end/15255
8367         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
8368
8369 2008-04-29  Richard Guenther  <rguenther@suse.de>
8370
8371         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
8372         (compute_may_aliases): Do not call finalize_ref_all_pointers.
8373         (compute_flow_insensitive_aliasing): Do not treat
8374         PTR_IS_REF_ALL pointers special.
8375         (get_smt_for): Likewise.
8376         (may_alias_p): Re-structure.
8377         (is_escape_site): A ref-all pointer conversion is not an escape site.
8378         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
8379         PTR_IS_REF_ALL pointers special.
8380         * tree-ssa-structalias.h (struct alias_info): Remove
8381         ref_all_symbol_mem_tag field.
8382         (PTR_IS_REF_ALL): Remove.
8383
8384 2008-04-29  Richard Guenther  <rguenther@suse.de>
8385
8386         PR middle-end/36077
8387         * fold-const.c (extract_muldiv_1): In combining division constants
8388         make sure to never overflow.
8389
8390 2008-04-29  Nick Clifton  <nickc@redhat.com>
8391
8392         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
8393
8394 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8395
8396         PR bootstrap/35169
8397         * optc-gen.awk: Work around HP-UX/IA awk bug.
8398
8399 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
8400
8401         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
8402         2008-04-25 commit.
8403
8404 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
8405
8406         PR target/36073
8407         * config/i386/i386.md
8408         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
8409         Change operand 1 predicate to nonimmediate_operand.
8410
8411 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
8412
8413         PR debug/36060
8414         * dwarf2out.c (struct die_struct): Mark as chain_circular through
8415         die_sub field.
8416         * gengtype.c (walk_type, write_func_for_structure): Handle
8417         chain_circular.
8418         * doc/gty.texi: Document chain_circular.
8419
8420 2008-04-28  Richard Guenther  <rguenther@suse.de>
8421
8422         PR tree-optimization/36066
8423         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
8424         SCEV and loop.
8425
8426 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
8427
8428         PR target/36064
8429         * config/i386/i386.md
8430         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
8431         Use match_scratch instead of match_operand for operands 3 and 4.
8432
8433 2008-04-27  Richard Guenther  <rguenther@suse.de>
8434
8435         PR tree-optimization/18754
8436         PR tree-optimization/34223
8437         * tree-pass.h (pass_complete_unrolli): Declare.
8438         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
8439         loop size before and after unconditionally of UL_NO_GROWTH in effect.
8440         Rewrite loop into loop closed SSA form if it is not already.
8441         (tree_unroll_loops_completely): Re-structure to iterate over
8442         innermost loops with intermediate CFG cleanups.
8443         Unroll outermost loops only if requested or the code does not grow
8444         doing so.
8445         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
8446         loops are available.
8447         (tree_vectorize): Instead do so here.
8448         (tree_complete_unroll): Also unroll outermost loops.
8449         (tree_complete_unroll_inner): New function.
8450         (gate_tree_complete_unroll_inner): Likewise.
8451         (pass_complete_unrolli): New pass.
8452         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
8453         uses outside of the loop.
8454         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
8455         form if it is available.  
8456         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
8457         * passes.c (init_optimization_passes): Schedule complete inner
8458         loop unrolling pass before the first CCP pass after final inlining.
8459
8460 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
8461
8462         * targhooks.h (default_emutls_var_fields,
8463         default_emutls_var_init): Declare.
8464         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
8465         * target.h (struct gcc_target): Add struct emutls member.
8466         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
8467         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
8468         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
8469         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
8470         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
8471         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
8472         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
8473         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
8474         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
8475         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
8476         emit debug information.
8477         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
8478         * varasm.c: Include targhooks.h.
8479         (emutls_object_section, emutls_tmpl_section): New.
8480         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
8481         (EMUTLS_SEPARATOR): New.
8482         (prefix_name): New.
8483         (get_emutls_object_name): New.
8484         (default_emutls_var_fields): New, broken out of ...
8485         (get_emutls_object_type): ... here.  Adjust to use target hooks.
8486         (get_emutls_init_templ_addr): Adjust to use target hooks.
8487         (emutls_decl): Adjust to use target hooks.
8488         (emutls_finish): Likewise.
8489         (default_emutls_var_init): New, broken out of ...
8490         (assemble_variable): ... here.  Adjust to use target hooks.
8491         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
8492         SECCAT_EMUTLS_TMPL.
8493         * c-common.c (handle_section_attribute): Prevent overriding
8494         sections for emulated tls with special sections.
8495         * config/i386/i386.c (x86_64_elf_select_section): Add
8496         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
8497         (x86_64_elf_unique_section): Likewise.
8498         * config/vxworks.c: Include tree.h.
8499         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
8500         (vxworks_override_options): Set TLS scheme.
8501         * doc/tm.texi (Emulated TLS): New node.
8502
8503 2008-04-26  Simon Baldwin <simonb@google.com>
8504
8505         PR c/35652
8506         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
8507         with propagated string constants.
8508
8509 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
8510
8511         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
8512         constraint for operand 2 when operand 0 is memory operand.
8513         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
8514         operand 0 is memory operand.
8515         (fix_trunc<mode>_i387_with_temp): Ditto.
8516         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
8517         operand 2 when operand 1 is memory operand.
8518         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
8519         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
8520         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
8521         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
8522         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
8523         operands 2,3 and 4 when operand 1 is memory operand.
8524         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
8525         is memory operand.
8526         (fistdi2_floor_with_temp): Ditto.
8527         (fist<mode>2_floor_with_temp): Ditto.
8528         (fistdi2_ceil_with_temp): Ditto.
8529         (fist<mode>2_ceil_with_temp): Ditto.
8530         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
8531
8532 2008-04-26  David Daney  <ddaney@avtrex.com>
8533
8534         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
8535         unspec_volitile.
8536         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
8537         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
8538         UNSPEC_UPDATE_GOT_VERSION): Renumber.
8539         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
8540         (compare_and_swap_12): New insn.
8541         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
8542         * config/mips/mips.c (mips_force_binary): New function.
8543         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
8544         (mips_expand_compare_and_swap_12): New function.
8545         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
8546
8547 2008-04-25  Jan Hubicka  <jh@suse.cz>
8548
8549         PR testsuite/35843
8550         * cfgexpand.c (pass_expand): Turn into RTL pass.
8551         * passes.c (execute_one_pass): Do pass typechecking after execution.
8552         * tree-pass.h (pass_expand): Turn into RTL pass.
8553
8554         * function.h (struct rtl_data): Move here fields
8555         accesses_prior_frames, calls_eh_return, saves_all_registers,
8556         has_nonlocal_goto, has_asm_statement, is_thunk,
8557         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
8558         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
8559         arg_pointer_save_area_init from struct function; turn into bool.
8560         (struct function): Move
8561         calls_eh_return, saves_all_registers, has_nonlocal_goto,
8562         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
8563         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
8564         tail_call_emit, arg_pointer_save_area_init
8565         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
8566         (current_function_returns_struct, current_function_returns_pcc_struct,
8567         current_function_calls_setjmp, current_function_calls_alloca,
8568         current_function_accesses_prior_frames,
8569         current_function_calls_eh_return, current_function_is_thunk,
8570         current_function_stdarg, current_function_profile,
8571         current_function_limit_stack, current_function_uses_pic_offset_table,
8572         current_function_uses_const_pool, current_function_has_nonlocal_label,
8573         current_function_saves_all_registers,
8574         current_function_has_nonlocal_goto,
8575         current_function_has_asm_statement): Remove accesor macros.
8576         * ra-conflict.c (global_conflicts): Update.
8577         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
8578         (suitable_for_tail_call_opt_p): Update.
8579         * builtins.c (expand_builtin_return_addr): Update.
8580         (expand_builtin_setjmp_setup): Update.
8581         (expand_builtin_nonlocal_goto): Update.
8582         * final.c (final_start_function): Update.
8583         (profile_function): Update.
8584         (leaf_function_p): Update.
8585         (only_leaf_regs_used): Update.
8586         * df-scan.c (df_get_exit_block_use_set): Update.
8587         * dojump.c (clear_pending_stack_adjust): Update.
8588         * tree-stdarg.c (gate_optimize_stdarg): Update.
8589         * gimple-low.c (lower_function_body): Update.
8590         * global.c (compute_regsets): Update.
8591         (global_alloc): Update.
8592         * dwarf2out.c (dwarf2out_begin_prologue): Update.
8593         * expr.c (expand_assignment): Update.
8594         * dse.c (dse_step0): Update.
8595         (dse_step1): Update.
8596         * c-decl.c (store_parm_decls): Update.
8597         * local-alloc.c (combine_regs): Update.
8598         (find_free_reg): Update.
8599         * function.c (assign_parms_augmented_arg_list): Update.
8600         (assign_parm_find_data_types): Update.
8601         (assign_parms): Update.
8602         (allocate_struct_function): Update.
8603         (expand_function_start): Update.
8604         (expand_function_end): Update.
8605         (get_arg_pointer_save_area): Update.
8606         (thread_prologue_and_epilogue_insns): Update.
8607         (rest_of_match_asm_constraints): Update.
8608         * stor-layout.c (variable_size): Update.
8609         * gcse.c (gcse_main): Update.
8610         (bypass_jumps): Update.
8611         * gimplify.c (gimplify_function_tree): Update.
8612         * calls.c (emit_call_1): Update.
8613         (expand_call): Update.
8614         * bt-load.c (compute_defs_uses_and_gen): Update.
8615         * except.c (sjlj_assign_call_site_values): Update.
8616         (sjlj_emit_function_enter): Update.
8617         (can_throw_external): Update.
8618         (set_nothrow_function_flags): Update.
8619         (expand_builtin_unwind_init): Update.
8620         (expand_eh_return): Update.
8621         (convert_to_eh_region_ranges): Update.
8622         (output_function_exception_table): Update.
8623         * emit-rtl.c (gen_tmp_stack_mem): Update.
8624         * cfgexpand.c (expand_used_vars): Update.
8625         (tree_expand_cfg): Update.
8626         * cfgcleanup.c (rest_of_handle_jump): Update.
8627         * explow.c (allocate_dynamic_stack_space): Update.
8628         * varasm.c (assemble_start_function): Update.
8629         (force_const_mem): Update.
8630         (mark_constant_pool): Update.
8631         * tree-optimize.c (tree_rest_of_compilation): Update.
8632         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
8633         * tree-cfg.c (notice_special_calls): Update.
8634         (is_ctrl_altering_stmt): Update.
8635         (tree_can_make_abnormal_goto): Update.
8636         (tree_purge_dead_abnormal_call_edges): Update.
8637         * config/alpha/predicates.md: Update.
8638         * config/alpha/alpha.c (alpha_sa_mask): Update.
8639         (alpha_sa_size): Update.
8640         (alpha_does_function_need_gp): Update.
8641         (alpha_expand_prologue): Update.
8642         (alpha_start_function): Update.
8643         (alpha_output_function_end_prologue): Update.
8644         (alpha_expand_epilogue): Update.
8645         * config/frv/frv.c (frv_stack_info): Update.
8646         (frv_expand_epilogue): Update.
8647         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
8648         (s390_register_info): Update.
8649         (s390_frame_info): Update.
8650         (s390_init_frame_layout): Update.
8651         (s390_can_eliminate): Update.
8652         (save_gprs): Update.
8653         * config/spu/spu.c (spu_split_immediate): Update.
8654         (need_to_save_reg): Update.
8655         (spu_expand_prologue): Update.
8656         (spu_expand_epilogue): Update.
8657         * config/sparc/sparc.md: Update.
8658         * config/sparc/sparc.c (eligible_for_return_delay): Update.
8659         (sparc_tls_got): Update.
8660         (legitimize_pic_address): Update.
8661         (sparc_emit_call_insn): Update.
8662         (sparc_expand_prologue): Update.
8663         (output_return): Update.
8664         (print_operand): Update.
8665         (sparc_function_ok_for_sibcall): Update.
8666         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
8667         * config/m32r/m32r.md: Update.
8668         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
8669         (m32r_compute_frame_size): Update.
8670         (m32r_expand_prologue): Update.
8671         (m32r_expand_epilogue): Update.
8672         (m32r_legitimize_pic_address): Update.
8673         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
8674         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
8675         * config/i386/i386.c (ix86_frame_pointer_required): Update.
8676         (gen_push): Update.
8677         (ix86_save_reg): Update.
8678         (ix86_compute_frame_layout): Update.
8679         (ix86_expand_prologue): Update.
8680         (ix86_expand_epilogue): Update.
8681         * config/sh/sh.c (output_stack_adjust): Update.
8682         (calc_live_regs): Update.
8683         (sh5_schedule_saves): Update.
8684         (sh_expand_prologue): Update.
8685         (sh_expand_epilogue): Update.
8686         (sh_setup_incoming_varargs): Update.
8687         (sh_allocate_initial_value): Update.
8688         (sh_get_pr_initial_val): Update.
8689         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
8690         * config/sh/sh.md (label:): Update.
8691         * config/avr/avr.c (out_movhi_mr_r): Update.
8692         * config/crx/crx.h (enum): Update.
8693         * config/xtensa/xtensa.h (along): Update.
8694         * config/stormy16/stormy16.c Update.
8695         (xstormy16_compute_stack_layout): Update.
8696         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
8697         (fr30_expand_prologue): Update.
8698         * config/cris/cris.c (cris_conditional_register_usage): Update.
8699         (cris_reg_saved_in_regsave_area): Update.
8700         (cris_initial_frame_pointer_offset): Update.
8701         (cris_simple_epilogue): Update.
8702         (cris_expand_prologue): Update.
8703         (cris_expand_epilogue): Update.
8704         (cris_expand_pic_call_address): Update.
8705         (cris_asm_output_symbol_ref): Update.
8706         (cris_asm_output_label_ref): Update.
8707         * config/cris/cris.md Update.
8708         * config/iq2000/iq2000.c (compute_frame_size): Update.
8709         (iq2000_expand_epilogue): Update.
8710         * config/mt/mt.h (save_direction): Update.
8711         * config/mn10300/mn10300.c (mn10300_function_value): Update.
8712         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
8713         (ia64_secondary_reload_class): Update.
8714         * config/m68k/m68k.c (m68k_save_reg): Update.
8715         (m68k_expand_prologue): Update.
8716         (m68k_expand_epilogue): Update.
8717         (legitimize_pic_address): Update.
8718         * config/rs6000/rs6000.c (rs6000_got_register): Update.
8719         (first_reg_to_save): Update.
8720         (first_altivec_reg_to_save): Update.
8721         (compute_vrsave_mask): Update.
8722         (compute_save_world_info): Update.
8723         (rs6000_stack_info): Update.
8724         (spe_func_has_64bit_regs_p): Update.
8725         (rs6000_ra_ever_killed): Update.
8726         (rs6000_emit_eh_reg_restore): Update.
8727         (rs6000_emit_allocate_stack): Update.
8728         (rs6000_emit_prologue): Update.
8729         (rs6000_emit_epilogue): Update.
8730         (rs6000_output_function_epilogue): Update.
8731         (output_profile_hook): Update.
8732         (rs6000_elf_declare_function_name): Update.
8733         * config/rs6000/rs6000.h (rs6000_args): Update.
8734         * config/rs6000/rs6000.md: Update.
8735         * config/mcore/mcore.c (mcore_expand_prolog): Update.
8736         * config/arc/arc.c (arc_output_function_epilogue): Update.
8737         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
8738         * config/darwin.c (machopic_function_base_name): Update.
8739         * config/score/score3.c (score3_compute_frame_size): Update.
8740         (rpush): Update.
8741         (rpop): Update.
8742         (score3_epilogue): Update.
8743         * config/score/score7.c (score7_compute_frame_size): Update.
8744         (score7_prologue): Update.
8745         (score7_epilogue): Update.
8746         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
8747         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
8748         * config/arm/arm.c (use_return_insn): Update.
8749         (require_pic_register): Update.
8750         (arm_load_pic_register): Update.
8751         (arm_compute_save_reg0_reg12_mask): Update.
8752         (arm_compute_save_reg_mask): Update.
8753         (thumb1_compute_save_reg_mask): Update.
8754         (output_return_instruction): Update.
8755         (arm_output_function_prologue): Update.
8756         (arm_output_epilogue): Update.
8757         (arm_get_frame_offsets): Update.
8758         (arm_expand_prologue): Update.
8759         (thumb_pushpop): Update.
8760         (thumb_exit): Update.
8761         (thumb1_expand_prologue): Update.
8762         (thumb1_expand_epilogue): Update.
8763         (arm_unwind_emit): Update.
8764         (arm_output_fn_unwind): Update.
8765         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
8766         * config/arm/arm.md: Update.
8767         * config/pa/pa.md: Update.
8768         * config/pa/pa.c (legitimize_pic_address): Update.
8769         (compute_frame_size): Update.
8770         (hppa_expand_prologue): Update.
8771         (hppa_expand_epilogue): Update.
8772         (borx_reg_operand): Update.
8773         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
8774         (HARD_REGNO_RENAME_OK): Update.
8775         * config/mips/mips.c (mips_global_pointer): Update.
8776         (mips_save_reg_p): Update.
8777         (mips_compute_frame_info): Update.
8778         (mips_frame_pointer_required): Update.
8779         (mips_expand_prologue): Update.
8780         (mips_expand_epilogue): Update.
8781         (mips_can_use_return_insn): Update.
8782         (mips_reorg_process_insns): Update.
8783         * config/v850/v850.c (compute_register_save_size): Update.
8784         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
8785         * config/mmix/mmix.c (along): Update.
8786         (mmix_expand_epilogue): Update.
8787         * config/bfin/bfin.c (legitimize_pic_address): Update.
8788         (must_save_p): Update.
8789         (stack_frame_needed_p): Update.
8790         (add_to_reg): Update.
8791         (bfin_expand_prologue): Update.
8792         * stmt.c (expand_asm_operands): Update.
8793         * reload1.c (reload): Update.
8794         (init_elim_table): Update.
8795
8796 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
8797         
8798         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
8799         
8800 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
8801
8802         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
8803         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
8804         (mov<mode>): Removed.
8805         (*movv4sf_internal): Likewise.
8806         (*movv2df_internal): Likewise.
8807
8808 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
8809
8810         * config.gcc (crx-*-elf): Remove deprecation.
8811
8812 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
8813
8814         * config/i386/cygming-crtend.c (register_frame_ctor): Register
8815         __gcc_deregister_frame with atexit.
8816         (deregister_frame_dtor): Remove.
8817
8818 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
8819             Nathan Sidwell  <nathan@codesourcery.com>
8820
8821         * config/rs6000/rs6000.opt (mspe): Remove Var property.
8822         (misel): Likewise.
8823         * config/rs6000/rs6000.h (rs6000_spe): Declare.
8824         (rs6000_isel): Likewise.
8825         * config/rs6000/rs6000.c (rs6000_spe): New variable.
8826         (rs6000_isel): New variable.
8827         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
8828
8829 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
8830
8831         PR c++/35758
8832         * c-common.c (handle_vector_size_attribute): Call
8833         lang_hooks.types.reconstruct_complex_type instead of
8834         reconstruct_complex_type.
8835         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
8836         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
8837         * langhooks.h (struct lang_hooks_for_types): Add
8838         reconstruct_complex_type hook.
8839         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
8840         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
8841
8842 2008-04-24  Richard Guenther  <rguenther@suse.de>
8843
8844         * c-common.h (check_builtin_function_arguments): Declare.
8845         * c-common.c (validate_nargs): New function.
8846         (check_builtin_function_arguments): Likewise.
8847         * c-typeck.c (build_function_call): Call
8848         check_builtin_function_arguments.
8849         * builtins.c (fold_builtin_classify): Remove error reporting code.
8850         (fold_builtin_unordered_cmp): Likewise.
8851         (fold_builtin_1): Likewise.
8852         (fold_builtin_n): Likewise.
8853
8854 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
8855
8856         PR tree-optimization/36008
8857         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
8858         the original op1, rather than delta by step.
8859
8860 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
8861             Sebastian Pop  <sebastian.pop@amd.com>
8862
8863         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
8864         eliminate_local_variables_stmt, eliminate_local_variables,
8865         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
8866         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
8867         of code delimited by two edges in the CFG.
8868         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
8869         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
8870         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
8871         the case of parallelisation of reductions.
8872         (expr_invariant_in_region_p): New.
8873
8874         * tree-flow.h (gather_blocks_in_sese_region): Declared.
8875         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
8876
8877 2008-04-24  Ira Rosen  <irar@il.ibm.com>
8878             Richard Guenther  <rguenther@suse.de>
8879
8880         PR tree-optimization/36034
8881         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
8882         incapable of dealing with loads with gaps.
8883
8884 2008-04-24  Rafael Espindola  <espindola@google.com>
8885
8886         * tree-flow.h (vrp_evaluate_conditional): Change signature.
8887         * tree-ssa-propagate.c (fold_predicate_in): Update call to
8888         vrp_evaluate_conditional.
8889         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
8890         (vrp_evaluate_conditional): Split the cond argument.
8891         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
8892         (simplify_stmt_for_jump_threading): Update call to
8893         vrp_evaluate_conditional.
8894
8895 2008-04-24  Ira Rosen  <irar@il.ibm.com>
8896
8897         PR tree-optimization/35982
8898         * tree-vect-analyze.c (vect_check_interleaving): Check that the
8899         interleaved data-refs are of the same type.
8900
8901 2008-04-24  Danny Smith  <dannysmith@users.net>
8902
8903         * c-format.c (check_format_info_main): Use strncmp rather than a
8904         magic prefix to handle multichar length specs.
8905         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
8906         Don't prefix "I64" and "I32" with '\0'.
8907
8908 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
8909
8910         PR target/36015
8911         * config/i386/i386.c (init_cumulative_args): Don't pass anything
8912         in registers for -m32 only if stdarg_p (fntype).
8913
8914 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
8915
8916         PR rtl-optimization/36006
8917         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
8918         temp to op0 in order to avoid invalid rtx sharing.
8919
8920 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
8921
8922         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
8923         check TREE_INVARIANT.
8924         * tree-gimple.c (is_gimple_address): New.
8925         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
8926         * tree-gimple.h (is_gimple_address): New.
8927         * tree.h (decl_address_invariant_p): New.
8928         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
8929         (build_string): Likewise.
8930         (decl_address_invariant_p): New, from is_gimple_invariant_address.
8931         (tree_invariant_p_1): Likewise.
8932         (save_expr): Use it.
8933         (tree_invariant_p): New.
8934         (skip_simple_arithmetic): Use it.
8935         (stabilize_reference_1): Use it.
8936         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
8937         simplify.
8938         (build1_stat): Drop code to compute TREE_INVARIANT.
8939         (build2_stat): Drop code to compute TREE_INVARIANT.
8940         (build3_stat): Drop code to compute TREE_INVARIANT.
8941         (build4_stat): Drop code to compute TREE_INVARIANT.
8942         (build5_stat): Drop code to compute TREE_INVARIANT.
8943         (build7_stat): Drop code to compute TREE_INVARIANT.
8944         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
8945         * tree.h (struct tree_base): Remove invariant_flag.
8946         (TREE_INVARIANT): Remove.
8947         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
8948         (fold_builtin_expect): Check TREE_CONSTANT.
8949         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
8950         * c-tree.h (c_expr_to_decl): Drop third parameter.
8951         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
8952         (build_c_cast): Don't set TREE_INVARIANT.
8953         (pop_init_level): Don't set TREE_INVARIANT.
8954         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
8955         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
8956         TREE_CONSTANT.
8957         (gimplify_init_constructor): Don't set TREE_INVARIANT.
8958         (gimplify_addr_expr): Adjust comment.
8959         * tree-mudflap.c (mf_build_string):
8960         * print-tree.c (print_node): Don't print TREE_INVARIANT.
8961         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
8962         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
8963         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
8964         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
8965         * langhooks.h (struct lang_hooks): Drop third parameter from
8966         expr_to_decl.
8967
8968 2008-04-23  Richard Guenther  <rguenther@suse.de>
8969
8970         PR tree-optimization/27799
8971         PR tree-optimization/32921
8972         PR tree-optimization/32624
8973         * tree-ssa-structalias.c (merge_smts_into): Only merge the
8974         SMTs aliases and the tag itself into the solution.
8975         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
8976         merge the points-to solution back into the SMT aliases.
8977         (may_alias_p): Use alias_set_subset_of instead of
8978         aliases_conflict_p.  A pointer which points to
8979         memory with alias set zero may access any variable.
8980
8981 2008-04-23  Richard Guenther  <rguenther@suse.de>
8982
8983         * alias.c (alias_set_subset_of): Correctly handle asking
8984         if zero is a subset of an alias set with zero child.
8985         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
8986         (compute_flow_insensitive_aliasing): Correctly walk all
8987         pointers.  Do not unnecessarily union sets.
8988
8989 2008-04-23  Richard Guenther  <rguenther@suse.de>
8990
8991         PR middle-end/36021
8992         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
8993
8994 2008-04-22  Tomas Bily  <tbily@suse.cz>
8995
8996         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
8997         unreachable case.
8998         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
8999         NON_LVALUE_EXPR.
9000         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
9001         * tree-ssa-structalias.c (get_constraint_for): Likewise.
9002         * tree-inline.c (estimate_num_insns_1): Likewise.
9003         * varasm.c (const_hash_1, compare_constant, copy_constant)
9004         (compute_reloc_for_constant, output_addressed_constants): Likewise.
9005         * emit-rtl.c (component_ref_for_mem_expr)
9006         (set_mem_attributes_minus_bitpos): Likewise.
9007         * expr.c (highest_pow2_factor, expand_expr_real_1, )
9008         (is_aligning_offset): Likewise.
9009         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
9010         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
9011         * dojump.c (do_jump): Likewise.
9012         * builtins.c (get_pointer_alignment, get_memory_rtx)
9013         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
9014         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
9015
9016 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
9017
9018         PR rtl-optimization/36017
9019         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
9020         expanding the library call.
9021
9022 2008-04-22  Ian Lance Taylor  <iant@google.com>
9023
9024         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
9025         than size_in_bytes.
9026
9027 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
9028
9029         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
9030         of LR/CTR moves for Power6.
9031
9032 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
9033
9034         PR middle-end/36003
9035         * passes.c (init_optimization_passes): Remove
9036         pass_fast_rtl_byte_dce.
9037         
9038 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
9039
9040         PR target/29096
9041         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
9042         builtin functions to generate faster code.
9043         (_mm_cvtpu16_ps): Ditto.
9044         (_mm_cvtpi32x2_ps): Ditto.
9045
9046 2008-04-22  Nick Clifton  <nickc@redhat.com>
9047
9048         * common.opt (ftree-loop-distribution): Add Optimization
9049         attribute.
9050
9051         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
9052         (frv_expand_builtin_va_start): Likewise.
9053
9054         * config/arm/arm.c (thumb_find_work_register): Fix location of
9055         argument register count.
9056
9057 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
9058
9059         Support scheduling for ColdFire V1 and V3 microarchitecture.
9060         Improve scheduling of multiplication instructions.
9061
9062         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
9063         (mac): New instruction attribute.
9064         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
9065         (m68k_sched_mac): New variable.
9066         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
9067         Handle cfv1 and cfv3.
9068         (max_insn_size): New static variable.
9069         (struct _sched_ib): New type.
9070         (sched_ib): New static variable.
9071         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
9072         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
9073         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
9074         Update.
9075         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
9076         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
9077         new variables.  Update.
9078         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
9079         Add modeling of cfv3 instruction buffer.  Update.
9080         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
9081         * config/m68k/m68k.h (TUNE_CFV3): New macro.
9082         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
9083         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
9084         a particular reservation applies to.
9085         (type2): Reorganize attribute values.  Rename alu to alu_reg,
9086         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
9087         to mul_l and mul_w.
9088         (cf_ib_*): Simplify description of instruction buffer.
9089         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
9090         (cf_mem): Split into cf_mem1 and cf_mem2.
9091         (cf_v2_move_??): Rename to cfv12_alu_??.
9092         (cf_v2_move_l_??): Rename to cfv12_omove_??.
9093         (cf_v2_mul_??): Remove reservations.
9094         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
9095         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
9096         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
9097         appropriate place.
9098         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
9099         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
9100         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
9101         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
9102         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
9103         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
9104         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
9105         expansions of the above reservations for instructions of sizes
9106         1, 2 and 3 words.
9107
9108 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
9109
9110         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
9111
9112 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
9113
9114         * coverage.c: Include tree-pass.h.
9115         (coverage_counter_alloc): Print da_file_name to the dump file.
9116
9117 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
9118
9119         * sbitmap.c (sbitmap_range_empty_p): New function.
9120         * sbitmap.h (sbitmap_range_empty_p): New function.
9121         * bitmap.h: Now includes obstack.h.
9122
9123 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
9124             Kenneth Zadeck  <zadeck@naturalbridge.com>
9125
9126         * dbgcnt.def (ra_byte_scan): Added.
9127         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
9128         when the last hit happens for a counter.  
9129         * timevar.def (TV_DF_BYTE_LR): New variable.
9130         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
9131         * passes.c (pass_fast_rtl_byte_dce): New pass.
9132         * fwprop.c (update_df): Added mode to call df_ref_create.
9133         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
9134         DF_REF_EXTRACT_OFFSET.
9135         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
9136         DF_BYTE_LR_OUT, df_byte_lr): New macro.
9137         (df_mm): New enum.
9138         (df_ref_extract): Added mode field.
9139         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
9140         DF_REF_EXTRACT_OFFSET.
9141         (DF_REF_EXTRACT_MODE): New macro.
9142         (df_byte_lr_bb_info): New structure.
9143         (df_print_byte_regset, df_compute_accessed_bytes, 
9144         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
9145         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
9146         df_byte_lr_simulate_uses,
9147         df_byte_lr_simulate_artificial_refs_at_top,
9148         df_byte_lr_simulate_artificial_refs_at_end,
9149         df_compute_accessed_bytes): New function.
9150         (df_ref_create): Add parameter.
9151         (df_byte_lr_get_bb_info): New inline function.
9152         * df-scan.c (df_ref_record, df_uses_record,
9153         df_ref_create_structure): Added mode parameter.
9154         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
9155         df_defs_record, df_uses_record, df_get_conditional_uses,
9156         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
9157         df_entry_block_defs_collect, df_exit_block_uses_collect):
9158         Added mode parameter to calls to df_ref_record, df_uses_record,
9159         df_ref_create_structure.
9160         (df_ref_equal_p, df_ref_compare): Added test for modes.
9161         (df_ref_create_structure): Added code to set mode.  Renamed
9162         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
9163         DF_REF_EXTRACT_OFFSET.
9164         * df-core.c (df_print_byte_regset): New function.
9165         * df-byte-scan.c: New file.
9166         * df-problems.c (df_rd_transfer_function): Removed unnecessary
9167         calls to BITMAP_FREE.  
9168         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
9169         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
9170         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
9171         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
9172         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
9173         df_byte_lr_local_compute, df_byte_lr_init,
9174         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
9175         df_byte_lr_transfer_function, df_byte_lr_free, 
9176         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
9177         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
9178         df_byte_lr_simulate_uses,
9179         df_byte_lr_simulate_artificial_refs_at_top,
9180         df_byte_lr_simulate_artificial_refs_at_end): New function.
9181         * dce.c (byte_dce_process_block): New function.
9182         (dce_process_block): au is now passed in rather than computed
9183         locally.  Changed loops that look at artificial defs to not look
9184         for conditional or partial ones, because there never are any.  
9185         (fast_dce): Now is able to drive byte_dce_process_block or 
9186         dce_process_block depending on the kind of dce being done.
9187         (rest_of_handle_fast_dce): Add parameter to fast_dce.
9188         (rest_of_handle_fast_byte_dce): New function.
9189         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
9190         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
9191
9192 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
9193
9194         PR fortran/35019
9195         * gcc.h: Added fortran options that take arguments to
9196         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
9197         macros.
9198
9199 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
9200
9201         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
9202         scalarization if on the LHS and not a full access.
9203
9204 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9205
9206         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
9207
9208 2008-04-18  Rafael Espindola  <espindola@google.com>
9209
9210         * tree-vrp.c (find_case_label_index): Fix the binary search.
9211         (find_case_label_range): New.
9212         (vrp_visit_switch_stmt): Use find_case_label_range.
9213         (simplify_switch_using_ranges): Use find_case_label_range.
9214
9215 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
9216
9217         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
9218         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
9219
9220 2008-04-18  Tom Tromey  <tromey@redhat.com>
9221
9222         PR libcpp/15500:
9223         * doc/cpp.texi (Implementation-defined behavior): Mention
9224         -finput-charset.
9225
9226 2008-04-18  Ian Lance Taylor  <iant@google.com>
9227
9228         * fold-const.c (pointer_may_wrap_p): New static function.
9229         (fold_comparison): Add another test for pointer overflow.  Use
9230         pointer_may_wrap_p to disable some false positives.
9231
9232 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
9233           
9234         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
9235         (fname_as_string): Match updated cpp_interpret_string prototype.
9236         (fix_string_type): Support char16_t* and char32_t*.
9237         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
9238         derivative) nodes.  Register as builtin if C++0x.
9239         (c_parse_error): Support CPP_CHAR{16,32}.
9240         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
9241         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
9242         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
9243         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
9244         CTI_CHAR32_ARRAY_TYPE>: New elements.
9245         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
9246         char32_type_node, signed_char32_type_node, char16_array_type_node,
9247         char32_array_type_node): New defines.
9248         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
9249         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
9250         (lex_string): Support CPP_STRING{16,32}, match updated
9251         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
9252         (lex_charconst): Support CPP_CHAR{16,32}.
9253         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
9254         and CPP_STRING{16,32}.
9255
9256 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
9257
9258         PR bootstrap/35457
9259         * aclocal.m4: Regenerate.
9260         * configure: Regenerate.
9261
9262 2008-04-18  Jan Hubicka  <jh@suse.cz>
9263
9264         * except.c (dw2_size_of_call_site_table,
9265         sjlj_size_of_call_site_table): Use vector API for call_site_record.
9266
9267         * cgraphbuild.c (build_cgraph_edges): Update.
9268         * tree-pass.h: Update comment.
9269         * final.c (leaf_function_p): Update.
9270         (leaf_renumber_regs): Update.
9271         (rest_of_clean_state): Update.
9272         * omp-low.c (expand_omp_parallel): Update.
9273         * ipa-reference.c (analyze_function): Update.
9274         * reorg.c (find_end_label): Update.
9275         (optimize_skip): Update.
9276         (fill_simple_delay_slots): Update.
9277         (fill_simple_delay_slots): Update.
9278         (make_return_insns): Update.
9279         (dbr_schedule): Update.
9280         * gimple-low.c (record_vars_into): Update.
9281         * cfgbuild.c (make_edges): Update.
9282         * function.c (assign_stack_local): Update.
9283         (assign_parm_adjust_stack_rtl): Update.
9284         (locate_and_pad_parm): Update.
9285         (allocate_struct_function): Do not initialize stack_alignment_needed
9286         and preferred_stack_boundary here.
9287         (stack_protect_prologue): Update.
9288         (stack_protect_epilogue): Update.
9289         (expand_function_start): Initialize stack_alignment_needed,
9290         preferred_stack_boundary and max_jumptable_ents.
9291         (expand_function_end): Update.
9292         (free_after_compilation): Do not NULLify epilogue_delay_list.
9293         * function.h (struct rtl_data): Add stack_protect_guard,
9294         stack_alignment_needed,
9295         preferred_stack_boundary, epilogue_delay_list.
9296         (struct function): Remove value_histograms, stack_alignment_needed,
9297         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
9298         last_label_uid,
9299         unexpanded_var_list, stack_protect_guard.
9300         (current_function_epilogue_delay_list): Remove.
9301         * ipa-type-escape.c (analyze_function): Update.
9302         * gimplify.c (pop_gimplify_context): Update comment.
9303         * calls.c (expand_call): Update.
9304         (emit_library_call_value_1): Update.
9305         * except.c (set_nothrow_function_flags): Update.
9306         * cfgexpand.c (get_decl_align_unit): Update.
9307         (create_stack_guard): Update.
9308         (estimated_stack_frame_size): Update.
9309         (expand_used_vars): Update.
9310         (tree_expand_cfg): Free histogram earliers, init expansion variables.
9311         * explow.c (allocate_dynamic_stack_space): Update.
9312         * tree-ssa-live.c (remove_unused_locals): Update.
9313         * varasm.c (mark_constant_pool): Update.
9314         * tree-inline.c (remap_decls): Update.
9315         (initialize_cfun): Update.
9316         (declare_return_variable): Update.
9317         (inline_forbidden_p): Update.
9318         (expand_call_inline): Update.
9319         (declare_inline_vars): Update.
9320         (tree_function_versioning): Update.
9321         * tree-flow.h (value_histograms): New.
9322         (VALUE_HISTOGRAMS): New macro.
9323         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
9324         last_label_uid.
9325         * tree-cfg.c (set_bb_for_stmt): Update.
9326         (replace_by_duplicate_decl): Update.
9327         (move_block_to_fn): Update.
9328         (new_label_mapper): Update.
9329         (dump_function_to_file): Update.
9330         * ipa-struct-reorg.c (build_data_structure): Update.
9331         * cfgrtl.c (print_rtl_with_bb): Update.
9332         * reload1.c (reload): Update.
9333         (reload): Update.
9334         * config/i386/i386.c (setup_incoming_varargs_64,
9335         ix86_compute_frame_layout): Update.
9336         * config/arc/arc.c (arc_output_function_epilogue): Update.
9337
9338 2008-04-18  Marius Strobl <marius@FreeBSD.org>
9339
9340         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
9341         for FreeBSD as well.
9342         * gthr-posix95.h: Likewise.
9343
9344 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
9345
9346         PR rtl-optimization/35838
9347         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
9348         out the byte offset of the first subreg.
9349
9350 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
9351
9352         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
9353         to split_ti instead of three separate calls with single member arrays.
9354         (subti3 splitter): Ditto.
9355         (adddi3 splitter): Ditto with split_di.
9356         (subdi3 splitter): Ditto.
9357         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
9358         two separate calls with single member arrays.  Swap match_dup
9359         operands 1 and 2 to better fit into the array.
9360         (negdi2 splitter): Ditto with split_di.
9361         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
9362         two separate calls with single member arrays.  Swap match_dup operands
9363         6 and 7 to better fit into the array.
9364
9365 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
9366
9367         * config/i386/i386.c (sse_builtin_type): New.
9368         (bdesc_sse_args): Likewise.
9369         (bdesc_sse_3arg): Removed.
9370         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
9371         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
9372         IX86_BUILTIN_ROUNDPS.
9373         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
9374         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
9375         IX86_BUILTIN_ROUNDPS.
9376         (ix86_expand_sse_4_operands_builtin): Removed.
9377         (ix86_expand_sse_operands_builtin): New.
9378         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
9379         and CODE_FOR_sse4_1_roundps.
9380         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
9381         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
9382
9383 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
9384
9385         PR target/35907
9386         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
9387         regs before frame pop when needed.  If use_backchain_to_restore_sp
9388         then load backchain into a temp reg to restore vr and vrsave.  Add
9389         code to restore vr after frame pop if possible.
9390
9391 2008-04-17  Richard Guenther  <rguenther@suse.de>
9392
9393         * tree-vn.c (expressions_equal_p): Do not check type
9394         equality or compatibility before calling operand_equal_p.
9395         * fold-const.c (operand_equal_p): Check equivalence of
9396         integer constants before bailing out due to signedness or
9397         precision differences.
9398         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
9399         spurious differences in type qualification.  Ignore types
9400         for COMPONENT_REFs at all.
9401
9402 2008-04-17  Christian Bruel  <christian.bruel@st.com>
9403
9404         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
9405         msw_skip comparison.
9406         
9407 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
9408
9409         PR c/35739
9410         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
9411         reg type.
9412
9413         PR tree-optimization/35899
9414         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
9415         rather than TREE_OPERAND.
9416
9417 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
9418
9419         PR target/35944
9420         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
9421         temporary registers.  Change operand predicate to general_operand.
9422         (remainderxf3): Ditto.
9423
9424 2008-04-16  Richard Guenther  <rguenther@suse.de>
9425
9426         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
9427         * tree-affine.c (aff_combination_expand): Look through some
9428         conversions.
9429
9430 2008-04-15  Doug Kwan  <dougkwan@google.com>
9431
9432         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
9433         for hex printing.
9434         * tree-pretty-print.c (dump_generic_node): Ditto.
9435         * final.c (output_addr_const): Ditto.
9436         * dwarf2out.c (output_cfi): Ditto.
9437         * c-pretty-print.c (pp_c_integer_constant): Ditto.
9438         * print-rtl.c (print_rtx): Ditto.
9439         * print-tree.c (print_node_brief, print_node): Ditto.
9440         * c-common.c (match_case_to_enum_1): Ditto.
9441         * sched-vis.c (print_value): Ditto.
9442         * config/i386/i386.c (print_operand): Cast to long unsigned int
9443         for hex printing.
9444
9445 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
9446         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
9447         MS Windows VirtualProtect function.
9448
9449 2008-04-15  Jan Hubicka  <jh@suse.cz>
9450
9451         * gengtype.c (write_root): Param_is argument is OK.
9452         * expr.c (expand_expr_real_1): Update call of get_exception_*.
9453         * function.h: Include varray.h
9454         (rtl_eh): New stucture based on except.c one.
9455         (call_site_record): New forward declaration and vector type.
9456         * calls.c (emit_call_1): Do not call
9457         note_current_region_may_contain_throw.
9458         * except.c (eh_status): Remove cur_region, try_region since they are
9459         unused.
9460         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
9461         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
9462         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
9463         Remove call_site_data_used, call_site_data_size.
9464         Turn call_site_record into vector in function.h.
9465         (note_current_region_may_contain_throw): Remove.
9466         (get_exception_pointer, get_exception_filter): Do not take struct
9467         function argument; update.
9468         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
9469         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
9470         build_post_landing_pads, dw2_build_landing_pads,
9471         sjlj_assign_call_site_values, sjlj_mark_call_sites,
9472         sjlj_emit_function_enter, sjlj_emit_function_enter, 
9473         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
9474         sjlj_build_landing_pads, finish_eh_generation,
9475         remove_exception_handler_label, remove_eh_handler,
9476         maybe_remove_eh_handler, add_reachable_handler,
9477         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
9478         add_action_record, collect_one_action_chain, add_call_site,
9479         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
9480         sjlj_output_call_site_table, output_function_exception_table,
9481         * except.h (note_current_region_may_contain_throw): Remove
9482         (get_exception_pointer, get_exception_filter): Do not take struct
9483         function argument.
9484         * Makefile.in (GTFILES): Put varargs before struct function.
9485
9486 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
9487
9488         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
9489         punt for STRING_CST.
9490         (get_constraint_for): Deal with STRING_CST here instead.
9491
9492 2008-04-15  Richard Guenther  <rguenther@suse.de>
9493
9494         * tree-ssa-propagate.c (substitute_and_fold): Substitute
9495         statements in a basic-block with a backward walk.  Do not
9496         substitute into dead statements but instead remove those.
9497
9498 2008-04-15  Richard Guenther  <rguenther@suse.de>
9499
9500         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
9501         to zero, thus disable creation of SFTs.
9502
9503 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
9504
9505         * tree-predcom.c (suitable_reference_p): Return false if the
9506         reference can throw.
9507
9508 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
9509
9510         PR c/35751
9511         * c-decl.c (finish_decl): If extern or static var has variable
9512         size, set TREE_TYPE (decl) to error_mark_node.
9513
9514 2008-04-15  Rafael Espindola  <espindola@google.com>
9515
9516         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
9517         variable arg1.
9518
9519 2008-04-15  Richard Guenther  <rguenther@suse.de>
9520
9521         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
9522         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
9523         (visit_reference_op_load): Do walk vuse-vdef chains on
9524         vn_reference_lookup.
9525         (visit_reference_op_store): But do not here.
9526         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
9527         vn_reference_lookup.
9528         (vn_lookup_with_vuses): But do so here.
9529
9530 2008-04-14  Ian Lance Taylor  <iant@google.com>
9531
9532         * fold-const.c (fold_overflow_warning): Remove assertion.
9533
9534 2008-04-15  Ben Elliston  <bje@au.ibm.com>
9535
9536         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
9537         temp1 local variables.
9538
9539 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
9540
9541         PR target/35661
9542         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
9543         ".text.unlikely" section as executable.
9544
9545 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
9546
9547         * config/ia64/ia64.c (rtx_needs_barrier): Handle
9548         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
9549         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
9550         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
9551         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
9552         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
9553         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
9554
9555 2008-04-14  Ian Lance Taylor  <iant@google.com>
9556
9557         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
9558         * fold-const.c (fold_comparison): If appropriate, test
9559         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
9560         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
9561         reassociating a pointer type.
9562         * doc/invoke.texi (Optimize Options): Document that
9563         -fstrict-overflow applies to pointer wraparound.
9564
9565 2008-04-13  Jan Hubicka  <jh@suse.cz>
9566
9567         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
9568
9569 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
9570
9571         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
9572         we are going to "save the world".
9573
9574 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
9575
9576         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
9577         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
9578         operand 0 constraint, not "=".
9579
9580 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
9581
9582         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
9583
9584 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
9585
9586         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
9587         of size of positions_needed * CHAR_BIT.
9588
9589 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
9590
9591         PR middle-end/35897
9592         * dse.c (store_info): Change positions_needed to unsigned
9593         HOST_WIDE_INT.
9594         (lowpart_bitmask): New.
9595         (record_store): Cast to unsigned HOST_WIDE_INT for
9596         positions_needed.  Assert width <= size of positions_needed *
9597         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
9598         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
9599         lowpart_bitmask to set mask.
9600
9601 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
9602
9603         * config/bfin/constraints.md: New file.
9604         * config/bfin/bfin.md: Include it.
9605         (adddi3): Use satisfies_constraint functions instead of the old macros.
9606         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
9607         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
9608         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
9609         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
9610         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
9611         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
9612         EXTRA_CONSTRAINT): Delete.
9613         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
9614         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
9615         of the old macros.
9616         * config/bfin/bfin.c: Include "tm-constrs.h".
9617         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
9618         Use satisfies_constraint functions instead of the old macros.
9619         * doc/md.texi (Blackfin Constraints): Update file name reference.
9620
9621 2008-04-11  Richard Guenther  <rguenther@suse.de>
9622
9623         PR tree-optimization/35869
9624         * tree-vrp.c (execute_vrp): Move switch statement update after
9625         jump threading.  Schedule another cfg cleanup run.
9626
9627 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
9628
9629         PR c/35744
9630         * attribs.c (decl_attributes): Return early on errorneous node.
9631
9632 2008-04-10  Oleg Ryjkov  <olegr@google.com>
9633
9634         * tree.h (struct tree_base): Added a new flag default_def_flag.
9635         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
9636
9637 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
9638
9639         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
9640
9641 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9642
9643         PR target/35768
9644         * pa.md: Define mode iterator P.  Define mode attribute dwc.
9645         (dcacheflush): Update pattern to use iterator P and attribute dwc.
9646         (icacheflush): Likewise.
9647         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
9648         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
9649
9650 2008-04-11  Ben Elliston  <bje@au.ibm.com>
9651
9652         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
9653
9654 2008-04-10  Rafael Espindola  <espindola@google.com>
9655
9656         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
9657         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
9658         (extract_range_from_expr): The same.
9659
9660 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
9661
9662         * config/mips/mips.md (GPR2): New mode iterator.
9663         (seq): Add comment.
9664         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
9665         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
9666         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
9667         Rewrite these to take two modes, the mode of comparison and the
9668         mode of the destination.
9669         * config/mips/mips.c (mips_expand_scc): Instead of having
9670         paradoxical subreg as destination, expand "narrowing" scc if mode
9671         of comparison is SI and target is requested in DI mode.
9672         (mips_emit_int_order_test): Update comment.  Make mode of
9673         comparison match CMP0 rather than TARGET.  When creating inverse
9674         target use mode of TARGET.
9675
9676 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
9677
9678         * gcov-dump.c (tag_summary): Only print summaries for the first
9679         GCOV_COUNTERS_SUMMABLE counters.
9680
9681 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
9682
9683         * config/i386/i386.md (absneg): New code iterator.
9684         (absnegprefix): New code attribute.
9685         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
9686         patterns using absneg code iterator.
9687         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
9688         using absneg code iterator.
9689         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
9690         *neg<mode>2 patterns using absneg code iterator.
9691         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
9692         *negextendsfdf2 patterns using absneg code iterator.
9693         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
9694         *negextendsfxf2 patterns using absneg code iterator.
9695         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
9696         *negextendsfdf2 patterns using absneg code iterator.
9697         * config/i386/sse.md (<code><mode>2): Macroize expander from
9698         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
9699
9700 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
9701
9702         * config/s390/s390.h: Remove the remains of the recent search
9703         & replace action of current_function_outgoing_args_size.
9704
9705 2008-04-10  Ira Rosen  <irar@il.ibm.com>
9706
9707         PR tree-optimization/35821
9708         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
9709         NEW_STMT_LIST is not NULL.
9710
9711 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
9712
9713         PR libstdc++/35597
9714         * toplev.c (process_options): Remove -ffunction-sections debugging
9715         warning.
9716
9717 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
9718
9719         PR middle-end/PR28690
9720         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
9721         than gen_rtx_fmt_ee to perform more canonicalizations.
9722
9723 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9724
9725         PR driver/35665
9726         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
9727
9728 2008-04-09  Richard Guenther  <rguenther@suse.de>
9729
9730         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
9731         (dump_function_to_file): Dump function arguments with types.
9732
9733 2008-04-08  Richard Guenther  <rguenther@suse.de>
9734
9735         * fold-const.c (fold_widened_comparison): Do not allow
9736         sign-changes that change the result.
9737
9738 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
9739
9740         PR target/35839
9741         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
9742         kinds of indirect references.
9743
9744 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
9745
9746         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
9747         GNU Fortran language string.
9748
9749 2008-04-08  Rafael Espindola  <espindola@google.com>
9750
9751         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
9752         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
9753         * tree.h (tree_call_nonnegative_warnv_p): New.
9754
9755 2008-04-08  Jan Hubicka  <jh@suse.cz>
9756
9757         * function.c (free_after_compilation): Clear out regno_reg_rtx
9758         pointer.
9759
9760 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
9761
9762         Revert
9763         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
9764
9765         PR middle-end/PR28690
9766         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
9767         same precedence as REG_POINTER and MEM_POINTER operands.
9768
9769 2008-04-08  Richard Guenther  <rguenther@suse.de>
9770
9771         PR middle-end/35834
9772         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
9773         for adding index to base.
9774
9775 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
9776
9777         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
9778         (MINGW_ENABLE_EXECUTE_STACK): New.
9779         (IN_LIBGCC2): For libgcc include windows.h file for
9780         function declarations.
9781
9782 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
9783
9784         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
9785         and tem2 if tem1 is not a REG or MULT.
9786
9787 2008-04-08  Jan Hubicka  <jh@suse.cz>
9788
9789         * function.h (incomming_args): Break out of struct function.
9790         (function_subsections): Break out of struct function.
9791         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
9792         return_rtx and hard_reg_initial_vals from struct function.
9793         Kill inl_max_label_num.
9794         (current_function_pops_args, current_function_args_info,
9795         current_function_args_size, current_function_args_size,
9796         current_function_pretend_args_size,
9797         current_function_outgoing_args_size,
9798         current_function_internal_arg_pointer, current_function_return_rtx):
9799         Kill compatibility accestor macros.
9800         * builtins.c (expand_builtin_apply_args_1): Update.
9801         (expand_builtin_next_arg): Update.
9802         * df-scan.c (df_get_call_refs): Update.
9803         * dbxout.c (dbxout_function_end): Update.
9804         * dwarf2out.c (dwarf2out_switch_text_section): Update.
9805         (output_line_info): Update.
9806         (secname_for_decl): Update.
9807         (dwarf2out_var_location): Update.
9808         * function.c (free_after_compilation): Update.
9809         (assign_parm_find_stack_rtl): Update.
9810         (assign_parms): Update.
9811         (expand_dummy_function_end): Update.
9812         (expand_function_end): Update.
9813         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
9814         (expand_call): Update.
9815         (emit_library_call_value_1): Update.
9816         (store_one_arg): Update.
9817         * varasm.c (initialize_cold_section_name): Update.
9818         (unlikely_text_section): Update.
9819         (unlikely_text_section_p): Update.
9820         (assemble_start_function): Update.
9821         (assemble_end_function): Update.
9822         (default_section_type_flags): Update.
9823         (switch_to_section): Update.
9824         * integrate.c (set_decl_abstract_flags): Update.
9825         (get_hard_reg_initial_val): Update.
9826         (has_hard_reg_initial_val): Update.
9827         (allocate_initial_values): Update.
9828         * resource.c (init_resource_info): Update.
9829         * config/alpha/alpha.c (NUM_ARGS): Update.
9830         (direct_return): Update.
9831         (alpha_va_start): Update.
9832         (alpha_sa_size): Update.
9833         (alpha_initial_elimination_offset): Update.
9834         (alpha_expand_prologue): Update.
9835         (alpha_start_function): Update.
9836         (alpha_expand_epilogue): Update.
9837         (unicosmk_initial_elimination_offset):
9838         * config/alpha/alpha.md (call expander): Update.
9839         * config/s390/s390.c (s390_register_info): Update.
9840         (s390_register_info): Update.
9841         (s390_frame_info): Update.
9842         (s390_initial_elimination_offset): Update.
9843         (s390_build_builtin_va_list): Update.
9844         (s390_va_start): Update.
9845         * config/spu/spu.c (direct_return): Update.
9846         (spu_expand_prologue): Update.
9847         (spu_initial_elimination_offset): Update.
9848         (spu_build_builtin_va_list): Update.
9849         (spu_va_start): Update.
9850         * config/sparc/sparc.c (sparc_init_modes): Update.
9851         (sparc_compute_frame_size): Update.
9852         (function_value): Update.
9853         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
9854         * config/i386/i386.md (return expander): Update.
9855         * config/i386/i386.c (ix86_va_start): Update.
9856         (ix86_can_use_return_insn_p): Update.
9857         (ix86_compute_frame_layout): Update.
9858         (ix86_expand_epilogue): Update.
9859         * config/sh/sh.c (output_stack_adjust): Update.
9860         (calc_live_regs): Update.
9861         (sh_expand_prologue): Update.
9862         (sh_builtin_saveregs): Update.
9863         (sh_va_start): Update.
9864         (initial_elimination_offset): Update.
9865         (sh_allocate_initial_value): Update.
9866         (sh_function_ok_for_sibcall): Update.
9867         (sh_get_pr_initial_val): Update.
9868         * config/sh/sh.md (return expander): Update.
9869         * config/avr/avr.c (frame_pointer_required_p): UPdate.
9870         * config/crx/crx.c (crx_compute_frame): UPdate.
9871         (crx_initial_elimination_offset): UPdate.
9872         * config/xtensa/xtensa.c (compute_frame_size): Update
9873         (xtensa_builtin_saveregs): Update.
9874         (xtensa_va_start): Update.
9875         (order_regs_for_local_alloc): Update.
9876         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
9877         (xstormy16_expand_builtin_va_start): Update.
9878         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
9879         * config/m68hc11/m68hc11.md (return expanders): Update.
9880         * config/m68hc11/m68hc11.c (expand_prologue): Update.
9881         (expand_epilogue): Update.
9882         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
9883         (cris_simple_epilogue): Update.
9884         (cris_expand_prologue): Update.
9885         (cris_expand_epilogue): Update.
9886         * config/iq2000/iq2000.c (iq2000_va_start): Update.
9887         (compute_frame_size): Update.
9888         * config/mt/mt.c (mt_compute_frame_size): Update.
9889         * config/mn10300/mn10300.c (expand_prologue): Update.
9890         (expand_epilogue): Update.
9891         (initial_offset): Update.
9892         (mn10300_builtin_saveregs):
9893         * config/mn10300/mn10300.md (return expander): Update.
9894         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
9895         (ia64_initial_elimination_offset): Update.
9896         (ia64_initial_elimination_offset): Update.
9897         (ia64_expand_prologue): Update.
9898         * config/m68k/m68k.md (return expander): Update.
9899         * config/rs6000/rs6000.c (rs6000_va_start): Update.
9900         (rs6000_stack_info): Update.
9901         * config/mcore/mcore.c (layout_mcore_frame): Update.
9902         (mcore_expand_prolog): Update.
9903         * config/arc/arc.c (arc_compute_frame_size): Update.
9904         * config/score/score3.c (score3_compute_frame_size): Update.
9905         * config/score/score7.c (score7_compute_frame_size): Update.
9906         * config/arm/arm.c (use_return_insn): Update.
9907         (thumb_find_work_register): Update.
9908         (arm_compute_save_reg_mask): Update.
9909         (arm_output_function_prologue): Update.
9910         (arm_output_epilogue): Update.
9911         (arm_size_return_regs): Update.
9912         (arm_get_frame_offsets): Update.
9913         (arm_expand_prologue): Update.
9914         (thumb_exit): Update.
9915         (thumb_unexpanded_epilogue): Update.
9916         (thumb1_output_function_prologue): Update.
9917         * config/pa/pa.md (return expander): Update.
9918         * config/pa/pa.c (compute_frame_size): Update.
9919         (hppa_builtin_saveregs): Update.
9920         * config/mips/mips.c (mips_va_start): Update.
9921         (mips16_build_function_stub): Update.
9922         (mips_compute_frame_info): Update.
9923         (mips_restore_gp): Update.
9924         (mips_output_function_prologue): Update.
9925         (mips_expand_prologue): Update.
9926         * config/v850/v850.c (compute_frame_size): Update.
9927         (expand_prologue): * config/mmix/mmix.c (along): update.
9928         (mmix_initial_elimination_offset): update.
9929         (mmix_reorg): update.
9930         (mmix_use_simple_return): update.
9931         (mmix_expand_prologue): update.
9932         (mmix_expand_epilogue): Update.
9933         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
9934         (emit_link_insn): Update.
9935
9936 2008-04-08  Anatoly Sokolov <aesok@post.ru>
9937
9938         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
9939         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
9940         instructions.
9941         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
9942         atmega103 device.
9943
9944 2008-04-07  Jan Hubicka  <jh@suse.cz>
9945
9946         * function.h (rtl): Rename to x_rtl.
9947         (crtl): New define.
9948         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
9949         frame_offset, stack_check_probe_note, arg_pointer_save_area,
9950         used_temp_slots avail_temp_slots, temp_slot_level,
9951         nonlocal_goto_handler_labels): Update accesstors.
9952         (rtl): New global variable.
9953         (struct function): Move some fileds to rtl_data.
9954         (get_arg_pointer_save_area): Update prototype.
9955         * builtins.c (expand_builtin_setjmp_receiver): Update call of
9956         get_arg_pointer_save_area.
9957         * expr.c (init_expr): Update
9958         * function.c (get_frame_size): Update
9959         (assign_stack_local): Update
9960         (expand_function_end): Update.
9961         (get_art_pointer_save_area): Update
9962         * function.h 
9963         * emit-rtl.c (rtl): Declare.
9964         (regno_reg_rtx): Declare.
9965         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
9966         Update.
9967         (gen_reg_rtx): Update.
9968         * varasm.c (n_deferred_constatns): Update accestor.
9969         (init_varasm_status): Do not allocate varasm_status.
9970         (force_const_mem, get_pool_size, output_constant_pool): Update.
9971         * stmt.c (force_label_rtx): Do not use x_ prefixes.
9972         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
9973         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
9974         * sparc/sparc.h (INIT_EXPANDERS): Update.
9975         * ia64/ia64.h (INIT_EXPANDERS): Update.
9976
9977 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
9978
9979         * reload.c (push_secondary_reload): Add missing break to for loop.
9980
9981 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
9982
9983         PR middle-end/PR28690
9984         * rtlanal.c: Update copyright years.
9985         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
9986         as REG_POINTER and MEM_POINTER operands.
9987         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
9988         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
9989         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
9990         * gcse.c: Update copyright years.
9991         (pre_delete): Call gen_reg_rtx_and_attrs.
9992         (hoist_code): Likewise.
9993         (build_store_vectors): Likewise.
9994         (delete_store): Likewise.
9995         * loop-invariant.c (move_invariant_reg): Likewise.
9996         Update copyright years.
9997
9998 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
9999
10000         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
10001         control string instead of quoted.
10002
10003 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
10004
10005         * doc/rtl.texi: Rewrite of subreg section.
10006
10007 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
10008
10009         PR/35842
10010         * config/i386/i386.c (legitimize_pic_address): Add treating
10011         of dllimport SYM_REF's.
10012         (legitimize_dllimport_symbol): Add prototype.
10013
10014 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
10015
10016         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
10017         reference in constructor with non self-referential type.
10018
10019 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
10020
10021         Removal of Return with Depressed Stack Pointer support
10022         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
10023         (ECF_SP_DEPRESSED): Likewise.
10024         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
10025         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
10026         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
10027         (expand_call): Do not test ECF_SP_DEPRESSED.
10028         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
10029         * function.c (keep_stack_depressed): Delete.
10030         (handle_epilogue_set): Likewise.
10031         (update_epilogue_consts): Likewise.
10032         (emit_equiv_load): Likewise.
10033         (thread_prologue_and_epilogue_insns): Remove support for Return with
10034         Depressed Stack Pointer.
10035         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
10036
10037 2008-04-06  Richard Guenther  <rguenther@suse.de>
10038
10039         PR tree-optimization/35400
10040         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
10041         information from SSA_NAMEs.
10042
10043 2008-04-06  Anatoly Sokolov <aesok@post.ru>
10044
10045         * config/avr/avr.h (avr_mega_p): Remove declaration.
10046         (AVR_MEGA): Remove macro.
10047         * config/avr/avr.c (avr_mega_p): Remove variable.
10048         (avr_override_options): Remove inicializion of avr_mega_p.
10049         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
10050         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
10051         (avr_jump_mode): (Ditto.).
10052         (avr_output_progmem_section_asm_op): (Ditto.).
10053         (avr_asm_init_sections): (Ditto.).
10054         (avr_asm_init_sections): (Ditto.).
10055         (avr_rtx_costs): (Ditto.).
10056         * config/avr/avr.md: (Ditto.).
10057         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
10058         '__AVR_MEGA__'.
10059
10060 2008-04-06  Richard Guenther  <rguenther@suse.de>
10061
10062         PR tree-optimization/35842
10063         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
10064         is_gimple_invariant_address.
10065
10066 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10067
10068         * gcc.c (default_compilers): Sync Fortran extensions list with
10069         that in fortran/lang-specs.h.
10070         * doc/invoke.texi: Likewise.
10071         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
10072         * dwarf2out.c (gen_compile_unit_die): Likewise.
10073
10074 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
10075
10076         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
10077
10078 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
10079
10080         PR target/12329
10081         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
10082         attribute is used for nested functions.
10083
10084 2008-04-05  Jan Hubicka  <jh@suse.cz>
10085
10086         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
10087
10088         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
10089         letter argument.
10090         (dump_files): Update.
10091         (enable_rtl_dump_file): Do not accept letter argument.
10092         * tree-pass.h (dump_file_info): Remove letter argument.
10093         * toplev.c (decode_d_option): Update -da handling.
10094         * toplev.h (enable_rtl_dump_file): Update prototype.
10095         * passes.c (register_one_dump_file): Do not accept IPA argument; work
10096         it out based on pass type.
10097         (register_dump_files_1): Likewise.
10098         (init_optimization_passes): Update register_one_dump_file calls.
10099         (execute_one_pass): Sanity check that IPA passes are called at IPA
10100         level and RTL passes at RTL level.
10101         (execute_pass_list): IPA pass can not be after or subpass of
10102         GIMPLE/RTL pass.
10103         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
10104         disallov RTL subpasses of IPA subpasses.
10105
10106 2008-04-05  Ben Elliston  <bje@au.ibm.com>
10107
10108         * tree-cfg.c (need_fake_edge_p): Return false for calls to
10109         builtins that return exactly once and do not throw. Cache call to
10110         call_expr_flags.
10111
10112 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
10113
10114         PR rtl-optimization/34916
10115         PR middle-end/35519
10116         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
10117         between instruction pairs.
10118
10119 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
10120
10121         * doc/invoke.texi: Document -mbitops for SH.
10122         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
10123         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
10124         * config/sh/sh.c (print_operand): Add %t operand code.
10125         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
10126         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
10127         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
10128         (extendqihi2): Likewise.
10129         (movqi_i): Likewise.
10130         (insv): Use bset, bclr and bst instructions for SH2A if possible.
10131         (extv): Use bld instruction for SH2A if possible.
10132         (extzv): Likewise.
10133         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
10134         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
10135         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
10136         (bset.b, bclr.b): Define peepholes.
10137         * config/sh/sh.opt (mbitops): New option.
10138
10139 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
10140
10141         PR target/35620
10142         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
10143         and view convert expression.
10144
10145 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
10146
10147         PR target/35364
10148         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
10149
10150 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
10151
10152         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
10153
10154         * config/i386/cpuid.h (bit_AES): New.
10155         (bit_PCLMUL): Likewise.
10156
10157         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
10158         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
10159         SSE2 if AES or PCLMUL is enabled.
10160         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
10161         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
10162         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
10163         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
10164         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
10165         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
10166         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
10167         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
10168         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
10169         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
10170         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
10171         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
10172         __builtin_ia32_aeskeygenassist128 and
10173         __builtin_ia32_pclmulqdq128.
10174         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
10175         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
10176         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
10177
10178         * config/i386/i386.h (TARGET_AES): New.
10179         (TARGET_PCLMUL): Likewise.
10180         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
10181
10182         * config/i386/i386.md (UNSPEC_AESENC): New.
10183         (UNSPEC_AESENCLAST): Likewise.
10184         (UNSPEC_AESDEC): Likewise.
10185         (UNSPEC_AESDECLAST): Likewise.
10186         (UNSPEC_AESIMC): Likewise.
10187         (UNSPEC_AESKEYGENASSIST): Likewise.
10188         (UNSPEC_PCLMUL): Likewise.
10189
10190         * config/i386/i386.opt (maes): New.
10191         (mpclmul): Likewise.
10192
10193         * config/i386/sse.md (aesenc): New pattern.
10194         (aesenclast): Likewise.
10195         (aesdec): Likewise.
10196         (aesdeclast): Likewise.
10197         (aesimc): Likewise.
10198         (aeskeygenassist): Likewise.
10199         (pclmulqdq): Likewise.
10200
10201         * config/i386/wmmintrin.h: New.
10202
10203         * doc/extend.texi: Document AES and PCLMUL built-in function.
10204
10205         * doc/invoke.texi: Document -maes and -mpclmul.
10206
10207 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
10208
10209         * function.c (free_after_parsing): Replace with
10210         cxx_push_function_context from C++ front-end.
10211         (allocate_struct_function): Don't call langhook.
10212         * langhooks.h (struct lang_hooks_for_functions): Delete.
10213         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
10214         member "function".
10215         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
10216         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
10217         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
10218         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
10219         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
10220         remove LANG_HOOKS_FUNCTION_INITIALIZER.
10221         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
10222
10223         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
10224         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
10225         
10226 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
10227
10228         PR c/35440
10229         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
10230         for all types.
10231
10232 2008-04-04  Richard Guenther  <rguenther@suse.de>
10233
10234         PR middle-end/35823
10235         * fold-const.c (optimize_minmax_comparison): Use the correct
10236         type for the constant in the simplified comparison.
10237
10238 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
10239
10240         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
10241         Pass L2 size as "--param l2-cache-size" to the compiler.
10242         (decode_l2_cache): New function to decode L2 cache parameters using
10243         0x8000006 extended cpuid function.
10244         (detect_caches_amd): Determine parameters of L2 cache using
10245         decode_l2_caches function.
10246         (decode_caches_intel): Decode L2 cache parameters.
10247         (detect_caches_intel): Determine L2 cache parameters using
10248         decode_caches_intel and decode_l2_caches functions.
10249
10250 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
10251
10252         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
10253         secondary input reload for subword loads from the constant pool.
10254
10255 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
10256
10257         PR target/35713
10258         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
10259           constants of the appropriate size for runtime calculations.
10260
10261         PR c/35712
10262         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
10263           decimal-float literal constant zero.
10264
10265 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
10266
10267         PR c/35738
10268         * c-parser.c (c_parser_omp_atomic): Call
10269         default_function_array_conversion on the RHS.
10270
10271         PR middle-end/35818
10272         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
10273         call is_variable_sized if decl has incomplete type.
10274
10275 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
10276
10277         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
10278
10279 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
10280
10281         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
10282         iterators.
10283         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
10284         (sgt<u>): Merge sgt and sgtu into new expander.
10285         (sgt, sgtu): Remove expanders.
10286         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
10287         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
10288         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
10289         *sgtu_<mode>_mips16 into new pattern.
10290         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
10291         (sge<u>): Merge sge and sgeu into new expander.
10292         (sge, sgeu): Remove expanders.
10293         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
10294         new pattern.
10295         (*sge_<mode>, second *sge_<mode>): Remove patterns.
10296         (slt<u>): Merge slt and sltu into new expander.
10297         (slt, sltu): Remove expanders.
10298         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
10299         (*slt_<mode>, *sltu_<mode>): Remove patterns.
10300         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
10301         *sltu_<mode>_mips16 into new pattern.
10302         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
10303         (sle<u>): Merge sle and sleu into new expander.
10304         (sle, sleu): Remove expanders.
10305         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
10306         (*sle_<mode>, *sleu_<mode>): Remove patterns.
10307         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
10308         *sleu_<mode>_mips16 into new pattern.
10309         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
10310
10311 2008-04-03  Jan Hubicka  <jh@suse.cz>
10312
10313         PR tree-optimization/35795
10314         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
10315         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
10316         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
10317         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
10318         * score/score3.c (score3_output_mi_thunk): Likewise.
10319         * score/score7.c (score7_output_mi_thunk): Likewise.
10320         * mips/mips.c (mips_output_mi_thunk): Likewise.
10321
10322 2008-04-03  Richard Guenther  <rguenther@suse.de>
10323
10324         * tree-vrp.c (extract_range_from_unary_expr): Handle all
10325         conversions.  Simplify code.
10326
10327 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
10328
10329         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
10330
10331 2008-04-03  Tom Tromey  <tromey@redhat.com>
10332             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10333
10334         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
10335         * config/bfin/t-bfin-linux (generated_files): Add
10336         linux-sysroot-suffix.h.
10337         * doc/install.texi (Prerequisites): Require make 3.80.
10338         * doc/sourcebuild.texi (Front End Directory): Document new
10339         variable.
10340         * Makefile.in (generated_files): New variable.
10341         (ALL_HOST_OBJS): New variable.
10342         ($(ALL_HOST_OBJS)): New target.
10343
10344 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
10345
10346         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
10347         (remap_block): Call id->transform_lang_insert_block instead
10348         of langhook.
10349         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
10350         Set id.transform_lang_insert_block to NULL.
10351         (clone_body): Move to cp/optimize.c
10352         * tree-inline.h (struct copy_body_data): Change
10353         transform_lang_insert_block to function pointer.
10354         (copy_generic_body, copy_decl_no_change): Export.
10355         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
10356         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
10357         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
10358
10359         * c-tree.h (insert_block): Kill.
10360         * c-decl.c (insert_block): Kill.
10361
10362 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
10363
10364         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
10365         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
10366         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
10367         argument.
10368         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
10369         argument, call {push,pop}_function_context from here.
10370         * c-parser.c: Use c_{push,pop}_function_context.
10371
10372         * function.c (push_function_context_to): Move meat ...
10373         (push_function_context): ... here.  Simplify.
10374         * function.c (pop_function_context_from): Move meat ...
10375         (pop_function_context): ... here.  Simplify.
10376         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
10377         leave_nested).
10378         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
10379         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
10380         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
10381         * tree.h (push_function_context_to, pop_function_context_from): Remove.
10382
10383 2008-04-03  Ben Elliston  <bje@au.ibm.com>
10384
10385         * expmed.c (extract_force_align_mem_bit_field): Remove.
10386
10387 2008-04-03  Richard Guenther  <rguenther@suse.de>
10388
10389         PR middle-end/35800
10390         * expr.h (try_casesi): Adjust prototype.
10391         * expr.c (try_casesi): Take fallback label as extra parameter.
10392         Use that for gen_casesi if default_label is NULL.
10393         * stmt.c (expand_case): Pass fallback label to try_casesi,
10394         make sure to fill gaps with a fallback label if default_label
10395         is not present.
10396
10397 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
10398
10399         PR target/35801
10400         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
10401
10402 2008-04-03  Ben Elliston  <bje@au.ibm.com>
10403
10404         * expmed.c (extract_split_bit_field): Remove if (0) code.
10405         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
10406         (do_ds_constraint): Likewise.
10407
10408 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
10409
10410         * doc/cppopts.texi (-dU): Document.
10411         * c-common.h (flag_dump_macros): Update comment.
10412         * c-opts.c (handle_OPT_d): Handle -dU.
10413         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
10414         dump_queued_macros, cb_used_define, cb_used_undef): New.
10415         (init_pp_output): Handle -dU.
10416         (cb_line_change): Call dump_queued_macros.
10417         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
10418
10419 2008-04-02  Anatoly Sokolov <aesok@post.ru>
10420
10421         * config/avr/predicates.md (io_address_operand): New predicate. 
10422         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
10423         * config/avr/avr.c (avr_io_address_p): Remove function.
10424         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
10425         'avr_io_address_p' function.
10426         (out_movhi_r_mr): (Ditto.).
10427         (out_movqi_mr_r): (Ditto.).
10428         (out_movhi_mr_r): (Ditto.).
10429         (avr_address_cost): (Ditto.).
10430
10431 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
10432
10433         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
10434         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
10435         in 32bit mode when XMM registers are available to avoid store
10436         forwarding stalls.
10437         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
10438         corresponding post-reload splitters.
10439
10440 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
10441
10442         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
10443         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
10444         __builtin_ia32_roundss.
10445         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
10446         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
10447         __builtin_ia32_roundss.
10448         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
10449         IX86_BUILTIN_SHUFPD here.
10450
10451 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
10452
10453         * config/i386/i386.md (plogic): New.
10454         (plogicprefix): Likewise.
10455
10456         * config/i386/mmx.md (mmx_<code><mode>3): New.
10457         (mmx_and<mode>3): Removed.
10458         (mmx_ior<mode>3): Likewise.
10459         (mmx_xor<mode>3): Likewise.
10460
10461         * config/i386/sse.md (<code><mode>3): New.
10462         (*<code><mode>3): Likewise.
10463         (*<code><mode>3): Likewise.
10464         (<code><mode>3): Likewise.
10465         (*sse_<code><mode>3): Likewise.
10466         (*sse2_<code><mode>3): Likewise.
10467         (<code>tf3): Likewise.
10468         (*<code>tf3): Likewise.
10469         (and<mode>3): Likewise.
10470         (*and<mode>3): Likewise.
10471         (ior<mode>3): Removed.
10472         (*ior<mode>3): Likewise.
10473         (xor<mode>3): Likewise.
10474         (*xor<mode>3): Likewise.
10475         (*and<mode>3): Likewise.
10476         (*ior<mode>3): Likewise.
10477         (*xor<mode>3): Likewise.
10478         (and<mode>3): Likewise.
10479         (*sse_and<mode>3): Likewise.
10480         (*sse2_and<mode>3): Likewise.
10481         (andtf3): Likewise.
10482         (*andtf3): Likewise.
10483         (ior<mode>3): Likewise.
10484         (*sse_ior<mode>3): Likewise.
10485         (*sse2_ior<mode>3): Likewise.
10486         (iortf3): Likewise.
10487         (*iortf3): Likewise.
10488         (xor<mode>3): Likewise.
10489         (*sse_xor<mode>3): Likewise.
10490         (*sse2_xor<mode>3): Likewise.
10491         (xortf3): Likewise.
10492         (*xortf3): Likewise.
10493
10494 2008-04-02  Richard Guenther  <rguenther@suse.de>
10495
10496         PR tree-optimization/14495
10497         PR tree-optimization/34793
10498         * tree-vrp.c (struct switch_update): New structure.
10499         (to_remove_edges, to_update_switch_stmts): New VECs.
10500         (simplify_switch_using_ranges): New function.  Remove not taken
10501         case labels and edges.
10502         (simplify_stmt_using_ranges): Call it.
10503         (identify_jump_threads): Mark edges we have queued for removal
10504         so we don't thread them.
10505         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
10506         case label vector.
10507         * tree-cfg.c (group_case_labels): Deal with missing default label.
10508         (tree_verify_flow_info): Allow missing default label.
10509         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
10510         (emit_case_nodes): Likewise.
10511         (expand_case): Do not rely on the default label to be present.
10512         * expr.c (try_casesi): Deal with NULL default_label.
10513         (do_tablejump): Likewise.
10514
10515 2008-04-02  Richard Guenther  <rguenther@suse.de>
10516
10517         PR tree-optimization/14495
10518         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
10519         SWITCH_EXPR here ...
10520         (vrp_visit_switch_stmt): ... but here (new function).
10521         (find_case_label_index): New helper function.
10522         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
10523
10524 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
10525
10526         * fwprop.c: Fix ISO-C99ism.
10527
10528 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
10529
10530         PR bootstrap/35752
10531         * Makefile.in (objdir): Set it here.
10532         * configure.ac: Not here.  Find dynamic linker characteristics.
10533         * exec-tool.in: Use them.
10534         * aclocal.m4: Regenerate.
10535         * configure: Regenerate.
10536
10537 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
10538
10539         * expr.c (expand_var): Delete it.
10540         * expr.h (expand_var): Delete prototype.
10541         * function.c (expand_function_start): Use expand_decl instead.
10542         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
10543         langhook.
10544
10545 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
10546
10547         PR rtl-optimization/35542
10548         * fwprop.c (forward_propagate_and_simplify): Replace
10549         loc_reg_mentioned_in_p with reg_mentioned_p.
10550
10551 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
10552
10553         PR rtl-optimization/35281
10554         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
10555         (propagate_rtx_1): Handle PR_HANDLE_MEM.
10556         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
10557         (varying_mem_p): Move above propagate_rtx.
10558         (all_uses_available_at): Do not check MEMs.
10559
10560 2008-04-02  Rafael Espindola  <espindola@google.com>
10561
10562         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
10563         (register_edge_assert_for_2): Split the cond argument.
10564         (register_edge_assert_for_1): Adjust for the change in
10565         register_edge_assert_for_2.
10566         (register_edge_assert_for): Split the cond argument.
10567         (find_switch_asserts): Adjust for the change in
10568         register_edge_assert_for.
10569
10570 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
10571
10572         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
10573         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
10574         offsets for 64-bit mingw.
10575         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
10576         abi for x86_64-pc-mingw.
10577
10578 2008-04-02  Richard Guenther  <rguenther@suse.de>
10579
10580         * tree-vrp.c (extract_range_from_assert): Make sure to not
10581         produce range min/max with TREE_OVERFOW set.
10582         If merging a anti-range and a range keep the anti-range if
10583         the range covers all values of the type.
10584         (register_edge_assert_for_2): Only allow sign-changing
10585         conversions in detecting canonical range checks.  Also
10586         register an assert for the unsigned name if useful.
10587
10588         PR tree-optimization/35787
10589         * tree-vrp.c (vrp_val_max): New function.
10590         (vrp_val_min): Likewise.
10591         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
10592         (vrp_val_is_min): Likewise.
10593         (supports_overflow_infinity): Use vrp_val_{min,max}.
10594         (negative_overflow_infinity): Likewise.
10595         (positive_overflow_infinity): Likewise.
10596         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
10597         (is_positive_overflow_infinity): Likewise.
10598         (is_overflow_infinity): Likewise.
10599         (avoid_overflow_infinity): Use vrp_val_{min,max} and
10600         vrp_val_is_{min,max}.
10601         (set_and_canonicalize_value_range): Canonicalize anti-ranges
10602         to ranges if possible.  Avoid empty ranges.
10603
10604 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10605
10606         PR middle-end/35705
10607         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
10608         the expression is a function address.
10609
10610 2008-04-01  George Helffrich  <george@gcc.gnu.org>
10611
10612         PR fortran/35154, fortran/23057
10613         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
10614         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
10615         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
10616         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
10617         in common.
10618         (dbxout_syms): Check for COMMON-based symbol and wrap in
10619         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
10620         in bracket for efficiency.
10621
10622         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
10623         using DW_TAG_common_block + member offset.
10624         (add_pubname_string): New function.
10625         (dw_expand_expr): New function to find block name and offset for
10626         COMMON var.
10627         (common_check): New function to check whether symbol in Fortran COMMON.
10628         (gen_variable_die): If COMMON, use DW_TAG_common_block.
10629
10630 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
10631
10632         PR c/35436
10633         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
10634
10635 2008-04-02  Ben Elliston  <bje@au.ibm.com>
10636
10637         * config/v850/v850.md (casesi): Remove if (0) code.
10638         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10639         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
10640
10641 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
10642
10643         * config/i386/i386.md (rex64suffix): New mode attribute.
10644         (floathi<mode>2): Disable expander for SSE math.
10645         (*floathi<mode>2_1): New insn insn_and_split pattern.
10646         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
10647         corresponding post-reload splitters.
10648         (*floathi<mode>2_i387): New macroized insn pattern.
10649         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
10650         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
10651         insn_and_split pattern.
10652         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
10653         New macroized instruction patterns and corresponding post-reload
10654         splitters.
10655         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
10656         and corresponding post-reload splitters.
10657         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
10658         New macroized instruction patterns.
10659         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
10660         macroized instruction patterns and corresponding post-reload splitters.
10661         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
10662         corresponding post-reload splitters.
10663         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
10664         New macroized instruction patterns.
10665         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
10666         corresponding post-reload splitters.
10667         (*floatsi<mode>2_i387): New macroized instruction patterns.
10668
10669 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
10670
10671         * config/i386/i386.md (smaxmin): New.
10672         (umaxmin): Likewise.
10673         (maxminiprefix): Likewise.
10674         (maxminfprefix): Likewise.
10675         (<code><mode>3): Likewise.
10676         (smin<mode>3): Removed.
10677         (smax<mode>3): Likewise.
10678
10679         * config/i386/mmx.md (mmx_<code>v2sf3): New.
10680         (mmx_<code>v4hi3): Likewise.
10681         (mmx_<code>v8qi3): Likewise.
10682         (mmx_smaxv2sf3): Removed.
10683         (mmx_sminv2sf3): Likewise.
10684         (mmx_umaxv8qi3): Likewise.
10685         (mmx_smaxv4hi3): Likewise.
10686         (mmx_uminv8qi3): Likewise.
10687         (mmx_sminv4hi3): Likewise.
10688
10689         * config/i386/sse.md (<addsub><mode>3): New.
10690         (*<addsub><mode>3): Likewise.
10691         (<sse>_vm<addsub><mode>3): Likewise.
10692         (<maxmin><mode>3): Likewise.
10693         (*<maxmin><mode>3_finite): Likewise.
10694         (*<maxmin><mode>3): Likewise.
10695         (<sse>_vm<maxmin><mode>3): Likewise.
10696         (sse3_h<addsub>v4sf3): Likewise.
10697         (sse3_h<addsub>v2df3): Likewise.
10698         (<maxmin>v16qi3): Likewise.
10699         (*<maxmin>v16qi3): Likewise.
10700         (<maxmin>v8hi3): Likewise.
10701         (*<maxmin>v8hi3): Likewise.
10702         (*sse4_1_<maxmin><mode>3): Likewise.
10703         (*sse4_1_<maxmin><mode>3): Likewise.
10704         (add<mode>3): Removed.
10705         (*add<mode>3): Likewise.
10706         (<sse>_vmadd<mode>3): Likewise.
10707         (sub<mode>3): Likewise.
10708         (*sub<mode>3): Likewise.
10709         (<sse>_vmsub<mode>3): Likewise.
10710         (smin<mode>3): Likewise.
10711         (*smin<mode>3_finite): Likewise.
10712         (*smin<mode>3): Likewise.
10713         (<sse>_vmsmin<mode>3): Likewise.
10714         (smax<mode>3): Likewise.
10715         (*smax<mode>3_finite): Likewise.
10716         (*smax<mode>3): Likewise.
10717         (<sse>_vmsmax<mode>3): Likewise.
10718         (sse3_haddv4sf3): Likewise.
10719         (sse3_haddv2df3): Likewise.
10720         (sse3_hsubv4sf3): Likewise.
10721         (sse3_hsubv2df3): Likewise.
10722         (umaxv16qi3): Likewise.
10723         (*umaxv16qi3): Likewise.
10724         (smaxv8hi3): Likewise.
10725         (*smaxv8hi3): Likewise.
10726         (*sse4_1_smax<mode>3): Likewise.
10727         (*sse4_1_umax<mode>3): Likewise.
10728         (uminv16qi3): Likewise.
10729         (*uminv16qi3): Likewise.
10730         (sminv8hi3): Likewise.
10731         (*sminv8hi3): Likewise.
10732         (*sse4_1_smin<mode>3): Likewise.
10733         (*sse4_1_umin<mode>3): Likewise.
10734
10735 2008-04-01  Rafael Espindola  <espindola@google.com>
10736
10737         * tree-cfg.c (verify_expr): remove in_phi.
10738         (verify_stmt): Don't call walk_tree with verify_expr. Use
10739         is_gimple_min_invariant instead of is_gimple_val.
10740
10741 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
10742
10743         * doc/include/gpl_v3.texi: Update for manpage generation.
10744         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
10745         gpl.texi.
10746         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
10747         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
10748         gpl_v3.texi instead of gpl.texi.
10749         (gpl.pod): New.
10750
10751 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
10752
10753         PR pch/13675
10754         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
10755
10756 2008-04-01  Rafael Espindola  <espindola@google.com>
10757
10758         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
10759         (extract_code_and_val_from_cond): Use
10760         extract_code_and_val_from_cond_with_ops.
10761
10762 2008-04-01  Jan Hubicka  <jh@suse.cz>
10763
10764         * function.c (free_after_compilation): Free epilogue_delay_list.
10765         (prepare_function_start): Assert that previous compilation was freed.
10766
10767 2008-04-01  Jan Hubicka  <jh@suse.cz>
10768             Jim Wilson  <wilson@tuliptree.org>
10769             Andreas Tobler <andreast@gcc.gnu.org>
10770
10771         PR middle-end/35781
10772         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
10773         rtl.emit instead cfun->emit.
10774         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
10775         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
10776
10777 2008-04-01  Ben Elliston  <bje@au.ibm.com>
10778
10779         * doc/c-tree.texi (Function Basics): Fix grammatical error.
10780
10781 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
10782
10783         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
10784         New options
10785         (fprofile-use): Add var flag_profile_use
10786         * coverage.c (coverage_begin_output): Do not open a gcno file for
10787         output only if -ftest-coverage is set.
10788         Do not add getpwd() to gcda file path.
10789         (build_gcov_info): Check the new flag
10790         flag_profile_datafile_relative_path.
10791         (coverage_init): Use profile_data_prefix.
10792         Read profile counter only if flag_profile_use is set.
10793         * opts.c (common_handle_option): New option fprofile-use=,
10794         fprofile-dir=, fprofile-generate=.
10795         * toplev.c (profile_data_prefix): New variable definition.
10796         * toplev.h (profile_data_prefix): New declaration.
10797         * doc/invoke.tex (Option Summary, Optimization Options):
10798         Add new options.
10799
10800 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
10801
10802         * varasm.c (output_constant_pool_1): In LABEL_REF check,
10803         use tmp consistently.
10804
10805         PR target/35695
10806         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
10807         * config/ia64/ia64.c (rtx_needs_barrier): Handle
10808         UNSPEC_FR_RECIP_APPROX_RES.
10809         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
10810
10811 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
10812
10813         PR c/35750
10814         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
10815
10816 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10817
10818         PR middle-end/30186
10819         * fold-const.c (fold_indirect_ref_1): Support accessing non first
10820         element of the vector via a pointer.
10821
10822 2008-03-31  Ian Lance Taylor  <iant@google.com>
10823
10824         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
10825
10826 2008-03-31  Jan Hubicka  <jh@suse.cz>
10827
10828         * builtins.c (expand_builtin_setjmp_receiver): Update call of
10829         get_arg_pointer_save_area.
10830         * expr.c (init_expr): Just clear out rtl.expr.
10831         * function.c (free_after_compilation): Clear out whole RTL structure.
10832         (get_func_frame_size): Merge into ...
10833         (get_frame_size): ... this one.
10834         (assign_stack_local_1): Merge into ...
10835         (assign_stack_local): ... this one.
10836         (expand_function_end): Update call of get_arg_pointer_save_area.
10837         (get_art_pointer_save_area): Remove cfun argument.
10838         * function.h (emit_status): regno_pointer_align does not need length
10839         attribute. Move x_regno_reg_rtx to ...
10840         (regno_reg_rtx): ... new global array.
10841         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
10842         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
10843         apply_args_value, forced_labels, stack_pointer_delta):
10844         Update accestors.
10845         (struct varasm_status): Move here from varasm.c
10846         (struct rtl_data): New. Move here some fields from struct function.
10847         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
10848         frame_offset, stack_check_probe_note, arg_pointer_save_area,
10849         used_temp_slots avail_temp_slots, temp_slot_level,
10850         nonlocal_goto_handler_labels): Update accesstors.
10851         (rtl): New global variable.
10852         (struct function): Move some fileds to rtl_data.
10853         (get_arg_pointer_save_area): Update prototype.
10854         * emit-rtl.c (rtl): Declare.
10855         (regno_reg_rtx): Declare.
10856         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
10857         Update.
10858         (gen_reg_rtx): Update.
10859         (init_virtual_regs): Do not tate emit_status argument.
10860         (init_emit): Do not allocate emit.
10861         * varasm.c (varasm_statuc): Move to function.h.
10862         (n_deferred_constatns): Update accestor.
10863         (init_varasm_status): Do not allocate varasm_status.
10864         (force_const_mem, get_pool_size, output_constant_pool): Update.
10865         * stmt.c (force_label_rtx): Do not use x_ prefixes.
10866         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
10867
10868 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
10869
10870         PR rtl-optimization/35729
10871         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
10872         references.
10873
10874 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
10875
10876         PR target/32000
10877         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
10878         load/store if memory is unaligned.
10879         (*movti_rex64): Likewise.
10880
10881         * config/i386/predicates.md (misaligned_operand): New.
10882
10883 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
10884
10885         PR tree-opt/35431
10886         * tree-ssa-phiopt.c (conditional_replacement): Return early for
10887         complex types.
10888
10889 2008-03-31  Jan Beulich  <jbeulich@novell.com>
10890
10891         * config/ia64/constraints.md: Add 'j' constraint.
10892         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
10893         (movdi_internal): Likewise.
10894
10895 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
10896
10897         PR c/35748
10898         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
10899
10900 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
10901
10902         PR target/35757
10903         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
10904         proper error message for the third argument on blendpd and
10905         blendps.
10906
10907         * config/i386/sse.md (blendbits): New.
10908         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
10909
10910 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
10911
10912         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
10913
10914 2008-03-30  Richard Guenther  <rguenther@suse.de>
10915
10916         PR middle-end/31023
10917         * fold-const.c (fold_sign_changed_comparison): Do leave
10918         conversions to base-types alone.
10919
10920 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10921
10922         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
10923         the link register if one altivec register is be saved.
10924
10925 2008-03-30  Ben Elliston  <bje@au.ibm.com>
10926
10927         * final.c (final_scan_insn): Remove if (0) code.
10928
10929 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
10930
10931         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
10932
10933 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
10934
10935         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
10936         of V4SFmode to ix86_binary_operator_ok.
10937
10938 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
10939
10940         * config/i386/i386.c (override_options): Initialize
10941         ix86_veclib_handler to ix86_veclibabi_svml when
10942         -mveclibabi=svml is used.
10943         (ix86_veclibabi_svml): New function for SVML ABI style
10944         vectorization support.
10945         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
10946
10947 2008-03-28  Rafael Espindola  <espindola@google.com>
10948
10949         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
10950         (tree_binary_nonnegative_warnv_p): Make it public.
10951         (tree_single_nonnegative_warnv_p): Make it public.
10952         (tree_invalid_nonnegative_warnv_p): Make it public.
10953         (tree_unary_nonzero_warnv_p): Make it public.
10954         (tree_binary_nonzero_warnv_p): Make it public
10955         (tree_single_nonzero_warnv_p): Make it public.
10956         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
10957         (extract_range_from_binary_expr): Split the expr argument.
10958         (extract_range_from_unary_expr): Split the expr argument.
10959         (extract_range_from_comparison): Split the expr argument.
10960         (extract_range_from_expr): Use the new aux functions.
10961         (vrp_evaluate_conditional_warnv): Use
10962         vrp_evaluate_conditional_warnv_with_ops.
10963         * tree.h (tree_unary_nonzero_warnv_p): Declare.
10964         (tree_binary_nonzero_warnv_p): Declare.
10965         (tree_single_nonzero_warnv_p): Declare.
10966         (tree_expr_nonzero_warnv_p): Declare.
10967         (tree_unary_nonnegative_warnv_p): Declare.
10968         (tree_binary_nonnegative_warnv_p): Declare.
10969         (tree_single_nonnegative_warnv_p): Declare.
10970         (tree_invalid_nonnegative_warnv_p): Declare.
10971
10972 2008-03-28  Richard Guenther  <rguenther@suse.de>
10973
10974         PR tree-optimization/30317
10975         PR tree-optimization/30911
10976         PR tree-optimization/34793
10977         * tree-vrp.c (set_and_canonicalize_value_range): New function.
10978         (struct assert_locus_d): New member EXPR.
10979         (register_new_assert_for): Add EXPR parameter to support
10980         ASSERT_EXPR <name, expr OP limit>.
10981         (register_edge_assert_for_1): Adjust callers.
10982         (find_assert_locations): Likewise.
10983         (process_assert_insertions_for): Build condition from expression.
10984         (extract_range_from_assert): Handle ASSERT_EXPRs
10985         of the form ASSERT_EXPR <name, expr OP limit>.
10986         (register_edge_assert_for_2): New helper registering
10987         asserts for comparisons.  Recognize range tests of the form
10988         (unsigned)i - CST1 OP CST2.
10989         (register_edge_assert_for_1): Use it.
10990         (register_edge_assert_for): Likewise.
10991         (needs_overflow_infinity): Integer sub-types
10992         do not need overflow infinities.
10993         (vrp_val_is_max): The extreme values of integer sub-types
10994         are those of the base type.
10995         (vrp_val_is_min): Likewise.
10996         * tree.def (ASSERT_EXPR): Document extra allowed conditional
10997         expressions.
10998
10999 2008-03-28  Nick Clifton  <nickc@redhat.com>
11000
11001         PR target/31110
11002         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
11003         Return GENERAL_REGS for stack adjustment reloads.
11004
11005 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11006
11007         PR target/31334
11008         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
11009         const_vector when all the vectors are constant.
11010
11011 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
11012
11013         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
11014         comparisons.
11015         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
11016         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
11017         (scc_sf): New.
11018         (s<code>_sf): Use new scc_sf attribute for opcode names.
11019
11020 2008-03-27  Tom Tromey  <tromey@redhat.com>
11021
11022         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
11023         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
11024         config/spu/t-spu-elf, config/i386/t-interix,
11025         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
11026         config/i386/x-darwin, config/i386/x-mingw32,
11027         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
11028         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
11029         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
11030         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
11031         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
11032         config/rs6000/x-darwin, config/rs6000/t-rs6000,
11033         config/score/t-score-elf, config/arm/t-strongarm-pe,
11034         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
11035         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
11036         Revert automatic dependency patch.
11037
11038 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
11039
11040         PR target/35657
11041         * config/i386/i386.c (ix86_function_arg_boundary): Align
11042         decimal floating point to its natural boundary.
11043
11044 2008-03-27  Richard Guenther  <rguenther@suse.de>
11045
11046         PR middle-end/35716
11047         * fold-const.c (fold_comparison): Restrict distinct decl
11048         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
11049         solely rely on operand_equal_p.
11050
11051 2008-03-27  Richard Guenther  <rguenther@suse.de>
11052
11053         PR c/32511
11054         * c-common.c (handle_weak_attribute): Reject combination of
11055         weak and inline.
11056
11057 2008-03-27  Richard Guenther  <rguenther@suse.de>
11058
11059         PR tree-optimization/32810
11060         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
11061         conversions from DECL_INITIAL.
11062         (fold_const_aggregate_ref): Likewise from constructor elements.
11063
11064 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
11065
11066         * tree-affine.h (aff_combination_expand): Declare.
11067         (get_inner_reference_aff): Likewise.
11068         * tree-affine.c (aff_combination_expand): Split out from
11069         tree_to_aff_combination_expand.
11070         (get_inner_reference_aff): New function.
11071         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
11072         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
11073         (struct lim_aux_data): sm_done field removed.
11074         (mem_ref_loc_p, mem_ref_locs_p): New types.
11075         (struct mem_ref): Added id, stored, accesses_in_loop,
11076         indep_loop, dep_loop, indep_ref, dep_ref fields.
11077         Removed is_stored, locs and next fields.
11078         (memory_accesses): New variable.
11079         (movement_possibility): Do not allow moving statements
11080         that store to memory.
11081         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
11082         New functions.
11083         (determine_max_movement): For statements with memory references,
11084         find the outermost loop in that the reference is independent.
11085         (move_computations_stmt): Mark the virtual operands for renaming.
11086         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
11087         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
11088         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
11089         add_vop_ref_mapping, create_vop_ref_mapping_loop,
11090         create_vop_ref_mapping, analyze_memory_references,
11091         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
11092         get_all_locs_in_loop, ref_always_accessed_p,
11093         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
11094         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
11095         store_motion_loop, store_motion): New functions.
11096         (struct vop_to_refs_elt): New type.
11097         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
11098         memref_hash, memref_eq, hoist_memory_references): Rewritten.
11099         (schedule_sm): Replaced by...
11100         (execute_sm): ... this.
11101         (determine_lsm_ref, hoist_memory_references,
11102         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
11103         find_more_ref_vops, free_mem_ref, free_mem_refs,
11104         determine_lsm_loop, determine_lsm): Removed.
11105         (tree_ssa_lim_finalize): Free data structures used by store motion.
11106         (tree_ssa_lim): Call analyze_memory_references.  Use
11107         store_motion instead of determine_lsm.
11108
11109 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
11110
11111         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
11112         rename tmake_file to m68hc11/t-m68hc11.
11113         (mcore): Set inhibit_libc to true.
11114         * config.host (alpha*-dec-*vms*): Set extra_programs.
11115         (interix3*): Don't use host_xmake_file.
11116         * configure.ac: Let config.gcc override inhibit_libc.
11117         * configure: Regenerate.
11118
11119         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
11120         * config/t-openbsd-thread: Remove commented out lines.
11121         
11122         * config/x-interix: Remove.
11123
11124         * config/m68hc11/t-m68hc11-gas: Rename to...
11125         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
11126
11127         * config/mcore/t-mcore: Remove T_CFLAGS.
11128         * config/mcore/t-mcore-pe: Likewise.
11129
11130 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
11131
11132         * configure.ac: Replace custom __GNU_SOURCE test with
11133         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
11134         * aclocal.m4: Regenerate.
11135         * configure: Regenerate.
11136         * config.in: Regenerate.
11137
11138 2008-03-27  Richard Guenther  <rguenther@suse.de>
11139
11140         * fold-const.c (target.h): Include.
11141         (fold_comparison): Fold comparison of addresses of decls
11142         that bind locally or of constants.  Consolidate address folding code.
11143         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
11144         results from fold_binary_to_constant.
11145         (compare_values_warnv): Likewise.
11146
11147 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
11148
11149         PR middle-end/35429
11150         * fold-const.c (fold_truthop): Check for integeral types when folding
11151         a == 0 && b == 0 and a != 0 || b != 0 .
11152
11153 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
11154
11155         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
11156
11157 2008-03-26  Andreas Schwab  <schwab@suse.de>
11158
11159         * doc/invoke.texi: Fix use of @item vs. @itemx.
11160
11161 2008-03-26  Tom Tromey  <tromey@redhat.com>
11162
11163         * Makefile.in (build/gensupport.o, build/print-rtl.o,
11164         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
11165         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
11166         build/gencodes.o, build/genconditions.o, build/genconfig.o,
11167         build/genconstants.o, build/genemit.o, build/genextract.o,
11168         build/genflags.o, build/genmddeps.o, build/genopinit.o,
11169         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
11170         options.h.
11171
11172 2008-03-26  Richard Guenther  <rguenther@suse.de>
11173
11174         Revert
11175         2008-03-26  Richard Guenther  <rguenther@suse.de>
11176
11177         * fold-const.c (target.h): Include.
11178         (fold_comparison): Fold comparison of addresses of two decls
11179         that bind locally.  Consolidate address folding code.
11180
11181 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11182
11183         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
11184         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
11185         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
11186         dconstsqrt2, dconstthird, dconste and/or dconst10.
11187         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
11188         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
11189         dconstsqrt2, dconste): Delete.
11190         (init_emit_once): Likewise.  Simplify initializing dconstm1.
11191         Constify variable.
11192         * real.c (get_real_const): New.
11193         * real.h (dconst3, dconst10, dconstm2, dconstthird,
11194         dconstsqrt2, dconste): Delete.
11195         (real_value_const, get_real_const): New.
11196
11197 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
11198
11199         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
11200
11201         * config/i386/i386.c (ix86_function_arg_boundary): Check
11202         BIGGEST_ALIGNMENT instead of 128.
11203         (setup_incoming_varargs_64): Likewise.
11204
11205 2008-03-26  Tom Tromey  <tromey@redhat.com>
11206
11207         * Makefile.in (DEPFILES): Add missing '/'.
11208
11209 2008-03-26  Richard Guenther  <rguenther@suse.de>
11210
11211         * fold-const.c (target.h): Include.
11212         (fold_comparison): Fold comparison of addresses of two decls
11213         that bind locally.  Consolidate address folding code.
11214
11215 2008-03-26  Nick Clifton  <nickc@redhat.com>
11216
11217         PR target/31232
11218         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
11219         not allow INT+INT as a legitimate addressing mode.
11220
11221 2008-03-26  Richard Guenther  <rguenther@suse.de>
11222
11223         * tree-flow.h (widen_bitfield): Remove declaration.
11224         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
11225         (widen_bitfield): Remove function.
11226         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
11227         code.
11228
11229 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11230
11231         PR target/31558
11232         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
11233         error_mark_node's.
11234
11235 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
11236
11237         PR rtl-optimization/35232
11238         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
11239         (forget_old_reloads_1, forget_marked_reloads): Don't clear
11240         reg_reloaded_call_part_clobbered here.
11241         (reload_regs_reach_end_p): New function.
11242         (reload_reg_rtx_for_input): New variable.
11243         (reload_reg_rtx_for_output): Likewise.
11244         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
11245         when reassigning a pseudo register.  Load reloadreg from 
11246         reload_reg_rtx_for_input, moving the mode and register
11247         calculation to...
11248         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
11249         instead of the original when deciding whether an input reload
11250         would be a no-op or whether an output reload can be deleted.
11251         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
11252         when setting up new_spill_reg_store.  Load it from
11253         reload_reg_rtx_for_output, moving the mode and register
11254         calculation to...
11255         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
11256         instead of the original when deciding whether an output reload
11257         would be a no-op.  Do the same when modifying insn notes.
11258         Use rtx_equal_p instead of == to compare the registers.
11259         (inherit_piecemeal_p): Take a mode and two register numbers
11260         as argument.
11261         (emit_reload_insns): Clear new_spill_reg_store for every hard
11262         register in the reload register.  Remove spill registers
11263         from reg_reloaded_valid before considering whether to record
11264         inheritance information for them.  Use reload_reg_rtx_for_output
11265         instead of reg_rtx when recording output reloads.  Use
11266         reload_reg_rtx_for_input instead of reg_rtx when recording
11267         input reloads.  Set or clear reg_reloaded_call_part_clobbered
11268         at the same time as setting reg_reloaded_valid.
11269         (delete_output_reload): Add a new_reload_reg parameter and use it
11270         instead of rld[j].reg_rtx.
11271         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
11272         calls accordingly.
11273
11274 2008-03-25  Tom Tromey  <tromey@redhat.com>
11275
11276         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
11277         (build/genattr.o): Likewise.
11278         (build/genattrtab.o): Likewise.
11279         (build/gencodes.o): Likewise.
11280         (build/genconfig.o): Likewise.
11281         (build/genconstants.o): Likewise.
11282         (build/genemit.o): Likewise.
11283         (build/genextract.o): Likewise.
11284         (build/genflags.o): Likewise.
11285
11286 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
11287         
11288         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
11289         instead of size_int for integer types.
11290         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
11291         to match type of MINUS_EXPR.
11292         
11293 2008-03-25  Tom Tromey  <tromey@redhat.com>
11294
11295         * configure: Rebuilt.
11296         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
11297         Makefile.
11298
11299 2008-03-25  Tom Tromey  <tromey@redhat.com>
11300
11301         * config/x-solaris (host-solaris.o): Update.
11302         * config/x-linux (host-linux.o): Update.
11303         * config/x-hpux (host-hpux.o): Update.
11304         * config/x-darwin (host-darwin.o): Update.
11305         * config/v850/t-v850e (v850-c.o): Update.
11306         * config/v850/t-v850 (v850-c.o): Update.
11307         * config/t-vxworks (vxworks.o): Update.
11308         * config/t-sol2 (sol2-c.o, sol2.o): Update.
11309         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
11310         * config/spu/t-spu-elf (spu-c.o): Update.
11311         (spu.o): Remove.
11312         * config/sh/t-symbian (sh-c.o): Update.
11313         (symbian.o): Update.
11314         * config/sh/t-sh (sh-c.o): Update.
11315         * config/score/t-score-elf (score7.o, score3.o): Update.
11316         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
11317         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
11318         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
11319         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
11320         (rs6000.o): Remove.
11321         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
11322         * config/m32c/t-m32c (m32c-pragma.o): Update.
11323         * config/ia64/t-ia64 (ia64-c.o): Update.
11324         * config/i386/x-mingw32 (host-mingw32.o): Update.
11325         * config/i386/x-i386 (driver-i386.o): Update.
11326         * config/i386/x-darwin (host-i386-darwin.o): Update.
11327         * config/i386/x-cygwin (host-cygwin.o): Update.
11328         * config/i386/t-nwld (nwld.o): Update.
11329         * config/i386/t-netware (netware.o): Update.
11330         * config/i386/t-interix (winnt.o): Update.
11331         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
11332         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
11333         msformat-c.o): Update.
11334         * config/bfin/t-bfin-linux (generated_files): Add
11335         linux-sysroot-suffix.h.
11336         * config/arm/t-wince-pe (pe.o): Update.
11337         * config/arm/t-strongarm-pe (pe.o): Update.
11338         * config/arm/t-pe (pe.o): Update.
11339         * config/arm/t-arm (arm-c.o): Update.
11340         * doc/install.texi (Prerequisites): Require make 3.80.
11341         * Makefile.in: Remove .o targets.
11342         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
11343         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
11344         (simple_generated_h, simple_generated_c): Move earlier.
11345         (generated_files): New variable.
11346         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
11347         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
11348         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
11349         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
11350         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
11351         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
11352         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
11353         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
11354         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
11355         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
11356         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
11357         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
11358         (.c.o): Remove.
11359         (COMPILE.base, COMPILE): New variables.
11360         (%.o): New pattern rule.
11361         (ALL_HOST_OBJS): New variable.
11362         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
11363         (dummy-checksum.o, cc1-checksum.o): Remove.
11364         (DRIVER_SHLIB): New variable.
11365         (DRIVER_DEFINES): Use it.
11366         (gencondmd.c): Move out of build/.
11367         (s-conditions): Update.
11368         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
11369         (ALL_BUILD_OBJS): Likewise.
11370         (build/%.o): Use BUILDCOMPILE.
11371         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
11372         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
11373         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
11374         build/gencheck.o, build/gencodes.o, build/genconditions.o,
11375         build/genconfig.o, build/genconstants.o, build/genemit.o,
11376         build/genextract.o, build/genflags.o, build/genmddeps.o,
11377         build/genopinit.o, build/genoutput.o, build/genpeep.o,
11378         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
11379         build/gen-protos.o, build/scan.o, build/fix-header.o,
11380         build/scan-decls.o): Simplify.
11381         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
11382         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
11383         prefix.o, toplev.o): Reduce to variable setting.
11384         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
11385         ($(out_object_file), gcc-options.o): New targets.
11386         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
11387         * configure: Rebuilt.
11388         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
11389         * doc/sourcebuild.texi (Front End Directory): Document new variable.
11390
11391 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
11392
11393         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
11394         complain when we hit an error, return ERROR_MARK_NODE.
11395
11396 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
11397
11398         * config/sh/constraints.md (Pso, Psz): New constraints.
11399         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
11400         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
11401
11402 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
11403
11404         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
11405         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
11406
11407 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
11408
11409         * config/sh/sh.md (prefetch): Add condition for SH2A target.
11410         (prefetch_sh2a): New.   
11411
11412 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
11413             Naveen.H.S  <naveen.hs@kpitcummins.com>
11414
11415         * config/sh/constraints.md (I28): New constraint.
11416         * config/sh/sh.c (broken_move): Add support for movi20s.
11417         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
11418
11419 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
11420             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
11421             Naveen.H.S  <naveen.hs@kpitcummins.com>
11422
11423         * config/sh/sh.c (SH_ATTRIBUTES): Define.
11424         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
11425         (print_operand): Handle resbank in %@ operand code.
11426         (sh_encode_section_info): New.
11427         (push_regs): Add conditions for resbank.
11428         (sh_expand_epilogue): Likewise.
11429         (sh_insert_attributes): Likewise.
11430         (sh_attribute_table): Likewise.
11431         (sh_handle_resbank_handler_attribute): New.
11432         (sh2a_handle_function_vector_handler_attribute): New.
11433         (sh2a_is_function_vector_call): New.
11434         (sh2a_get_function_vector_number): New.
11435         (sh2a_function_vector_p): New.
11436         (sh_cfun_resbank_handler_p): New.
11437         * config/sh/sh.md (calli): Emit jsr/n if possible.
11438         (calli_tbr_rel): New.
11439         (calli_pcrel): Emit jsr/n if possible.
11440         (return_i): Emit rts/n if possible.
11441         (call_valuei_tbr_rel): New.
11442         (call_valuei_pcrel): Add condition for SH2A target.
11443         (call_value): Likewise.
11444         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
11445         (sh2a_get_function_vector_number): Likewise.
11446         (sh2a_is_function_vector_call): Likewise.
11447         * doc/extend.texi: Document TBR relative addressing of SH2A.
11448         (resbank): Add description for SH2A.
11449
11450 2008-03-24  Richard Guenther  <rguenther@suse.de>
11451
11452         PR c/22371
11453         * gimplify.c (gimplify_modify_expr): For frontend type-correct
11454         pointer assignments change conversions according to middle-end rules.
11455         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
11456         * configure.ac: Include type checking in yes.
11457         * configure: Regenerate.
11458
11459 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11460
11461         * diagnostic.c (diagnostic_count_diagnostic): Delete.
11462         (diagnostic_report_diagnostic): Update. Handle ICEs here.
11463         
11464 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
11465
11466         * gthr-vxworks.h (UNUSED): Define.
11467
11468 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
11469
11470         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
11471
11472 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
11473
11474         * doc/extend.texi (Function Attributes): Add missing comma in the
11475         example of the "alloc_size" attribute.
11476         
11477 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
11478
11479         Revert:
11480         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
11481
11482         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
11483         32bit host.
11484
11485         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
11486
11487         PR target/35496
11488         * stor-layout.c (update_alignment_for_field): Set minimum alignment
11489         of the underlying type of a MS bitfield layout to the natural
11490         alignment of the type.
11491
11492         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
11493
11494         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
11495         to their natural alignment to avoid store forwarding stalls.
11496
11497 2008-03-22  Richard Guenther  <rguenther@suse.de>
11498
11499         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
11500         For PHI nodes verify the address is invariant.
11501         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
11502         (get_symbol_constant_value): Use is_gimple_min_invariant.
11503         (maybe_fold_stmt_indirect): Likewise.
11504
11505 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
11506
11507         PR rtl-optimization/33927
11508         * Makefile.in (dse.o): Depend on $(TM_P_H).
11509         * expr.h (extract_low_bits): Declare.
11510         * expmed.c (extract_low_bits): New function.
11511         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
11512         * dse.c: Include tm_p.h.
11513         (find_shift_sequence): Remove the read_reg argument and return the
11514         read value.  Emit the instructions instead of returning them.
11515         Iterate on new_mode rather than calculating it each time.
11516         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
11517         source to NEW_MODE and extract_low_bits to convert the shifted
11518         value to READ_MODE.
11519         (replace_read): Allow the load and store to have different mode
11520         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
11521         or extraction instructions before trying the replacement.  Update
11522         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
11523
11524 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
11525
11526         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
11527         to their natural alignment to avoid store forwarding stalls.
11528
11529 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11530
11531         PR target/27946
11532         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
11533         encouraging but not allowing gprs for input;
11534         change the input constraint to !f#r.
11535         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
11536         gprs for output;
11537         change the output constraint to !f#r.
11538
11539 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
11540
11541         PR target/13958
11542         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
11543         corresponding post-reload splitters.
11544         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
11545         when x87 FP math is selected.
11546         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
11547         New function prototype.
11548         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
11549         unreachable function to ease macroization of insn patterns.
11550
11551 2008-03-21  Martin Jambor  <mjambor@suse.cz>
11552
11553         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
11554         reference dumps if ddr is NULL or dependence is unknown.
11555
11556 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11557
11558         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
11559         unsigned extension into account.
11560         (ATOMIC_COMPARE_AND_SWAP): Likewise.
11561         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
11562         Do computations on a scratch register.
11563
11564 2008-03-21  Richard Guenther  <rguenther@suse.de>
11565
11566         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
11567         Use is_gimple_min_invariant instead of TREE_INVARIANT.
11568         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
11569         * tree-ssa-dom.c (record_equality): Likewise.
11570         * tree-inline.c (copy_body_r): Likewise.
11571         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
11572         TREE_INVARIANT.
11573
11574 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11575
11576         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
11577         as 'delete_unused' argument.
11578
11579 2008-03-20  Richard Guenther  <rguenther@suse.de>
11580
11581         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
11582         special casing of constant qualifiers.
11583         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
11584         care about them in general.
11585         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
11586         regardless of their type.
11587         (fold_stmt_r): Forcefully fold *& if we end up with that.
11588
11589 2008-03-20  Paul Brook  <paul@codesourcery.com>
11590
11591         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
11592         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
11593         linker flags.
11594         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
11595         definition.
11596         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
11597         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
11598
11599 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
11600
11601         * common.opt (Wmudflap): New option.
11602         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
11603         (mx_register_decls): Likewise.
11604         (mudflap_finish_file): Likewise.
11605         * doc/invoke.texi: Document -Wno-mudflap.
11606
11607 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
11608
11609         * c-format.c (replace_format_name_to_system_name): New.
11610         (cmp_attribs): New.
11611         (convert_format_name_to_system_name): New.
11612         (decode_format_attr): Add use of convert_format_name_to_system_name.
11613         (format_types_orig): Add gnu_ prefix to names.
11614         (check_format_info_main): Special treating of \0 escaped names for
11615         supporting multi-character format specifiers as I32, I64.
11616         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
11617         (gnu_target_overrides_format_attributes): New.
11618         * c-format.h: Add structure target_ovr_attr to hold
11619         system specific formatter names.
11620         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
11621         msformat-c.o file to c_target_objs and cxx_target_objs.
11622         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
11623         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
11624         (TARGET_N_FORMAT_TYPES): New.
11625         * config/i386/msformat-c.c: New.
11626         * config/i386/t-cygming: Add build rule for msformat-c.o.
11627         * doc/extend.texi: Add new format names gnu_* and ms_* and
11628         further details.
11629         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
11630
11631 2008-03-20  Ira Rosen  <irar@il.ibm.com>
11632
11633         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
11634         optimizations turned on under -O3.
11635         (ftree-vectorize): Add that the flag is turned on with -O3.
11636
11637 2008-03-20  Ben Elliston  <bje@au.ibm.com>
11638
11639         * regmove.c (try_auto_increment): Fix spelling error in comment.
11640         * final.c (final_scan_insn): Likewise.
11641
11642 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
11643
11644         PR target/14552
11645         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
11646         allocator preferences for "y" and "r" class registers.
11647         ("*mov<mode>_internal"): Ditto.
11648         ("*movv2sf_internal_rex64"): Ditto.
11649         ("*movv2sf_internal"): Ditto.
11650
11651 2008-03-19  Michael Matz  <matz@suse.de>
11652
11653         PR middle-end/35616
11654         * calls.c (expand_call): Check overlap of arguments with call
11655         address for sibcalls.
11656
11657 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
11658
11659         PR target/35496
11660         * stor-layout.c (update_alignment_for_field): Set minimum alignment
11661         of the underlying type of a MS bitfield layout to the natural
11662         alignment of the type.
11663
11664 2008-03-19  Jan Hubicka  <jh@suse.cz>
11665
11666         PR other/35094
11667         * toplev.c (decode_d_option): Handle all CPP flags.
11668         * tree-vrp.c: Update tree_pass descriptors.
11669         * regrename.c: Update tree_pass descriptors.
11670         * fwprop.c: Update tree_pass descriptors.
11671         * doc/invoke.texi: Remove documentation of dropped -d? flags.
11672         * tree-into-ssa.c: Update tree_pass descriptors.
11673         * tree-dump.c: Update tree_pass descriptors.
11674         * tree-complex.c: Update tree_pass descriptors.
11675         * tree-dump.h: Update tree_pass descriptors.
11676         * see.c: Update tree_pass descriptors.
11677         * cgraphbuild.c: Update tree_pass descriptors.
11678         * tracer.c: Update tree_pass descriptors.
11679         * tree-loop-distribution.c: Update tree_pass descriptors.
11680         * cgraph.c: Update tree_pass descriptors.
11681         * postreload-gcse.c: Update tree_pass descriptors.
11682         * postreload.c: Update tree_pass descriptors.
11683         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
11684         * tree-tailcall.c: Update tree_pass descriptors.
11685         * tree-pass.h (tree_opt_pass): Rename to ...
11686         (opt_pass) ... this one; add "type" field and remove letter field.
11687         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
11688         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
11689         all_lowering_passes): Update declaration.
11690         * ipa-cp.c: Update tree_pass descriptors.
11691         * final.c: Update tree_pass descriptors.
11692         * omp-low.c: Update tree_pass descriptors.
11693         * tree-ssa-dse.c: Update tree_pass descriptors.
11694         * ipa-reference.c: Update tree_pass descriptors.
11695         * tree-ssa-uncprop.c: Update tree_pass descriptors.
11696         * auto-inc-dec.c: Update tree_pass descriptors.
11697         * reorg.c: Update tree_pass descriptors.
11698         * cgraphunit.c: Update tree_pass descriptors.
11699         * tree-ssa-copyrename.c: Update tree_pass descriptors.
11700         * tree-ssa-ccp.c: Update tree_pass descriptors.
11701         * df-core.c: Update tree_pass descriptors.
11702         * mode-switching.c: Update tree_pass descriptors.
11703         * tree-nomudflap.c: Update tree_pass descriptors.
11704         * modulo-sched.c: Update tree_pass descriptors.
11705         * ipa-pure-const.c: Update tree_pass descriptors.
11706         * cse.c: Update tree_pass descriptors.
11707         * web.c: Update tree_pass descriptors.
11708         * tree-stdarg.c: Update tree_pass descriptors.
11709         * tree-ssa-math-opts.c: Update tree_pass descriptors.
11710         * tree-ssa-dom.c: Update tree_pass descriptors.
11711         * tree-nrv.c: Update tree_pass descriptors.
11712         * tree-ssa-alias.c: Update tree_pass descriptors.
11713         * loop-init.c: Update tree_pass descriptors.
11714         * gimple-low.c: Update tree_pass descriptors.
11715         * ipa-inline.c: Update tree_pass descriptors.
11716         * tree-ssa-sink.c: Update tree_pass descriptors.
11717         * global.c: Update tree_pass descriptors.
11718         * ifcvt.c: Update tree_pass descriptors.
11719         * jump.c: Update tree_pass descriptors.
11720         * predict.c: Update tree_pass descriptors.
11721         * tree-ssa-loop.c: Update tree_pass descriptors.
11722         * recog.c: Update tree_pass descriptors.
11723         * dse.c: Update tree_pass descriptors.
11724         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
11725         * tree-eh.c: Update tree_pass descriptors.
11726         * regmove.c: Update tree_pass descriptors.
11727         * local-alloc.c
11728         * function.c: Update tree_pass descriptors.
11729         * tree-vectorizer.c: Update tree_pass descriptors.
11730         * gcse.c: Update tree_pass descriptors.
11731         * ipa-type-escape.c: Update tree_pass descriptors.
11732         * tree-if-conv.c: Update tree_pass descriptors.
11733         * init-regs.c: Update tree_pass descriptors.
11734         * ipa.c: Update tree_pass descriptors.
11735         * tree-ssa-phiopt.c: Update tree_pass descriptors.
11736         * rtl-factoring.c: Update tree_pass descriptors.
11737         * lower-subreg.c: Update tree_pass descriptors.
11738         * bt-load.c: Update tree_pass descriptors.
11739         * tree-dfa.c: Update tree_pass descriptors.
11740         * except.c: Update tree_pass descriptors.
11741         * emit-rtl.c: Update tree_pass descriptors.
11742         * cfgexpand.c: Update tree_pass descriptors.
11743         * tree-cfgcleanup.c: Update tree_pass descriptors.
11744         * cfgcleanup.c: Update tree_pass descriptors.
11745         * tree-ssa-pre.c: Update tree_pass descriptors.
11746         * tree-sra.c: Update tree_pass descriptors.
11747         * tree-mudflap.c: Update tree_pass descriptors.
11748         * tree-ssa-copy.c: Update tree_pass descriptors.
11749         * cfglayout.c: Update tree_pass descriptors.
11750         * tree-ssa-forwprop.c: Update tree_pass descriptors.
11751         * tree-ssa-dce.c: Update tree_pass descriptors.
11752         * tree-ssa.c: Update tree_pass descriptors.
11753         * regclass.c: Update tree_pass descriptors.
11754         * integrate.c: Update tree_pass descriptors.
11755         * tree-optimize.c: Update tree_pass descriptors.
11756         * tree-ssa-phiprop.c: Update tree_pass descriptors.
11757         * tree-object-size.c: Update tree_pass descriptors.
11758         * combine.c: Update tree_pass descriptors.
11759         * tree-outof-ssa.c: Update tree_pass descriptors.
11760         * bb-reorder.c: Update tree_pass descriptors.
11761         * stack-ptr-mod.c: Update tree_pass descriptors.
11762         * var-tracking.c: Update tree_pass descriptors.
11763         * tree-profile.c: Update tree_pass descriptors.
11764         * tree-vect-generic.c: Update tree_pass descriptors.
11765         * reg-stack.c: Update tree_pass descriptors.
11766         * sched-rgn.c: Update tree_pass descriptors.
11767         * tree-ssa-structalias.c: Update tree_pass descriptors.
11768         * tree-cfg.c: Update tree_pass descriptors.
11769         * passes.c (current_pass): Update declaration.
11770         (finish_optimization_passes): Update.
11771         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
11772         (register_one_dump_file, register_dump_files_1, next_pass_1):
11773         Update arguments.
11774         (init_optimization_passes): Update handling of new types.
11775         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
11776         * ipa-struct-reorg.c: Update tree_pass descriptors.
11777         * tree-ssa-reassoc.c: Update tree_pass descriptors.
11778         * combine-stack-adj.c: Update tree_pass descriptors.
11779         * cfgrtl.c: Update tree_pass descriptors.
11780         * dce.c: Update tree_pass descriptors.
11781         * tree-ssanames.c: Update tree_pass descriptors.
11782
11783 2008-03-19  Richard Guenther  <rguenther@suse.de>
11784
11785         PR middle-end/35609
11786         * tree-ssa.c (walk_data): New structure.
11787         (warn_uninitialized_var): If not always_executed warn with "maybe"
11788         instead of "is".
11789         (execute_early_warn_uninitialized): Compute post-dominators.
11790         Initialize always_executed before processing each basic block.
11791
11792 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
11793
11794         PR target/35504
11795         * config/i386/i386.c (x86_this_parameter): Calculate correct location
11796         of "this" pointer when "regparm = N" or "fastcall" is in effect.
11797
11798 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11799
11800         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
11801
11802 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
11803
11804         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
11805         is true.
11806         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
11807         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
11808         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
11809         target after ignore has been set, and move there also the commputation
11810         of subtarget and original_target.
11811         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
11812         (LANG_HOOKS_INITIALIZER): Remove it.
11813         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
11814
11815 2008-03-18  Richard Guenther  <rguenther@suse.de>
11816
11817         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
11818         found an expression with constants, note that in the VN for the lhs.
11819         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
11820         fold them to constants if possible.  Run cleanup_cfg if done so.
11821         (execute_pre): Return todo.
11822         (do_pre): Likewise.
11823         (execute_fre): Likewise.
11824         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
11825         of constants.
11826         (get_prop_source_stmt): Look through pointer conversions.
11827
11828 2008-03-18  Jan Hubicka  <jh@suse.cz>
11829
11830         * tree-pretty-print.c: Include predict.h.
11831         (dump_generic_node): Dump predictor.
11832         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
11833         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
11834         * gimple-low.c (lower_stmt): Likewise.
11835         * expr.c (expand_expr_real): Likewise.
11836         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
11837         them.
11838         (build_predict_expr, build_predict_expr): New.
11839         * predict.h (predictor_name, build_predict_expr): Update.
11840         * c-typeck.c (c_finish_bc_stmt): Add prediction.
11841         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
11842         * predict.def (PRED_CONTINUE): Update hitrate.
11843         * tree.def (PREDICT_EXPR): Define.
11844         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
11845         do not handle BIND_EXPR.
11846         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
11847         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
11848         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
11849         operands.
11850
11851 2008-03-18  Michael Matz  <matz@suse.de>
11852
11853         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
11854
11855 2008-03-18  Richard Guenther  <rguenther@suse.de>
11856
11857         * tree-gimple.h (is_gimple_invariant_address): Declare.
11858         (is_gimple_constant): Likewise.
11859         * tree-gimple.c (is_gimple_constant): New function.
11860         (is_gimple_invariant_address): Likewise.
11861         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
11862         and is_gimple_invariant_address.
11863         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
11864         previous change.
11865         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
11866         an addressable base.
11867
11868 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
11869
11870         PR middle-end/35611
11871         * gimplify.c (gimplify_expr): Gimplify second operand of
11872         OMP_ATOMIC_LOAD.
11873
11874 2008-03-17  Richard Guenther  <rguenther@suse.de>
11875
11876         PR tree-optimization/19637
11877         * fold-const.c (fold_unary): Remove restrictions of removing
11878         intermediate pointer-conversions (P2)(P1)P0.
11879         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
11880         conversion to void pointer.
11881         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
11882
11883 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
11884
11885         PR debug/31510
11886         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
11887         emulated thread local variables.
11888
11889 2008-03-16  Richard Guenther  <rguenther@suse.de>
11890
11891         PR middle-end/35607
11892         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
11893         expand TREE_INVARIANT operations that are not gimple invariant.
11894
11895 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
11896
11897         * doc/extend.texi (Alignment): Say that the ABI controls
11898         the __alignof__ for non-strict-alignment targets rather
11899         than being a recommendation.
11900
11901 2008-03-15  Paul Brook  <paul@codesourcery.com>
11902
11903         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
11904         annotations.
11905         (arm_output_fn_unwind): Mark functions that can not be unwound.
11906
11907 2008-03-15  Paul Brook  <paul@codesourcery.com>
11908
11909         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
11910         extension instructions.
11911
11912 2008-03-15  Richard Guenther  <rguenther@suse.de>
11913
11914         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
11915         and fold constant aggregate refs.
11916         (fold_const_aggregate_ref): Handle string constants
11917         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
11918         (evaluate_stmt): Simplify now that ccp_fold folds constant
11919         aggregate refs.
11920
11921 2008-03-15  Paul Brook  <paul@codesourcery.com>
11922
11923         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
11924         (extzv): Use gen_extzv_t2.
11925         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
11926
11927 2008-03-15  Richard Guenther  <rguenther@suse.de>
11928
11929         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
11930         (fold_const_aggregate_ref): Likewise.
11931         (get_value): Return NULL if we don't have any values.
11932         (ccp_finalize): Set const_val to NULL after freeing it.
11933         * tree-flow.h (get_symbol_constant_value): Declare.
11934         (fold_const_aggregate_ref): Likewise.
11935         * tree-ssa-sccvn.c (try_to_simplify): Use them.
11936
11937 2008-03-15  Richard Guenther  <rguenther@suse.de>
11938
11939         PR middle-end/35593
11940         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
11941         to not produce negative array indices if not allowed.  Add
11942         parameter to indicate that.
11943         (maybe_fold_offset_to_component_ref): Allow negative array
11944         indices only for the first member of a structure.
11945         (maybe_fold_offset_to_reference): Allow negative array indices.
11946         (maybe_fold_stmt_addition): Likewise.
11947
11948 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
11949             Anatoly Sokolov <aesok@post.ru>
11950
11951         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
11952         (avr_arch): Add ARCH_AVR6.
11953         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
11954         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
11955         instead of fixed value 2.
11956         (print_operand_address): Use gs() asm specifier instead of pm().
11957         (avr_assemble_integer): (Ditto.).
11958         (avr_output_addr_vec_elt): (Ditto.).
11959         (print_operand): Handle "!" code.
11960         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
11961         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
11962         (AVR_HAVE_EIJMP_EICALL): Define.
11963         (AVR_3_BYTE_PC): Redefine.
11964         (AVR_2_BYTE_PC): (Ditto.).
11965         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
11966         (LINK_SPEC): Add atmega2560 and atmega2561.
11967         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
11968         (crtm2561.o).
11969         * config/avr/avr.md (call_insn): Use eicall instead of icall 
11970         for 3 byte PC devices.
11971         (call_value_insn): (Ditto.).
11972         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
11973         (indirect_jump): Use only for for 2 byte PC devices.
11974         (*tablejump): (Ditto.).
11975         (*indirect_jump_avr6): Add insn.
11976         (*tablejump_rjmp): Don't use for 3 byte PC devices.
11977         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
11978         instead of ijmp for 3 byte PC devices.
11979         (__tablejump2__): (Ditto.).
11980         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
11981         (MULITLIB_DIRNAMES): (Ditto.). 
11982         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
11983
11984 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
11985
11986         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
11987         "sse2_umulsidi3".  Use V1DI mode for operand 0.
11988         ("mmx_psadbw"): Use V1DI mode for operand 0.
11989         * config/i386/i386-modes.def (V1SI): New vector mode.
11990         * config/i386/i386.c (struct builtin_description)
11991         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
11992         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
11993         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
11994         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
11995         v1di_ftype_v8qi_v8qi type.
11996         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
11997
11998         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
11999         __builtin_ia32_pmuludq]: Fix the mode of return value.
12000
12001 2008-03-15  Richard Guenther  <rguenther@suse.de>
12002
12003         PR middle-end/35595
12004         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
12005         being a PHI_NODE.
12006
12007 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
12008         
12009         * doc/invoke.texi (Option Summary, Xtensa Options): Document
12010         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
12011         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
12012         unless TARGET_SERIALIZE_VOLATILE is enabled.
12013         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
12014         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
12015         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
12016
12017 2008-03-14  Richard Guenther  <rguenther@suse.de>
12018
12019         PR tree-optimization/34172
12020         * tree-flow.h (refs_may_alias_p): Declare.
12021         (get_single_def_stmt): Likewise.
12022         (get_single_def_stmt_from_phi): Likewise.
12023         (get_single_def_stmt_with_phi): Likewise.
12024         * tree-dfa.c (refs_may_alias_p): New function.
12025         (get_single_def_stmt): Likewise.
12026         (get_single_def_stmt_from_phi): Likewise.
12027         (get_single_def_stmt_with_phi): Likewise.
12028         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
12029         (vn_reference_lookup_1): New helper function.
12030         (vn_reference_lookup): Walk the virtual use-def chain to
12031         continue searching for a match if the def does not alias the
12032         reference we are looking for.
12033
12034 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
12035
12036         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
12037         archive and Perzl.  Update The Written Word listing.
12038
12039 2008-03-14  Richard Guenther  <rguenther@suse.de>
12040
12041         PR tree-optimization/34043
12042         PR tree-optimization/33989
12043         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
12044         when doing FRE.
12045         (bitmap_find_leader): Use extra argument to verify dominance
12046         relationship inside a basic-block.
12047         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
12048         (find_leader_in_sets): Adjust.
12049         (create_component_ref_by_pieces): Take extra argument for
12050         dominance check, handle lookup failures.
12051         (find_or_generate_expression): Likewise.
12052         (create_expression_by_pieces): Likewise.
12053         (insert_into_preds_of_block): Adjust.
12054         (create_value_expr_from): If asked for, verify all operands
12055         are in the blocks AVAIL_OUT set.
12056         (make_values_for_stmt): Check for SSA_NAMEs that are life
12057         over an abnormal edge.
12058         (compute_avail): Remove such check.
12059         (do_SCCVN_insertion): New function.
12060         (eliminate): If we do not find a leader suitable for replacement
12061         insert a replacement expression from SCCVN if available.
12062         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
12063         (struct vn_ssa_aux): Add needs_insertion flag.
12064         * tree-ssa-sccvn.c (may_insert): New global flag.
12065         (copy_reference_ops_from_ref): Value-number union member access
12066         based on its size, not type and member if insertion is allowed.
12067         (visit_reference_op_load): For a weak match from union type
12068         punning lookup a view-converted value and insert a SSA_NAME
12069         for that value if that is not found.
12070         (visit_use): Make dumps shorter.  Do not disallow value numbering
12071         SSA_NAMEs that are life over an abnormal edge to constants.
12072         (free_scc_vn): Release inserted SSA_NAMEs.
12073         (run_scc_vn): New flag to specify whether insertion is allowed.
12074         Process SSA_NAMEs in forward order.
12075         * tree-ssa-loop-im.c (for_each_index): Handle invariant
12076         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
12077         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
12078         pointer type to/from integral types that do not change the
12079         precision to regular conversions.
12080
12081 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
12082
12083         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
12084         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
12085         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
12086         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
12087         input arguments and the mode of return value.  Built-in functions
12088         that operate on whole 64-bit MMX register now use V1DI mode.
12089
12090 2008-03-13  Alon Dayan  <alond@il.ibm.com>
12091             Olga Golovanevsky  <olga@il.ibm.com>
12092
12093         PR tree-optimization/35041
12094         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
12095         to locate the right position in a statement.
12096
12097 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
12098
12099         PR target/34000
12100         PR target/35553
12101         * config/i386/xmmintrin.h:  Change all static inline functions to
12102         extern inline and add __gnu_inline__ attribute.
12103         * config/i386/bmintrin.h: Ditto.
12104         * config/i386/smmintrin.h: Ditto.
12105         * config/i386/tmmintrin.h: Ditto.
12106         * config/i386/mmintrin-common.h: Ditto.
12107         * config/i386/ammintrin.h: Ditto.
12108         * config/i386/emmintrin.h: Ditto.
12109         * config/i386/pmmintrin.h: Ditto.
12110         * config/i386/mmintrin.h: Ditto.
12111         * config/i386/mm3dnow.h: Ditto.
12112
12113 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
12114
12115         PR middle-end/35185
12116         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
12117         (lower_omp_2): New function.
12118         (lower_omp_1, lower_omp): Rewritten.
12119
12120 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
12121
12122         PR 35054
12123         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
12124         with the phrase "Microsoft Windows compilers".
12125         (Push/Pop Macro Pragmas): New subsection. Document
12126         #pragma push_macro and pragma pop_macro.
12127
12128 2008-03-12  Paul Brook  <paul@codesourcery.com>
12129
12130         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
12131
12132 2008-03-12  Paul Brook  <paul@codesourcery.com>
12133
12134         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
12135         (thumb2_alusi3_short): Exclude PLUS and MINUS.
12136         (thumb2_addsi_shortim): Rename ...
12137         (thumb2_addsi_short): ... to this.  Allow register operands.
12138         (thumb2_subsi_short): New pattern.
12139         (thumb2_one_cmplsi2_short,
12140         thumb2_negsi2_short): New patterns and peepholes.
12141
12142 2008-03-12  Paul Brook  <paul@codesourcery.com>
12143
12144         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
12145
12146 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
12147
12148         * config/i386/i386.md (int_cond): New code iterator.
12149         (fp_cond): Ditto.
12150         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
12151         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
12152         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
12153         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
12154         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
12155         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
12156         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
12157         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
12158
12159 2008-03-12  Paul Brook  <paul@codesourcery.com>
12160
12161         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
12162         instead of {arm,thumb}_compute_save_reg_mask.
12163         (output_return_instruction): Ditto.
12164         (thumb_unexpanded_epilogue): Ditto.
12165         (thumb1_expand_prologue): Ditto.
12166         (thumb1_output_function_prologue): Ditto.
12167         (arm_set_return_address): Ditto.
12168         (thumb_set_return_address): Ditto.
12169         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
12170         regs to achieve stack alignment.
12171         (thumb1_compute_save_reg_mask): Fix compiler warning.
12172         (arm_output_epilogue): Use offsets->saved_regs_mask.
12173         Adjust stack pointer by poping call clobered registers.
12174         (arm_expand_prologue): Use offsets->saved_regs_mask.
12175         Adjust stack pointer by pushing extra registers.
12176         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
12177
12178 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
12179
12180         PR tree-opt/35422
12181         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
12182         conversion to the operands of a multiplication.
12183
12184 2008-03-12  Richard Guenther  <rguenther@suse.de>
12185
12186         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
12187         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
12188         * timevar.def (TV_TREE_PHIPROP): Add.
12189         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
12190         pass description.  Use TV_TREE_PHIPROP.
12191         * tree-ssa-forwprop.c: Remove phiprop code.
12192
12193 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
12194
12195         PR middle-end/35549
12196         * omp-low.c (maybe_lookup_decl): Constify first argument.
12197         (use_pointer_for_field): Change last argument from bool to
12198         omp_context *.  Disallow shared copy-in/out in nested
12199         parallel if decl is shared in outer parallel too.
12200         (build_outer_var_ref, scan_sharing_clauses,
12201         lower_rec_input_clauses, lower_copyprivate_clauses,
12202         lower_send_clauses, lower_send_shared_vars): Adjust callers.
12203
12204 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
12205             Ira Rosen  <irar@il.ibm.com>
12206
12207         * tree-vectorizer.c (free_stmt_vec_info): New function.
12208         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
12209         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
12210         * tree-vectorizer.h (free_stmt_vec_info): Declare.
12211         * tree-vect-transform.c (vectorizable_conversion): Free
12212         vec_oprnds0 if it was allocated.
12213         (vect_permute_store_chain): Remove unused VECs.
12214         (vectorizable_store): Free VECs that are allocated in the..
12215         function.
12216         (vect_transform_strided_load, vectorizable_load): Likewise.
12217         (vect_remove_stores): Simplify the code.
12218         (vect_transform_loop): Move code to vect_remove_stores().
12219         Call vect_remove_stores() and free_stmt_vec_info().
12220
12221 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12222
12223         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
12224         TARGET_HPUX.  Revise comment.
12225         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
12226         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
12227         Use sr4 variant of `be' instruction when not generating PIC code.
12228         (attr_length_call): Adjust for above change.
12229
12230 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12231
12232         * ipa-reference.c (static_execute): Remove module_statics_const and
12233         associated setting code.
12234
12235 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
12236
12237         PR target/35540
12238         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
12239         predicate for operand 1.
12240         (paritysi2_cmp): Use register_operand predicate for operand 2.
12241         Use earlyclobber modifier for operand 1.  Remove support for
12242         memory operands.
12243         (paritydi2_cmp): Use register_operand predicate for operand 3.
12244         Use earlyclobber modifier for operand 1.  Remove support for
12245         memory operands.
12246
12247 2008-03-11  Paul Brook  <paul@codesourcery.com>
12248             Vladimir Prus  <vladimir@codesourcery.com>
12249
12250         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
12251         (arm_compute_save_reg0_reg12_mask): Always
12252         check if register 11 must be saved.  Always safe hard frame pointer
12253         when frame_pointer_needeed.
12254         (arm_compute_save_reg_mask): Save IP and PC
12255         only with apcs frames.
12256         (arm_output_epilogue): Adjust Thumb2 codepath to
12257         be also invoked and work for ARM non-apcs frames.
12258         (arm_expand_prologue): Don't bother saving IP
12259         for non-apcs frame, since it's not clobbered by
12260         prologue code.  Implement non-apcs frame
12261         layout.
12262
12263 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
12264
12265         PR rtl-optimization/35281
12266         * expr.c (convert_move): Use a new pseudo for the intermediate
12267         from_mode->word_mode result.
12268
12269 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
12270
12271         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
12272         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
12273         * toplev.c (compile_file): Don't call it.
12274
12275 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
12276
12277         PR middle-end/35526
12278         * expr.c (store_expr): Call emit_block_move if the mode
12279         of "temp" RTX is BLKmode.
12280
12281 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12282             Richard Guenther  <rguenther@suse.de>
12283
12284         PR tree-optimization/31358
12285         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
12286         the step with a NULL_TREE.
12287         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
12288         to sizetype if type is a pointer type.
12289         (add_candidate_1): Don't convert the base and step to
12290         the generic type if the orginal type is a pointer type.
12291         (add_iv_value_candidates): Use sizetype for the step
12292         if type is a pointer type.
12293         (cand_value_at): Likewise.
12294         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
12295         for pointer types.
12296         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
12297         Don't convert the tem affine to the type.
12298         (add_elt_to_tree): Use sizetype for the step if a pointer.
12299         Use POINTER_PLUS_EXPR for pointers.
12300         (aff_combination_to_tree): Use sizetype for the step if a
12301         pointer.
12302
12303 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
12304
12305         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
12306         Remove commutativity hint.
12307
12308 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
12309
12310         PR c/35438
12311         PR c/35439
12312         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
12313         errorneous type.  Check that v is a VAR_DECL.
12314
12315         PR middle-end/35099
12316         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
12317
12318 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
12319
12320         PR tree-optimization/35494
12321         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
12322         may be overriden at link and run time.
12323
12324 2008-03-10  Richard Guenther  <rguenther@suse.de>
12325
12326         PR tree-optimization/34677
12327         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
12328         (poolify_tree): Likewise.
12329         (modify_expr_template): Likewise.
12330         (poolify_modify_stmt): Likewise.
12331         (insert_fake_stores): Handle all component-ref style stores
12332         in addition to INDIRECT_REF.  Also handle complex types.
12333         Do not poolify the inserted load.
12334         (realify_fake_stores): Do not rebuild the tree but only
12335         make it a SSA_NAME copy.
12336         (init_pre): Remove initialzation of modify_expr_template.
12337         Do not allocate modify_expr_node_pool.
12338         (fini_pre): Do not free modify_expr_node_pool.
12339
12340 2008-03-10  Paul Brook  <paul@codesourcery.com>
12341
12342         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
12343         to avoid conflicts.
12344
12345 2008-03-10  Paul Brook  <paul@codesourcery.com>
12346             Mark Shinwell  <shinwell@codesourcery.com>
12347
12348         * config/arm/cortex-r4.md: New.
12349         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
12350         insn attributes.
12351         * config/arm/arm.md: Include cortex-r4.md.
12352         (insn): Add smmls, sdiv and udiv values.
12353         (generic_sched): Don't use generic scheduling for Cortex-R4.
12354         (arm_issue_rate): New function.
12355         (TARGET_SCHED_ISSUE_RATE): Define.
12356
12357 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
12358
12359         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
12360
12361 2008-03-10  Richard Guenther  <rguenther@suse.de>
12362
12363         * tree-ssa-pre.c (get_sccvn_value): Simplify.
12364         (compute_avail): Do not add stmt uses to AVAIL_OUT.
12365
12366 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
12367
12368         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
12369         Set default to true.
12370
12371 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12372
12373         * c.opt (Wsynth): Deprecate.
12374         * doc/invoke.texi (Option Summary, Warning Options): Document
12375         -Wno-format-contains-nul.
12376
12377 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
12378
12379         PR target/35496
12380         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
12381         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
12382
12383 2008-03-09  Ira Rosen  <irar@il.ibm.com>
12384
12385         * config/rs6000/rs6000.c (builtin_description): Rename vector
12386         left shift operations.
12387         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
12388         (altivec_vsl<VI_char>): Rename to ...
12389         (ashl<mode>3): ... new name.
12390         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
12391         gen_ashlv4si3.
12392         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
12393
12394 2008-03-08  Richard Guenther  <rguenther@suse.de>
12395
12396         * coverage.h (tree_coverage_counter_addr): Declare.
12397         * coverage.c (tree_coverage_counter_addr): New function.
12398         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
12399         before using again.
12400         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
12401         (tree_gen_one_value_profiler): Likewise.
12402         (tree_gen_ic_profiler): Likewise.
12403         (tree_gen_average_profiler): Likewise.
12404         (tree_gen_ior_profiler): Likewise.
12405
12406 2008-03-08  Richard Guenther  <rguenther@suse.de>
12407
12408         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
12409         (vn_binary_op_insert): Likewise.
12410         (vn_unary_op_lookup): Likewise.
12411         (vn_unary_op_insert): Likewise.
12412         (vn_nary_op_lookup): Declare.
12413         (vn_nary_op_insert): Likewise.
12414         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
12415         and binary hashes, use a single obstack for unary_op_pool
12416         and binary_op_pool.
12417         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
12418         a single struct vn_nary_op_s.  Store tree code length and
12419         a variable number of operands.
12420         (struct vn_reference_op_struct): Remove unused op2.
12421         (vn_reference_op_eq): Do not compare op2.
12422         (vn_reference_op_compute_hash): Do not compute hash of op2.
12423         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
12424         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
12425         with vn_nary_op_compute_hash.
12426         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
12427         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
12428         vn_nary_op_lookup.
12429         (vn_unary_op_insert, vn_binary_op_insert): Replace with
12430         vn_nary_op_insert.
12431         (visit_unary_op): Call nary functions.
12432         (visit_binary_op): Likewise.
12433         (process_scc): Adjust for struct vn_tables_s changes.
12434         (allocate_vn_table): Likewise.
12435         (free_vn_table): Likewise.
12436         * tree-vn.c (vn_add): Call nary functions.
12437         (vn_lookup): Likewise.
12438
12439 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
12440
12441         PR target/35498
12442         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
12443         wdst back after sync_compare_and_swapqhi_internal.
12444
12445 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
12446
12447         PR target/22152
12448         * config/i386/i386-modes.def (V1DI): New vector mode.
12449         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
12450         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
12451         (MMXMODE248): Ditto.
12452         (MMXMODE): Add V1DI mode.
12453         (mmxvecsize): Change DI mode to V1DI mode.
12454         ("mov<mode>): Use MMXMODEI8 mode iterator.
12455         ("*mov<mode>_internal_rex64"): Ditto.
12456         ("*mov<mode>_internal"): Ditto.
12457         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
12458         ("mmx_sub<mode>3"): Ditto.
12459         ("mmx_adddi3"): Remove insn pattern.
12460         ("mmx_subdi3"): Ditto.
12461         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
12462         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
12463         ("mmx_ashl<mode>3"): Ditto.
12464         ("mmx_lshrdi3"): Remove insn pattern.
12465         ("mmx_ashldi3"): Ditto.
12466         * config/i386/i386.c (classify_argument): Handle V1DImode.
12467         (function_arg_advance_32): Ditto.
12468         (function_arg_32): Ditto.
12469         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
12470         mmx_addv1di3 insn pattern.
12471         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
12472         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
12473         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
12474         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
12475         Remove definitions of built-in functions.
12476         (V1DI_type_node): New node.
12477         (v1di_ftype_v1di_int): Ditto.
12478         (v1di_ftype_v1di_v1di): Ditto.
12479         (v2si_ftype_v2si_si): Ditto.
12480         (v4hi_ftype_v4hi_di): Remove node.
12481         (v2si_ftype_v2si_di): Ditto.
12482         (ix86_init_mmx_sse_builtins): Handle V1DImode.
12483         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
12484         Redefine builtins using def_builtin_const with *_ftype_*_int node.
12485         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
12486         Add new builtins using def_builtin_const.
12487         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
12488         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
12489         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
12490         * config/i386/mmintrin.h (__v1di): New typedef.
12491         (_mm_add_si64): Cast arguments to __v1di type.
12492         (_mm_sub_si64): Ditto.
12493         (_mm_sll_pi16): Cast __count to __v4hi type.
12494         (_mm_sll_pi32): Cast __count to __v2si type.
12495         (_mm_sll_si64): Cast arguments to __v1di type.
12496         (_mm_srl_pi16): Cast __count to __v4hi type.
12497         (_mm_srl_pi32): Cast __count to __v2si type.
12498         (_mm_srl_si64): Cast arguments to __v1di type.
12499         (_mm_sra_pi16): Cast __count to __v4hi type.
12500         (_mm_sra_pi32): Cast __count to __v2si type.
12501         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
12502         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
12503         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
12504         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
12505         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
12506         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
12507         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
12508         (_mm_srai_pi32): Use __builtin_ia32_psradi.
12509         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
12510         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
12511         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
12512         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
12513
12514 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
12515
12516         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
12517
12518 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
12519
12520         PR target/35373
12521         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
12522         reg+const addressing for Altivec modes.  Don't generate reg+reg
12523         addressing for TFmode or TDmode quantities.
12524
12525 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
12526
12527         * c-common.c (vector_types_convertible_p): Call langhook
12528         instead of comptypes.
12529
12530 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12531
12532         PR tree-opt/35402
12533         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
12534         integral and scalar float variables which have a
12535         NULL DECL_INITIAL.
12536
12537 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
12538
12539         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
12540         dwarf_register_span hook when emitting unwind information for
12541         register-to-memory saves.
12542         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
12543         (rs6000_frame_related): Remove call to spe_synthesize_frame.
12544
12545 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
12546
12547         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
12548         for the same VAR_DECL.
12549
12550 2008-03-06  Tom Tromey  <tromey@redhat.com>
12551
12552         * treelang: Delete.
12553         * doc/standards.texi (Standards): Don't mention treelang.
12554         * doc/invoke.texi (Overall Options): Don't mention treelang.
12555         * doc/install.texi (Prerequisites): Don't mention bison or
12556         treelang.
12557         (Configuration): Don't mention treelang.
12558         (Building): Likewise.
12559         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
12560
12561 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
12562
12563         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
12564         word-extractions out of a multi-word object.
12565
12566 2008-03-06  Richard Guenther  <rguenther@suse.de>
12567
12568         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
12569         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
12570         result type and precision.
12571         * expr.c (get_inner_reference): Set unsignedp based on the result
12572         type of BIT_FIELD_REF.
12573         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
12574         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
12575         (try_instantiate_multiple_fields): Likewise.  Use the correct type
12576         for BIT_FIELD_REF.
12577         (sra_build_assignment): Likewise.
12578         (sra_build_elt_assignment): Likewise.
12579         (sra_explode_bitfield_assignment): Likewise.
12580         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
12581         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
12582         set BIT_FIELD_REF_UNSIGNED.
12583         (vectorizable_load): Likewise.
12584
12585 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
12586
12587         * cse.c (cse_extended_basic_block): Invalidate artificial defs
12588         at bb start.
12589
12590 2008-03-06  Richard Guenther  <rguenther@suse.de>
12591
12592         * alias.c (struct alias_set_entry): Move has_zero_child field
12593         to pack with alias_set.
12594
12595 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
12596
12597         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
12598         32bit host.
12599
12600 2008-03-05  Ian Lance Taylor  <iant@google.com>
12601
12602         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
12603
12604 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
12605
12606         * fwprop.c (update_df): Support width and offset parameters of
12607         df_ref_create.
12608         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
12609         global_conflicts): Change DF_REF_EXTRACT to either
12610         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
12611         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
12612         * df-scan.c (df_ref_record, df_defs_record,
12613         df_ref_create_structure, df_def_record_1, df_uses_record,
12614         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
12615         df_bb_refs_collect, df_entry_block_defs_collect,
12616         df_exit_block_uses_collect): Support new width and offset fields.
12617         (ref_extract_pool): New storage pool.
12618         (df_free_ref): New function.
12619         (df_reg_chain_unlink, df_free_collection_rec,
12620         df_sort_and_compress_refs): Call df_free_ref.
12621         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
12622         of df_ref_extract.
12623         (df_ref_create_structure): Allocate df_ref_extract if offset and
12624         width fields are used.
12625         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
12626         (df_uses_record): Get offset and width from ZERO_EXTRACT 
12627         and SIGN_EXTRACT.
12628         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
12629         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
12630         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
12631         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
12632         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
12633         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
12634         (df_ref_extract): New structure.
12635         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
12636         (df_ref_create): Add width and offset parameters.
12637         
12638 2008-03-05  Richard Guenther  <rguenther@suse.de>
12639
12640         * tree-ssa-structalias.c (get_constraint_for_component_ref):
12641         Use ranges_overlap_p.
12642         (offset_overlaps_with_access): Rename
12643         to ranges_overlap_p and move ...
12644         * tree-flow-inline.h (ranges_overlap_p): ... here.
12645
12646         * tree.h (get_inner_reference, handled_component_p): Update
12647         comments.
12648
12649         * tree.h (record_component_aliases, get_alias_set,
12650         alias_sets_conflict_p, alias_sets_must_conflict_p,
12651         objects_must_conflict_p): Move declarations ...
12652         * alias.h (record_component_aliases, get_alias_set,
12653         alias_sets_conflict_p, alias_sets_must_conflict_p,
12654         objects_must_conflict_p): ... here.
12655         Include coretypes.h.
12656         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
12657
12658 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
12659
12660         * cfg.c: Include tree-flow.h.
12661         (remove_edge_raw): Call redirect_edge_var_map_clear.
12662         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
12663         * tree-flow-inline.h (redirect_edge_var_map_def): New.
12664         (redirect_edge_var_map_result): New.
12665         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
12666         PENDING_STMT use with redirect_edge_var_map_*.
12667         * tree-ssa.c (edge_var_maps): New definition.
12668         (redirect_edge_var_map_add): New.
12669         (redirect_edge_var_map_clear): New.
12670         (redirect_edge_var_map_dup): New.
12671         (redirect_edge_var_map_vector): New.
12672         (redirect_edge_var_map_destroy): New.
12673         (ssa_redirect_edge): Replace PENDING_STMT use with
12674         redirect_edge_var_map_*.
12675         (flush_pending_stmts): Same.
12676         (delete_tree_ssa): Destroy edge var map.
12677         * tree-flow.h (struct _edge_var_map): New.
12678         Define edge_var_map vector type.
12679         Declare redirect_edge_var_map_* prototypes.
12680         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
12681         * tree-cfg.c (reinstall_phi_args): Replace
12682         PENDING_STMT use with redirect_edge_var_map_*.
12683
12684 2008-03-05  Richard Guenther  <rguenther@suse.de>
12685
12686         PR tree-optimization/35472
12687         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
12688         whose single use_stmt has a overlapping set of loaded and
12689         stored symbols as that use_stmt might be a noop assignment then.
12690
12691 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
12692
12693         * gthr-rtems.h: Implement __gthread_mutex_destroy.
12694
12695 2008-03-05  Richard Guenther  <rguenther@suse.de>
12696
12697         PR c++/35336
12698         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
12699         should be constants.
12700         * tree-cfg.c (verify_expr): Verify it.
12701         * fold-const.c (fold_truthop): Remove code generating
12702         BIT_FIELD_REFs of structure bases.
12703         (fold_binary): Likewise.
12704         (fold_ternary): Position and size of BIT_FIELD_REFs are
12705         always host integers.
12706         (make_bit_field_ref): Remove.
12707         (optimize_bit_field_compare): Remove.
12708         (all_ones_mask_p): Remove.
12709
12710 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
12711
12712         PR gcc/33009
12713         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
12714         (split_block_and_df_analyze): New. Split basic block and rebuild
12715         dataflow.
12716         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
12717         SPLIT_BLOCK.
12718         (split_pattern_seq): Likewise.
12719         (erase_matching_seqs): Likewise.
12720         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
12721
12722 2008-03-04  Geoff Keating  <geoffk@apple.com>
12723
12724         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
12725         declaration and code.
12726         (tree_invalid_nonnegative_warnv_p): Likewise.
12727
12728 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
12729
12730         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
12731         examples.  Truncate option-names then causing overfull hbox.
12732
12733 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12734
12735         PR target/35222
12736         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
12737         on hpux10.
12738         * configure: Rebuilt.
12739
12740 2008-03-04  Rafael Espindola  <espindola@google.com>
12741
12742         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
12743         (tree_unary_nonnegative_warnv_p): New.
12744         (tree_binary_nonnegative_warnv_p): New.
12745         (tree_single_nonnegative_warnv_p): New.
12746         (tree_invalid_nonnegative_warnv_p): New.
12747         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
12748
12749 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12750
12751         PR 28322
12752         * opts.c (handle_option): Postpone 'unknown option' errors only for
12753         warning options.
12754
12755 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
12756
12757         PR target/35453
12758         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
12759         (_SIDD_XXX): This.
12760
12761 2008-03-04  Rafael Espindola  <espindola@google.com>
12762
12763         * fold-const.c (tree_unary_nonzero_warnv_p): New.
12764         (tree_binary_nonzero_warnv_p): New.
12765         (tree_single_nonzero_warnv_p): New.
12766         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
12767
12768 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
12769
12770         PR middle-end/35456
12771         * fold-const.c (fold_cond_expr_with_comparison): Prevent
12772         transformations for modes that have signed zeros.
12773         * ifcvt.c (noce_try_abs): Ditto.
12774
12775 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
12776
12777         * config/i386/i386.c (override_options): Force
12778         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
12779
12780 2008-03-04  Jan Hubicka  <jh@suse.cz>
12781
12782         PR c++/35262
12783         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
12784         in last commit.
12785
12786 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
12787
12788         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
12789         label to probe the stack.
12790
12791 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
12792
12793         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
12794         (__gthr_win32_mutex_destroy): Declare.
12795         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
12796         __gthr_win32_mutex_destroy.
12797         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
12798
12799 2008-03-03  Jan Hubicka  <jh@suse.cz>
12800
12801         PR c++/35262
12802         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
12803         aggressive on inlining cold calls.
12804
12805 2008-03-03  Richard Guenther  <rguenther@suse.de>
12806
12807         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
12808         struct copies into the expression table.
12809         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
12810         (try_to_simplify): Likewise.
12811         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
12812         integral and pointer arguments which do not change the
12813         precision to NOP_EXPRs.
12814         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
12815         VIEW_CONVERT_EXPR case.
12816
12817 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
12818
12819         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
12820         defined in a loop at depth 0 is invariant.
12821         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
12822         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
12823         be called at loop depth 0.
12824
12825 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
12826
12827         PR driver/35420
12828         * gcc.c (process_command): Update copyright notice dates.
12829         * gcov.c (print_version): Likewise.
12830         * gcov-dump.c (print_version): Likewise.
12831         * mips-tfile.c (main): Likewise.
12832         * mips-tdump.c (main): Likewise.
12833
12834 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12835
12836         PR 24924
12837         * c-common.c (flag_permissive): Delete.
12838         (constant_expression_warnings): Check flags first.
12839         (constant_expression_error): New.
12840         * c-common.h (flag_permissive): Delete.
12841         (constant_expression_error): Declare.
12842         * flags.h (flag_permissive): Declare. Update description.
12843         * diagnostic.c (pedwarn): Update.
12844         (permerror): New.
12845         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
12846         (permissive_error_kind): New.
12847         * toplev.c (flag_permissive): Define. Update description.
12848         * toplev.h (permissive_error_kind): Declare.
12849         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
12850         (pedwarn_c90): Use pedantic_warning_kind.
12851         * c-opts.c (c_common_post_options): flag_permissive does not affect
12852         flag_pedantic_errors.
12853
12854 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
12855
12856         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
12857         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
12858         __absvsi2, __absvDI2): Use unsigned arithmetic.
12859
12860 2008-03-02  Andi Kleen  <ak@suse.de>
12861             Richard Guenther  <rguenther@suse.de>
12862
12863         * struct-equiv.c: Remove file.
12864         * cfg_cleanup.c (condjump_equiv_p): Remove.
12865         * Makefile.in (OBJS-common): Remove struct-equiv.o.
12866         (struct-equiv.o): Remove rule.
12867         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
12868         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
12869         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
12870
12871 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
12872
12873         * ifcvt.c (noce_process_if_block): Try to handle only the then
12874         block if the else block exists but isn't suitable.
12875
12876 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
12877
12878         PR gcc/35063
12879         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
12880         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
12881         regression from previous patch.
12882
12883 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
12884
12885         PR gcc/35063
12886         * gthr.h: Add __gthread_mutex_destroy as a function that must be
12887         implemented.
12888         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
12889         * gthr-single.h (__gthread_mutex_destroy): Likewise.
12890         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
12891         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
12892         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
12893         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
12894         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
12895         (__gthread_mutex_destroy_function): Rename to
12896         __gthread_mutex_destroy.
12897         * gthr-dce.h (__gthread_mutex_destroy): Call
12898         pthread_mutex_destroy.
12899         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
12900         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
12901         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
12902
12903 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
12904
12905         * df-scan.c (df_ref_chain_change_bb): Simplify.
12906         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
12907         set_block_for_insn if there's any change.
12908         * df.h ((df_insn_change_bb): Fix prototype.
12909         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
12910         df_insn_change_bb, don't call set_block_for_insn.
12911         * emit-rtl.c (reorder_insns): Likewise.
12912         * haifa-sched.c (move_insn): Likewise.
12913
12914 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
12915
12916         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
12917
12918 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
12919
12920         * tree-flow-inline.h (next_readonly_imm_use): Return
12921         NULL_USE_OPERAND_P after the end.
12922
12923 2008-03-01  Richard Guenther  <rguenther@suse.de>
12924
12925         PR tree-optimization/35411
12926         * tree-sra.c (sra_build_assignment): Split conversion to
12927         final type to a separate statement if we are not assigning
12928         to a register.
12929
12930 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
12931
12932         * fold-const.c (fold_convertible_p): Correct the logic to follow
12933         that in fold_convert().
12934
12935 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
12936
12937         PR c++/35315
12938         * tree-inline.c (build_duplicate_type): When we make a
12939         duplicate type, make it unique in the canonical types system.
12940
12941 2008-02-29  Tom Tromey  <tromey@redhat.com>
12942
12943         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
12944         input_file_stack_history, input_file_stack_restored): Remove.
12945         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
12946         * input.h (struct file_stack): Remove.
12947         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
12948         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
12949         Likewise.
12950         * diagnostic.h (struct diagnostic_context) <last_module>: Change
12951         type.
12952         (diagnostic_last_module_changed): Add 'map' argument.
12953         (diagnostic_set_last_function): Likewise.
12954         * diagnostic.c (undiagnostic_report_current_module): Iterate using
12955         line map, not input_file_stack.
12956         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
12957
12958 2008-02-29  Paul Brook  <paul@codesourcery.com>
12959
12960         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
12961
12962 2008-02-29  Paul Brook  <paul@codesourcery.com>
12963
12964         * config/arm/ieee754-df.S (muldf3): Use RET macros.
12965
12966 2008-02-29  Richard Guenther  <rguenther@suse.de>
12967
12968         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
12969         vn_lookup_or_add.
12970         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
12971         value for comparing for a store match.
12972         (simplify_unary_expression): Do nothing for SSA_NAMEs.
12973         (try_to_simplify): Do not do a full-blown reference lookup.
12974
12975 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
12976
12977         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
12978         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
12979
12980         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
12981
12982 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
12983
12984         * tree-loop-linear.c (try_interchange_loops): Compare memory access
12985         strides against cache sizes.
12986
12987 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
12988
12989         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
12990         constant to fpul.
12991
12992 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
12993
12994         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
12995         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
12996         is smaller than the original promoted value.
12997         (simplify_subreg): If OP is a SUBREG, try to preserve its
12998         SUBREG_PROMOTED_VAR_P information.
12999
13000 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
13001
13002         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
13003         (VN_INFO_GET): Allocate new objects on the obstack.
13004         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
13005         for rpo_numbers_temp, for consistency.
13006         (free_scc_vn): Free the obstack.
13007
13008 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
13009
13010         * doc/invoke.texi: Document -ftree-loop-distribution.
13011         * tree-loop-distribution.c: New.
13012         * tree-pass.h (pass_loop_distribution): New.
13013         * graphds.h (struct graph): Add htab_t indices.
13014         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
13015         * tree-vectorizer.c (rename_variables_in_loop): Extern.
13016         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
13017         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
13018         * tree-data-ref.c (debug_data_dependence_relations): New.
13019         (dump_data_dependence_relation): Also print data references.
13020         (free_data_ref): Extern.
13021         (same_access_functions): Moved...
13022         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
13023         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
13024         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
13025         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
13026         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
13027         (stmts_from_loop): Skip LABEL_EXPR.
13028         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
13029         New.
13030         (build_rdg): Initialize rdg->indices htab.
13031         (free_rdg, stores_from_loop, ref_base_address,
13032         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
13033         have_similar_memory_accesses_1, ref_base_address_1,
13034         remove_similar_memory_refs): New.
13035         * tree-data-ref.h: Depend on tree-chrec.h.
13036         (debug_data_dependence_relations, free_data_ref): Declared.
13037         (same_access_functions): ... here.
13038         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
13039         New.
13040         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
13041         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
13042         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
13043         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
13044         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
13045         rdg_vertex_for_stmt): Declared.
13046         (struct rdg_edge): Add level.
13047         (RDGE_LEVEL): New.
13048         (free_rdg, stores_from_loop, remove_similar_memory_refs,
13049         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
13050         Declared.
13051         (rdg_has_similar_memory_accesses): New.
13052         * tree-vect-analyze.c: Remove unused static decls.
13053         * lambda.h (dependence_level): New.
13054         * common.opt (ftree-loop-distribution): New.
13055         * tree-flow.h (mark_virtual_ops_in_bb, 
13056         slpeel_tree_duplicate_loop_to_edge_cfg,
13057         rename_variables_in_loop): Declared.
13058         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
13059         (OBJS-common): Add tree-loop-distribution.o.
13060         (tree-loop-distribution.o): New rule.
13061         * tree-cfg.c (mark_virtual_ops_in_bb): New.
13062         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
13063         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
13064
13065 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
13066
13067         PR target/33963
13068         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
13069         other than structures and unions.
13070
13071 2008-02-28  Richard Guenther  <rguenther@suse.de>
13072
13073         Revert:
13074         2008-02-26  Richard Guenther  <rguenther@suse.de>
13075
13076         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
13077         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
13078         (lookup_decl_from_uid): Declare.
13079         (remove_decl_from_map): Likewise.
13080         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
13081         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
13082         (decl_for_uid_map): New global hashtable mapping DECL_UID
13083         to the decl tree.
13084         (init_ttree): Allocate it.
13085         (insert_decl_to_uid_decl_map): New helper function.
13086         (make_node_stat): Insert new decls into the map.
13087         (copy_node_stat): Likewise.
13088         (lookup_decl_from_uid): New function.
13089         (remove_decl_from_map): Likewise.
13090         (print_decl_for_uid_map_statistics): New helper.
13091         (dump_tree_statistics): Call it.
13092
13093         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
13094         (referenced_var_iterator): Adjust.
13095         (FOR_EACH_REFERENCED_VAR): Adjust.
13096         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
13097         (num_referenced_vars): Adjust.
13098         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
13099         (first_referenced_var): Remove.
13100         (end_referenced_vars_p): Likewise.
13101         (next_referenced_var): Likewise.
13102         (referenced_var_iterator_set): New helper function.
13103         * tree-dfa.c (referenced_var_lookup): Adjust.
13104         (referenced_var_check_and_insert): Likewise.
13105         (remove_referenced_var): Likewise.
13106         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
13107         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13108         (verify_call_clobbering): Likewise.
13109         (verify_memory_partitions): Likewise.
13110         (init_tree_ssa): Allocate bitmap instead of hashtable for
13111         referenced_vars.
13112         (delete_tree_ssa): Adjust.
13113         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
13114         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13115         (compute_tag_properties): Likewise.
13116         (set_initial_properties): Likewise.
13117         (find_partition_for): Likewise.
13118         (update_reference_counts): Likewise.
13119         (dump_may_aliases_for): Likewise.
13120         * tree-ssa-operands.c (add_virtual_operand): Likewise.
13121         (add_call_clobber_ops): Likewise.
13122         (add_call_read_ops): Likewise.
13123         (get_asm_expr_operands): Likewise.
13124         * tree-into-ssa.c (dump_decl_set): Likewise.
13125         (update_ssa): Likewise.
13126         * tree-sra.c (scan_function): Likewise.
13127         (decide_instantiations): Likewise.
13128         (scalarize_parms): Likewise.
13129         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
13130         (dsa_named_for): Likewise.
13131         * tree-ssa-structalias.c (update_alias_info): Likewise.
13132         (merge_smts_into): Likewise.
13133
13134 2008-02-27  David Daney  <ddaney@avtrex.com>
13135
13136         PR target/34409
13137         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
13138         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
13139         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
13140         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
13141         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
13142
13143 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
13144
13145         PR target/25477
13146         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
13147         (BUILT_IN_NEXTTOWARD): Remove.
13148         (BUILT_IN_NEXTTOWARDF): Ditto.
13149         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
13150         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
13151
13152 2008-02-27  Tom Tromey  <tromey@redhat.com>
13153
13154         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
13155         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
13156
13157 2008-02-27  Jan Beulich  <jbeulich@novell.com>
13158
13159         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
13160         update the respective field on newdecl.
13161
13162 2008-02-27  Revital Eres  <eres@il.ibm.com>
13163
13164         PR rtl-optimization/34999
13165         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
13166         crossing edges that ends with a call insn.
13167         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
13168         call insn and clear the EDGE_CROSSING flag of the crossing edge
13169         when fixing fallthru edges.
13170
13171 2008-02-27  Richard Guenther  <rguenther@suse.de>
13172
13173         PR middle-end/35390
13174         * fold-const.c (fold_unary): Return the correct argument,
13175         converted to the result type.
13176
13177 2008-02-27  Richard Guenther  <rguenther@suse.de>
13178
13179         PR middle-end/34971
13180         * expr.c (expand_expr_real_1): Assert on rotates that operate
13181         on partial modes.
13182         * fold-const.c (fold_binary): Use the types precision, not the
13183         bitsize of the mode if folding rotate expressions.  Build rotates
13184         only for full modes.
13185
13186 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
13187
13188         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
13189         and CPP_PRAGMA_EOL.
13190         * c-pragma.c (pragma_ns_name): New typedef.
13191         (registered_pp_pragmas): New variable.
13192         (c_pp_lookup_pragma): New function.
13193         (c_register_pragma_1): If flag_preprocess_only, do nothing
13194         for non-expanded pragmas, for expanded ones push pragma's
13195         namespace and name into registered_pp_pragmas vector.
13196         (c_invoke_pragma_handler): Register OpenMP pragmas even when
13197         flag_preprocess_only, don't register GCC pch_preprocess
13198         pragma if flag_preprocess_only.
13199         * c-opts.c (c_common_init): Call init_pragma even if
13200         flag_preprocess_only.
13201         * c-pragma.c (c_pp_lookup_pragma): New prototype.
13202         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
13203         cpp_register_pragma if flag_preprocess_only.
13204
13205 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13206
13207         PR c/28800
13208         * c-parser.c (c_parser_translation_unit): Warn for empty
13209         translation unit, not empty source file.
13210
13211 2008-02-26  Paul Brook  <paul@codesourcery.com>
13212
13213         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
13214         operand for Thumb-2.
13215         * config/arm/arm.h (reg_class): Add CORE_REGS.
13216         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
13217         (BASE_REG_CLASS): Use CORE_REGS.
13218         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
13219         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
13220         (REGNO_OK_FOR_INDEX_P): Exclude SP.
13221         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
13222         ARM_REGNO_OK_FOR_INDEX_P.
13223         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
13224         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
13225         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
13226         (ldm/stm peepholes): Ditto.
13227         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
13228         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
13229         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
13230         * config/arm/constraints.md: Enable "k" constraint on ARM.
13231
13232 2008-02-27  Ben Elliston  <bje@au.ibm.com>
13233
13234         * config/rs6000/rs6000.c: Annotate cache line size field in all
13235         instances of struct processor_costs.
13236
13237 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
13238
13239         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
13240         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
13241         jump_bypass): New counters.
13242         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
13243         * dce.c (gate_ud_dce): Same.
13244         (gate_fast_dce): Same.
13245         * dse.c (gate_dse1): New function.
13246         (gate_dse2): New function.
13247         (gate_dse): Merge results of new gate functions.
13248         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
13249         (gate_handle_jump_bypass): Add dbg_cnt.
13250         (gate_handle_gcse): Add dbg_cnt.
13251         * ifcvt.c (gate_handle_if_conversion): Same.
13252         (gate_handle_if_after_combine): Same.
13253         (gate_handle_if_after_reload): Same.
13254         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
13255
13256 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
13257
13258         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
13259         line sizes.
13260         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
13261
13262 2008-02-26  Jason Merrill  <jason@redhat.com>
13263
13264         PR c++/35315
13265         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
13266         alone if it's the naming decl for the type's main variant.
13267
13268 2008-02-26  Tom Tromey  <tromey@redhat.com>
13269
13270         * system.h (USE_MAPPED_LOCATION): Poison.
13271         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
13272         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
13273         (make_goto_expr_edges): Likewise.
13274         (remove_bb): Likewise.
13275         (execute_warn_function_return): Likewise.
13276         * basic-block.h (struct edge_def) <goto_locus>: Change type to
13277         location_t.
13278         * c-common.c (fname_decl): Remove old location code.
13279         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
13280         location code.
13281         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
13282         variant.
13283         (ASM_INPUT_SOURCE_LOCATION): Likewise.
13284         (gen_rtx_ASM_INPUT): Likewise.
13285         (gen_rtx_ASM_INPUT_loc): Likewise.
13286         (get_rtx_asm_OPERANDS): Remove.
13287         * cfglayout.c (insn_locators_alloc): Remove old location code.
13288         (set_curr_insn_source_location): Likewise.
13289         (curr_insn_locator): Likewise.
13290         * print-tree.c (print_node): Remove old location code.
13291         * tree-mudflap.c (mf_varname_tree): Remove old location code.
13292         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
13293         * cfgexpand.c (expand_gimple_cond_expr): Don't use
13294         location_from_locus.
13295         (construct_exit_block): Remove old location code.
13296         * emit-rtl.c (force_next_line_note): Remove old location code.
13297         * profile.c (branch_prob): Remove old location code.
13298         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
13299         LOC_LINE): Remove old-location variants.
13300         * langhooks.c (lhd_print_error_function): Remove old location
13301         code.
13302         * configure, config.in: Rebuilt.
13303         * configure.ac (--enable-mapped-location): Remove.
13304         * c-decl.c (c_init_decl_processing): Remove old location code.
13305         (finish_function): Likewise.
13306         * recog.c (decode_asm_operands): Remove old location code.
13307         * c-pch.c (c_common_read_pch): Remove old location code.
13308         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
13309         variants.
13310         * gimple-low.c (lower_function_body): Remove old location code.
13311         * toplev.c (unknown_location): Remove.
13312         (push_srcloc): Remove old-location variant.
13313         (process_options): Remove old location code.
13314         (lang_dependent_init): Likewise.
13315         * input.h (UNKNOWN_LOCATION): Move definition.
13316         (location_t): Undeprecate.
13317         (source_locus): Remove.
13318         (location_from_locus): Remove.
13319         (struct location_s): Remove.
13320         Remove all old-location code.
13321         (input_line, input_filename): Remove.
13322         * final.c (final_scan_insn): Remove old location code.
13323         * diagnostic.c (diagnostic_build_prefix): Remove
13324         USE_MAPPED_LOCATION test.
13325         * tree.h (gimple_stmt) <locus>: Now a location_t.
13326         (tree_exp) <locus>: Likewise.
13327         (DECL_IS_BUILTIN): Remove old-location variant.
13328         (annotate_with_file_line, annotate_with_locus): Likewise.
13329         (expr_locus, set_expr_locus): Update.
13330         * tree.c (build1_stat): Remove old location code.
13331         (last_annotated_node): Remove.
13332         (annotate_with_file_line): Remove old-location variant.
13333         (annotate_with_locus): Likewise.
13334         (expr_location): Remove old location code.
13335         (set_expr_location): Likewise.
13336         (expr_has_location): Likewise.
13337         (expr_locus): Likewise.
13338         (set_expr_locus): Likewise.
13339         (expr_filename): Don't use location_from_locus.
13340         (expr_lineno): Likewise.
13341         * rtl-error.c (location_for_asm): Remove old location code.
13342         * c-lex.c (cb_line_change): Remove old location code.
13343         (fe_file_change): Likewise.
13344         (cb_def_pragma): Likewise.
13345         (c_lex_with_flags): Likewise.
13346         * gengtype.c (do_typedef): Don't special-case location types.
13347         (define_location_structures): Remove.
13348         (main): Don't call define_location_structures.
13349         * tree-pretty-print.c (dump_implicit_edges): Remove old location
13350         code.
13351
13352 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13353
13354         PR 26264
13355         * builtins.def (BUILT_IN_STDARG_START): Remove.
13356         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
13357         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
13358         * tree-inline.c (inline_forbidden_p_1): Likewise.
13359         
13360 2008-02-26  Richard Guenther  <rguenther@suse.de>
13361
13362         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
13363         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
13364         (lookup_decl_from_uid): Declare.
13365         (remove_decl_from_map): Likewise.
13366         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
13367         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
13368         (decl_for_uid_map): New global hashtable mapping DECL_UID
13369         to the decl tree.
13370         (init_ttree): Allocate it.
13371         (insert_decl_to_uid_decl_map): New helper function.
13372         (make_node_stat): Insert new decls into the map.
13373         (copy_node_stat): Likewise.
13374         (lookup_decl_from_uid): New function.
13375         (remove_decl_from_map): Likewise.
13376         (print_decl_for_uid_map_statistics): New helper.
13377         (dump_tree_statistics): Call it.
13378
13379         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
13380         (referenced_var_iterator): Adjust.
13381         (FOR_EACH_REFERENCED_VAR): Adjust.
13382         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
13383         (num_referenced_vars): Adjust.
13384         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
13385         (first_referenced_var): Remove.
13386         (end_referenced_vars_p): Likewise.
13387         (next_referenced_var): Likewise.
13388         (referenced_var_iterator_set): New helper function.
13389         * tree-dfa.c (referenced_var_lookup): Adjust.
13390         (referenced_var_check_and_insert): Likewise.
13391         (remove_referenced_var): Likewise.
13392         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
13393         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13394         (verify_call_clobbering): Likewise.
13395         (verify_memory_partitions): Likewise.
13396         (init_tree_ssa): Allocate bitmap instead of hashtable for
13397         referenced_vars.
13398         (delete_tree_ssa): Adjust.
13399         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
13400         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13401         (compute_tag_properties): Likewise.
13402         (set_initial_properties): Likewise.
13403         (find_partition_for): Likewise.
13404         (update_reference_counts): Likewise.
13405         (dump_may_aliases_for): Likewise.
13406         * tree-ssa-operands.c (add_virtual_operand): Likewise.
13407         (add_call_clobber_ops): Likewise.
13408         (add_call_read_ops): Likewise.
13409         (get_asm_expr_operands): Likewise.
13410         * tree-into-ssa.c (dump_decl_set): Likewise.
13411         (update_ssa): Likewise.
13412         * tree-sra.c (scan_function): Likewise.
13413         (decide_instantiations): Likewise.
13414         (scalarize_parms): Likewise.
13415         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
13416         (dsa_named_for): Likewise.
13417         * tree-ssa-structalias.c (update_alias_info): Likewise.
13418         (merge_smts_into): Likewise.
13419
13420 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13421
13422         PR 34351
13423         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
13424         * c-opts.c (c_common_handle_option): Wall enables
13425         Wvolatile-register-var.
13426         * common.opt: Move Wvolatile-register-var to...
13427         * c.opt: ...here.
13428         
13429 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13430
13431         * common.opt (Wlarger-than=): New.
13432         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
13433         -Wlarger-than=.
13434         * opts.c (common_handle_option): Handle -Wlarger-than=.
13435         * optc-gen.awk: Likewise.
13436         * opth-gen.awk: Likewise.
13437         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
13438         * tree-optimize.c (tree_rest_of_compilation): Likewise.
13439         
13440 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13441
13442         * c-common.c (match_case_to_enum_1): Add appropriate
13443         OPT_W* parameter to warning.
13444         (c_do_switch_warnings): Likewise.
13445         * c-typeck.c (warning_init): Add one more parameter following
13446         'warning' function.
13447         (push_init_level): Update call to warning_init.
13448         (pop_init_level): Likewise.
13449         (add_pending_init): Likewise.
13450         (output_init_element: Likewise.
13451
13452 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13453
13454         PR 28322
13455         * toplev.c (toplev_main): If there are warnings or error, print
13456         errors for ignored options.
13457         * opts.c (ignored_options): New static variable.
13458         (postpone_unknown_option_error): New.
13459         (print_ignored_options): New.
13460         (handle_option): Postpone errors for unknown -Wno-* options.
13461         * opts.h (print_ignored_options): Declare.
13462         
13463 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
13464
13465         * config/mips/mips.md (loadgp_blockage, blockage): Change type
13466         to "ghost".
13467
13468 2008-02-25  Richard Guenther  <rguenther@suse.de>
13469
13470         Revert:
13471         2008-02-25  Richard Guenther  <rguenther@suse.de>
13472
13473         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
13474         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
13475         (lookup_decl_from_uid): Declare.
13476         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
13477         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
13478         (decl_for_uid_map): New global hashtable mapping DECL_UID
13479         to the decl tree.
13480         (init_ttree): Allocate it.
13481         (insert_decl_to_uid_decl_map): New helper function.
13482         (make_node_stat): Insert new decls into the map.
13483         (copy_node_stat): Likewise.
13484         (lookup_decl_from_uid): New function.
13485         (print_decl_for_uid_map_statistics): New helper.
13486         (dump_tree_statistics): Call it.
13487
13488         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
13489         (referenced_var_iterator): Adjust.
13490         (FOR_EACH_REFERENCED_VAR): Adjust.
13491         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
13492         (num_referenced_vars): Adjust.
13493         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
13494         (first_referenced_var): Remove.
13495         (end_referenced_vars_p): Likewise.
13496         (next_referenced_var): Likewise.
13497         (referenced_var_iterator_set): New helper function.
13498         * tree-dfa.c (referenced_var_lookup): Adjust.
13499         (referenced_var_check_and_insert): Likewise.
13500         (remove_referenced_var): Likewise.
13501         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
13502         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13503         (verify_call_clobbering): Likewise.
13504         (verify_memory_partitions): Likewise.
13505         (init_tree_ssa): Allocate bitmap instead of hashtable for
13506         referenced_vars.
13507         (delete_tree_ssa): Adjust.
13508         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
13509         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13510         (compute_tag_properties): Likewise.
13511         (set_initial_properties): Likewise.
13512         (find_partition_for): Likewise.
13513         (update_reference_counts): Likewise.
13514         (dump_may_aliases_for): Likewise.
13515         * tree-ssa-operands.c (add_virtual_operand): Likewise.
13516         (add_call_clobber_ops): Likewise.
13517         (add_call_read_ops): Likewise.
13518         (get_asm_expr_operands): Likewise.
13519         * tree-into-ssa.c (dump_decl_set): Likewise.
13520         (update_ssa): Likewise.
13521         * tree-sra.c (scan_function): Likewise.
13522         (decide_instantiations): Likewise.
13523         (scalarize_parms): Likewise.
13524         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
13525         (dsa_named_for): Likewise.
13526         * tree-ssa-structalias.c (update_alias_info): Likewise.
13527         (merge_smts_into): Likewise.
13528
13529 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
13530
13531         PR fortran/29549
13532         * doc/invoke.texi (-fcx-limited-range): Document new option.
13533         * toplev.c (process_options): Handle -fcx-fortran-rules.
13534         * common.opt: Add documentation for -fcx-fortran-rules.
13535
13536 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
13537
13538         PR c/35162
13539         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
13540         actual behaviour and C99.
13541         
13542 2008-02-26  Ben Elliston  <bje@au.ibm.com>
13543
13544         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
13545         (ASM_CPU_POWER6_SPEC): Likewise.
13546         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
13547         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
13548         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
13549
13550 2008-02-25  Richard Guenther  <rguenther@suse.de>
13551
13552         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
13553         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
13554         (lookup_decl_from_uid): Declare.
13555         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
13556         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
13557         (decl_for_uid_map): New global hashtable mapping DECL_UID
13558         to the decl tree.
13559         (init_ttree): Allocate it.
13560         (insert_decl_to_uid_decl_map): New helper function.
13561         (make_node_stat): Insert new decls into the map.
13562         (copy_node_stat): Likewise.
13563         (lookup_decl_from_uid): New function.
13564         (print_decl_for_uid_map_statistics): New helper.
13565         (dump_tree_statistics): Call it.
13566
13567         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
13568         (referenced_var_iterator): Adjust.
13569         (FOR_EACH_REFERENCED_VAR): Adjust.
13570         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
13571         (num_referenced_vars): Adjust.
13572         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
13573         (first_referenced_var): Remove.
13574         (end_referenced_vars_p): Likewise.
13575         (next_referenced_var): Likewise.
13576         (referenced_var_iterator_set): New helper function.
13577         * tree-dfa.c (referenced_var_lookup): Adjust.
13578         (referenced_var_check_and_insert): Likewise.
13579         (remove_referenced_var): Likewise.
13580         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
13581         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13582         (verify_call_clobbering): Likewise.
13583         (verify_memory_partitions): Likewise.
13584         (init_tree_ssa): Allocate bitmap instead of hashtable for
13585         referenced_vars.
13586         (delete_tree_ssa): Adjust.
13587         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
13588         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13589         (compute_tag_properties): Likewise.
13590         (set_initial_properties): Likewise.
13591         (find_partition_for): Likewise.
13592         (update_reference_counts): Likewise.
13593         (dump_may_aliases_for): Likewise.
13594         * tree-ssa-operands.c (add_virtual_operand): Likewise.
13595         (add_call_clobber_ops): Likewise.
13596         (add_call_read_ops): Likewise.
13597         (get_asm_expr_operands): Likewise.
13598         * tree-into-ssa.c (dump_decl_set): Likewise.
13599         (update_ssa): Likewise.
13600         * tree-sra.c (scan_function): Likewise.
13601         (decide_instantiations): Likewise.
13602         (scalarize_parms): Likewise.
13603         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
13604         (dsa_named_for): Likewise.
13605         * tree-ssa-structalias.c (update_alias_info): Likewise.
13606         (merge_smts_into): Likewise.
13607
13608 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
13609
13610         PR target/35258
13611         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
13612         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
13613         * alias.h (nonoverlapping_memrefs_p): Likewise.
13614
13615 2008-02-25  Jan Beulich  <jbeulich@novell.com>
13616
13617         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
13618         * config/i386/netware-libgcc.exp: Add __bswap?i2,
13619         __emultls_get_address, __emultls_register_common,
13620         __floatundi?f, and _Unwind_GetIPInfo.
13621         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
13622         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
13623         (gen_regparm_prefix): Likewise.
13624         (i386_nlm_encode_section_info): Sync with
13625         config/i386/winnt.c:i386_pe_encode_section_info().
13626         (i386_nlm_maybe_mangle_decl_assembler_name): New.
13627         i386_nlm_mangle_decl_assembler_name): New.
13628         (netware_override_options): New.
13629         * config/i386/netware.h (netware_override_options): Declare.
13630         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
13631         (i386_nlm_mangle_decl_assembler_name): Declare.
13632         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
13633
13634 2008-02-25  Ben Elliston  <bje@au.ibm.com>
13635
13636         PR other/32948
13637         * c-decl.c (grokdeclarator): Remove unused local variables
13638         `typedef_type' and `type_as_written'.
13639         * bb-reorder.c
13640         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
13641         unused local variable `has_hot_blocks'.
13642         (fix_crossing_conditional_branches): Remove unused local variable
13643         `prev_bb'.
13644         
13645 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
13646
13647         PR middle-end/19984
13648         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
13649         using DEF_C99_BUILTIN.
13650         (BUILT_IN_NANF): Ditto.
13651         (BUILT_IN_NANL): Ditto.
13652
13653 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
13654             Revital Eres  <eres@il.ibm.com>
13655
13656         * modulo-sched.c (calculate_must_precede_follow): Address TODO
13657         regarding the order of two dependent insns in the same row.
13658
13659 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
13660
13661         * stor-layout.c (layout_decl): Do not bump the alignment of a
13662         bit-field to more than byte alignment if it is packed.
13663
13664 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
13665
13666         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
13667         e300c2 and e300c3.
13668
13669 2008-02-24  Diego Novillo  <dnovillo@google.com>
13670
13671         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
13672
13673         PR 33738
13674         * tree-vrp.c (vrp_evaluate_conditional): With
13675         -Wtype-limits, emit a warning when comparing against a
13676         constant outside the natural range of OP0's type.
13677         * c.opt (Wtype-limits): Move ...
13678         * common.opt (Wtype-limits): ... here.
13679
13680 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
13681
13682         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
13683         * config/rs6000/e300c2c3.md: New file.
13684         * config/rs6000/rs6000.c (processor_costs): Add new costs for
13685         e300c2 and e300c3.
13686         (rs6000_override_options): Add e300c2 and e300c3 cases to
13687         processor_target_table. Do not allow usage of Altivec or Spe
13688         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
13689         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
13690         * config/rs6000/rs6000.h (processor_type): Add
13691         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
13692         (ASM_CPU_SPEC): Add e300c2 and e300c3.
13693         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
13694         and ppce300c3. Include e300c2c3.md.
13695
13696 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
13697
13698         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
13699         instead of TARGET_STRICT_ALIGN.
13700
13701 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
13702
13703         * explow.c (memory_address): Assert that the generated address is
13704         valid.
13705
13706 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
13707
13708         PR target/25477
13709         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
13710         * config/darwin-ppc-ldouble-patch.def: New file.
13711         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
13712         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
13713         SUBTARGET_INIT_BUILTINS if defined.
13714         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
13715         New functions.
13716
13717 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13718
13719         PR rtl-opt/33512
13720         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
13721         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
13722
13723 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13724
13725         PR pch/35027
13726         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
13727         file" warning condtional on -Winvalid-PCH.
13728
13729 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
13730
13731         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
13732
13733 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
13734
13735         PR target/22076
13736         PR target/34256 
13737         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
13738         prevent reload from using MMX registers.
13739         (*mov<mode>_internal): Ditto.
13740         (*movv2sf_internal_rex64): Ditto.
13741         (*movv2sf_internal): Ditto.
13742
13743 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13744
13745         PR documentation/31569
13746         * doc/install.texi2html: Use makeinfo --no-number-sections.
13747
13748 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
13749
13750         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
13751         ensure that we can address an entire entity > 8 bytes.  Don't
13752         generate reg+reg addressing for such data.
13753
13754 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
13755
13756         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
13757         strings when optimizing for size, unless the target cares about
13758         alignment.
13759
13760 2008-02-22  Tom Tromey  <tromey@redhat.com>
13761
13762         * regclass.c (current_pass): Remove declaration.
13763
13764 2008-02-22  Anatoly Sokolov <aesok@post.ru>
13765
13766         * config/avr/libgcc.S (__RAMPZ__): Define.
13767         (__do_copy_data): Add for devices with 128KB code memory.
13768
13769 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
13770
13771         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
13772         Use spe_abi.
13773         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
13774
13775 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
13776
13777         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
13778         GENNONACR_REGS.
13779
13780 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13781
13782         PR c/19999
13783         * c-typeck.c (build_binary_op): Warn about floating point
13784         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
13785
13786 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
13787
13788         PR target/34526
13789         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
13790         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
13791         add vrsave.
13792         (rs6000_override_options): Set altivec_abi as default, not override,
13793         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
13794         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
13795         is used; use new member spe_abi.
13796         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
13797         spe_abi and altivec_abi.
13798
13799 2008-02-22  Tomas Bily  <tbily@suse.cz>
13800
13801         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
13802
13803 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13804
13805         PR bootstrap/35273
13806         * config.build (build_file_translate): Set to `CMD //c' only if
13807         it works.
13808         * Makefile.in (build_file_translate): Improve comment.
13809
13810 2008-02-21  Jan Hubicka  <jh@suse.cz>
13811
13812         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
13813         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
13814         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
13815
13816 2008-02-21  Michael Matz  <matz@suse.de>
13817
13818         PR target/35264
13819         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
13820
13821 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
13822
13823         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
13824         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
13825         as insn constraint.
13826         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
13827         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
13828         SSE_VEC_FLOAT_MODE_P as insn constraint.
13829         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
13830         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
13831         sse4a_movntdf using MODEF mode iterator.
13832         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
13833         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
13834         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
13835         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
13836         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
13837         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
13838         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
13839
13840 2008-02-21  Richard Guenther  <rguenther@suse.de>
13841
13842         * tree.def (PAREN_EXPR): New tree code.
13843         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
13844         and PAREN_EXPR.
13845         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
13846         * expr.c (expand_expr_real_1): Likewise.
13847         * tree-inline.c (estimate_num_insns_1): Likewise.
13848         * tree-complex.c (expand_complex_move): Likewise.
13849         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
13850         as plain x.
13851
13852 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
13853
13854         PR target/35225
13855         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
13856
13857 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
13858
13859         PR target/35190
13860         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
13861
13862         * config/sh/sh.c (find_barrier): Don't go past
13863         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
13864
13865 2008-02-20  DJ Delorie  <dj@redhat.com>
13866
13867         * config/h8300/h8300.md (insv): Force source operand to be a register.
13868
13869         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
13870         as a jump, not as a plain insn.
13871         
13872 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
13873
13874         * doc/invoke.texi (Warning Options): Add new option
13875         -Wframe-larger-than=.
13876         (-Wframe-larger-than): Document.
13877
13878         * flags.h (warn_frame_larger_than, frame_larger_than_size):
13879         Add declarations for new option variables.
13880
13881         * final.c (final_start_function): Check the frame size
13882         before emission and issue a Wframe-larger-than warning.
13883
13884         * opts.c (warn_frame_larger_than, frame_larger_than_size):
13885         Add definitions for new option variables.
13886         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
13887
13888         * common.opt (Wframe-larger-than=): New option.
13889
13890 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
13891
13892         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
13893         (<sse>_div<mode>3): Ditto.
13894         (<sse>_vmdiv<mode>3): Ditto.
13895         (<sse>_vmsqrt<mode>2): Ditto.
13896         (*smax<mode>3): Ditto.
13897         (sse5_frcz<mode>2): Ditto.
13898         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
13899         as insn constraint.
13900
13901 2008-02-20  Richard Guenther  <rguenther@suse.de>
13902
13903         PR middle-end/35265
13904         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
13905         be happy with INTEGRAL_TYPE_P.
13906
13907 2008-02-20  Richard Guenther  <rguenther@suse.de>
13908
13909         * fold-const.c (split_tree): Associate floatig-point expressions
13910         if flag_associative_math is set.
13911
13912 2008-02-20  Richard Guenther  <rguenther@suse.de>
13913
13914         * tree.h (fold_real_zero_addition_p): Declare.
13915         * fold-const.c (fold_real_zero_addition_p): Export.
13916         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
13917         floating-point operations with zero and one.
13918
13919 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
13920
13921         * doc/install.texi: Correct references to CFLAGS, replacing them
13922         with BOOT_CFLAGS.  Document flags used during bootstrap for
13923         target libraries.
13924                                 
13925 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
13926
13927         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
13928         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
13929         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
13930         insn constraint.
13931         (smin<mode>3): Ditto from similar patterns.
13932         (smax<mode>3): Ditto.
13933         (*ieee_smin<mode>3): Ditto.
13934         (*ieee_smax<mode>3): Ditto.
13935         * config/i386/sse.md (sse): New mode attribute.
13936         (mov<mode>): Macroize expander from movv4sf and movv2df using
13937         SSEMODEF2P mode iterator.
13938         (<sse>_movnt<mode>): Ditto from similar patterns. Use
13939         SSE_VEC_FLOAT_MODE_P as insn constraint.
13940         (storent<mode>): Ditto.
13941         (storent<mode>): Macroize expander from storentsf and storentdf using
13942         MODEF mode iterator.
13943         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
13944         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
13945         (abs<mode>2): Ditto from similar patterns.
13946         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
13947         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
13948         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
13949         (<sse>_vmsqrt<mode>2): Ditto.
13950         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
13951         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
13952         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
13953         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
13954         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
13955         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
13956         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
13957         insn constraint.
13958         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
13959         iterator and SSE_FLOAT_MODE_P as insn constraint.
13960         (<sse>_ucomi): Ditto from similar patterns.
13961         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
13962         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
13963         SSE_VEC_FLOAT_MODE_P as insn constraint.
13964         (vcond<mode>): Ditto from similar patterns.
13965         (and<mode>3, *and<mode>3): Ditto.
13966         (<sse>_nand<mode>3): Ditto.
13967         (ior<mode>3, *ior<mode>3): Ditto.
13968         (xor<mode>3, *xor<mode>3): Ditto.
13969         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
13970         iterator and SSE_FLOAT_MODE_P as insn constraint.
13971         (*nand<mode>3): Ditto from similar patterns.
13972         (*ior<mode>3): Ditto.
13973         (*xor<mode>3): Ditto.
13974
13975 2008-02-20  Ira Rosen  <irar@il.ibm.com>
13976
13977         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
13978         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
13979         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
13980
13981 2008-02-19  Jan Hubicka  <jh@suse.cz>
13982
13983         * predict.c (tree_bb_level_predictions): Remove variable next
13984         mistakely introduced by previous commit.
13985
13986 2008-02-19  Jan Hubicka  <jh@suse.cz>
13987
13988         * predict.c (predict_paths_leading_to): Rewrite.
13989         (predict_paths_for_bb): New.
13990         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
13991
13992 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13993
13994         PR bootstrap/35218
13995         * Makefile.in (build_file_translate): New.
13996         (gcc-vers.texi): Use it for translating $(abs_srcdir).
13997         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
13998         * configure.ac (build_file_translate): Substitute it.
13999         * configure: Regenerate.
14000
14001 2008-02-19  Jan Hubicka  <jh@suse.cz>
14002
14003         PR rtl-optimization/34408
14004         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
14005         invalid sharing.
14006
14007 2008-02-19  Jan Hubicka  <jh@suse.cz>
14008
14009         PR middle-end/28779
14010         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
14011         call_expr.
14012
14013 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
14014
14015         PR Ada/35186
14016         * config/i386/i386-modes.def: Revert the last DI alignment
14017         change until Ada people can look into it.
14018
14019 2008-02-19  Nick Clifton  <nickc@redhat.com>
14020
14021         * opts.c (print_specific_help): Fix typo in --help text.
14022
14023 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
14024
14025         PR target/35239
14026         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
14027         32-bit inline asm without asm alternatives for host GCC < 3.0.
14028
14029 2008-02-19  Richard Guenther  <rguenther@suse.de>
14030
14031         PR tree-optimization/34989
14032         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
14033         Allow propagation to INDIRECT_REF if we can simplify only.
14034
14035 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14036
14037         * c-common.c (warn_for_collisions_1): Use appropriate option when
14038         warning.
14039
14040 2008-02-19  Nick Clifton  <nickc@redhat.com>
14041
14042         PR other/31349
14043         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
14044         (handle_options): Fix indentation.
14045         (print_filtered_help): If no language-specific options were
14046         displayed tell the user how to list all the options supported by
14047         the language's front-end.
14048         (print_specific_help): Fix indentation and remove duplicate line.
14049         (common_handle_option): Handle the -v option.
14050         For --help enable the display of undocumented options if the -v
14051         switch has been included on the command line.
14052         For --help= check for overlaps in the arguments between the option
14053         classes and the language names and issue a warning when they
14054         cannot be disambiguated.
14055         * c.opt (v): Pass on to the common option handler.
14056
14057 2008-02-19  Revital Eres  <eres@il.ibm.com> 
14058
14059         * modulo-sched.c (sms_schedule): Change dump message when
14060         create_ddg function fails.
14061         (try_scheduling_node_in_cycle): Rename row to cycle.
14062         (print_partial_schedule): Rename CYCLE to ROW.
14063
14064 2008-02-19  Christian Bruel  <christian.bruel@st.com>
14065             Zdenek Dvorak  <ook@ucw.cz>
14066
14067         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
14068
14069 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
14070
14071         PR target/33555
14072         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
14073         (*x86_movdicc_0_m1_se): Ditto.
14074
14075 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
14076
14077         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
14078         (CMPtype): Define as __gcc_CMPtype.
14079         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
14080         (CMPtype): Define as __gcc_CMPtype.
14081
14082 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
14083
14084         Support valgrind 3.3 for --enable-checking=valgrind.
14085         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
14086         here.
14087         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
14088         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
14089         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
14090         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
14091         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
14092         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
14093         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
14094         respectively.
14095         * ggc-zone.c: Similar.
14096         * ggc-page.c: Similar.
14097
14098 2008-02-19  Paul Brook  <paul@codesourcery.com>
14099
14100         PR target/35071
14101         * config/arm/ieee754-df.S: Fix do_it typo.
14102         * config/arm/ieee754-sf.S: Fix do_it typo.
14103
14104 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
14105
14106         PR target/35189
14107         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
14108         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
14109         (OPTION_MASK_ISA_SSE_SET): Likewise.
14110         (OPTION_MASK_ISA_SSE2_SET): Likewise.
14111         (OPTION_MASK_ISA_SSE3_SET): Likewise.
14112         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
14113         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
14114         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
14115         (OPTION_MASK_ISA_SSE4_SET): Likewise.
14116         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
14117         (OPTION_MASK_ISA_SSE5_SET): Likewise.
14118         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
14119         (OPTION_MASK_ISA_MMX_UNSET): Updated.
14120         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
14121         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
14122         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
14123         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
14124         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
14125         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
14126         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
14127         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
14128         (OPTION_MASK_ISA_SSE4): Removed.
14129         (ix86_handle_option): Turn on bits in ix86_isa_flags and
14130         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
14131         (override_options): Don't turn on implied SSE/MMX bits in
14132         ix86_isa_flags.
14133
14134 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
14135
14136         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
14137         32bit host.
14138
14139 2008-02-18  Joey Ye  <joey.ye@intel.com>
14140
14141         PR middle-end/34921
14142         * tree-nested.c (insert_field_into_struct): Set type alignment
14143         to field alignment if the former is less than the latter.
14144
14145 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
14146
14147         * BASE-VER: Set to 4.4.0.
14148
14149 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14150
14151         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
14152         * doc/cfg.texi: Likewise.
14153         * doc/extend.texi: Likewise.
14154         * doc/gty.texi: Likewise.
14155         * doc/invoke.texi: Likewise.
14156         * doc/loop.texi: Likewise.
14157         * doc/md.texi: Likewise.
14158         * doc/passes.texi: Likewise.
14159         * doc/rtl.texi: Likewise.
14160         * doc/sourcebuild.texi: Likewise.
14161         * doc/tm.texi: Likewise.
14162         * doc/tree-ssa.texi: Likewise.
14163
14164 2008-02-17  Richard Guenther  <rguenther@suse.de>
14165
14166         PR middle-end/35227
14167         * tree-complex.c (init_parameter_lattice_values): Handle parameters
14168         without default definition.
14169
14170 2008-02-17  Richard Guenther  <rguenther@suse.de>
14171
14172         PR tree-optimization/35231
14173         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
14174         if A | B != 1.
14175
14176 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
14177
14178         Revert:
14179         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
14180         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
14181         libgcc_cmp_return mode.
14182
14183 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14184
14185         PR c/28368
14186         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
14187
14188 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
14189
14190         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
14191         multilibs.
14192
14193 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14194
14195         * doc/c-tree.texi: Use `@.' where appropriate.
14196         * doc/extend.texi: Likewise.
14197         * doc/install.texi: Likewise.
14198         * doc/invoke.texi: Likewise.
14199         * doc/loop.texi: Likewise.
14200         * doc/makefile.texi: Likewise.
14201         * doc/md.texi: Likewise.
14202         * doc/passes.texi: Likewise.
14203         * doc/standards.texi: Likewise.
14204         * doc/tm.texi: Likewise.
14205
14206 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
14207
14208         PR middle-end/35196
14209         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
14210         in entry_bb.
14211         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
14212         rather than in entry_bb.
14213
14214 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
14215
14216         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
14217         libgcc_cmp_return mode.
14218
14219 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
14220
14221         PR middle-end/35130
14222         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
14223         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
14224
14225 2008-02-15  Richard Guenther  <rguenther@suse.de>
14226             Zdenek Dvorak  <ook@ucw.cz>
14227
14228         PR tree-optimization/35164
14229         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
14230         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
14231         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
14232         Only propagate addresses which do not have abnormal SSA_NAMEs
14233         in their operands.
14234
14235 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
14236
14237         PR target/35088
14238         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
14239
14240 2008-02-15  Jan Hubicka  <jh@suse.cz>
14241
14242         PR middle-end/35149
14243         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
14244
14245 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
14246
14247         PR middle-end/34621
14248         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
14249         when calculating alignment_pad.
14250
14251 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
14252
14253         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
14254         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
14255         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
14256         and STACK_BOUNDARY define.
14257
14258 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
14259
14260         PR preprocessor/35061
14261         * c-pragma.c (handle_pragma_pop_macro): Check that
14262         pushed_macro_table has been allocated.
14263
14264 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
14265
14266         PR middle-end/35136
14267         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
14268         (force_gimple_operand): Likewise.
14269         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
14270         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
14271         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
14272         (find_interesting_uses_address): Check addressability and alignment
14273         of the base expression only after substituting bases of IVs into it.
14274
14275 2008-02-14  Michael Matz  <matz@suse.de>
14276
14277         PR target/34930
14278         * function.c (instantiate_virtual_regs_in_insn): Reload address
14279         before falling back to reloading the whole operand.
14280
14281 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
14282
14283         * config/s390/s390.c (s390_mainpool_start): Emit the pool
14284         before the first section switch note.
14285
14286 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14287
14288         * doc/bugreport.texi: Update copyright years.
14289         * doc/c-tree.texi: Likewise.
14290         * doc/cfg.texi: Likewise.
14291         * doc/cpp.texi: Likewise.
14292         * doc/cppinternals.texi: Likewise.
14293         * doc/fragments.texi: Likewise.
14294         * doc/frontends.texi: Likewise.
14295         * doc/gcc.texi: Likewise.
14296         * doc/gty.texi: Likewise.
14297         * doc/hostconfig.texi: Likewise.
14298         * doc/implement-c.texi: Likewise.
14299         * doc/libgcc.texi: Likewise.
14300         * doc/loop.texi: Likewise.
14301         * doc/makefile.texi: Likewise.
14302         * doc/options.texi: Likewise.
14303         * doc/passes.texi: Likewise.
14304         * doc/rtl.texi: Likewise.
14305         * doc/sourcebuild.texi: Likewise.
14306         * doc/standards.texi: Likewise.
14307         * doc/tree-ssa.texi: Likewise.
14308         * doc/trouble.texi: Likewise.
14309
14310         * doc/extend.texi: Use @: or add comma where appropriate.
14311         * doc/invoke.texi: Likewise.
14312         * doc/tm.texi: Likewise.
14313
14314 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
14315
14316         PR target/34393
14317         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
14318         to a reg.
14319
14320 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
14321
14322         * doc/md.texi (clz, ctz): Add reference.
14323         * doc/rtl.texi (clz, ctz): Likewise.
14324
14325 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14326
14327         PR other/35148
14328         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
14329         srcdir.
14330
14331 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
14332
14333         * config/s390/s390.c (struct constant_pool): New field
14334         emit_pool_after added.
14335         (s390_mainpool_start): Set the emit_pool_after flag according
14336         to the section switch notes.
14337         (s390_mainpool_finish): Consider emit_pool_after when emitting
14338         the literal pool at the end of the function.
14339         (s390_chunkify_start): Force literal pool splits at section
14340         switch notes.
14341
14342 2008-02-13  Michael Matz  <matz@suse.de>
14343
14344         PR debug/35065
14345         * var-tracking.c (clobber_variable_part): Correctly traverse the
14346         list.
14347
14348 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14349
14350         PR 29673
14351         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
14352         Add -fdump-ipa-inline.
14353         * tree-dump.c (dump_files): Remove tree-inlined dump.
14354         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
14355         
14356 2008-02-12  Richard Guenther  <rguenther@suse.de>
14357
14358         PR tree-optimization/35171
14359         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
14360         default defs.
14361
14362 2008-02-12  Richard Guenther  <rguenther@suse.de>
14363
14364         PR middle-end/35163
14365         * fold-const.c (fold_widened_comparison): Use get_unwidened in
14366         value-preserving mode.  Disallow final truncation.
14367
14368 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
14369
14370         PR middle-end/35136
14371         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
14372         code from here to...
14373         (force_gimple_operand): ...here.
14374
14375 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
14376
14377         PR c++/35144
14378         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
14379         non-compatible pointers.
14380         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
14381         different FIELD_DECLs, try harder by comparing field offsets, sizes
14382         and types.
14383
14384         PR inline-asm/35160
14385         * function.c (match_asm_constraints_1): Don't replace the same input
14386         multiple times.
14387
14388 2008-02-12  Anatoly Sokolov <aesok@post.ru>
14389
14390         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
14391         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
14392         (expand_epilogue): Restore RAMPZ register.
14393         * config/avr/avr.md (RAMPZ_ADDR): New constant.
14394
14395 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
14396
14397         * config/i386/cygwin.asm: (__alloca): Correct calling
14398         convention and alignment.
14399         (__chkstk): Force 8 byte stack alignment.
14400
14401 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
14402             Richard Guenther  <rguenther@suse.de>
14403
14404         PR tree-optimization/33992
14405         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
14406         the zero we compare against.
14407
14408 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
14409
14410         PR libfortran/35063
14411         * gthr-win32.h (__gthread_mutex_destroy_function): New function
14412         to CloseHandle after unlocking to prevent accumulation of handle
14413         count.
14414
14415 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14416
14417         PR middle_end/34150
14418         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
14419         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
14420         and update LABEL_NUSES during and after reload.
14421
14422 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
14423
14424         PR middle-end/34627
14425         * combine.c (simplify_if_then_else): Make sure the comparison is
14426         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
14427
14428 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
14429
14430         PR bootstrap/35051
14431         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
14432         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
14433         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
14434         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
14435         * tree.h (get_type_static_bounds): Likewise.
14436
14437 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14438
14439         * doc/invoke.texi (Option Summary, C++ Dialect Options)
14440         (Objective-C and Objective-C++ Dialect Options, Warning Options):
14441         Make -Wfoo language annotations match what the compiler outputs.
14442
14443 2008-02-08  Sa Liu  <saliu@de.ibm.com>
14444
14445         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
14446         intrinsics spu_convts, spu_convtu, spu_convtf.
14447
14448 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
14449
14450         * doc/extend.texi (Function Attributes) <noinline>: Mention
14451         asm ("") as method to keep calls.
14452
14453 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14454
14455         PR other/32754
14456         * doc/options.texi (Options): Replace references to opts.sh with
14457         optc-gen.awk.
14458         * opts-common.c: Likewise.
14459         * optc-gen.awk: Likewise.
14460         
14461 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
14462
14463         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
14464
14465 2008-02-07  Richard Henderson  <rth@redhat.com>
14466
14467         PR rtl-opt/33410
14468         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
14469         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
14470         funny mode.
14471
14472 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
14473
14474         PR tree-optimization/35085
14475         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
14476         for operand entry oe2 in addition to operand entry oe3 in order to
14477         expose more opportunities for vectorizer sum reduction.
14478
14479 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14480
14481         PR other/35107
14482         * Makefile.in (LIBS): Remove $(GMPLIBS).
14483         (cc1-dummy, cc1): Add $(GMPLIBS).
14484
14485 2008-02-06  Jan Hubicka  <jh@suse.cz>
14486
14487         PR target/23322
14488         * i386.md (moddf_integer): Do not produce partial memory stalls for
14489         targets where it hurts.
14490
14491 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
14492
14493         PR target/35083
14494         * optabs.c (expand_float): Do not check for decimal modes when
14495         expanding unsigned integer through signed conversion.
14496
14497 2008-02-06  Nick Clifton  <nickc@redhat.com>
14498
14499         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
14500         inside the clobber with a match_operand and duplicated operand
14501         number in the constraint.
14502         (ineqbranchsi): Delete redundant comment.
14503
14504 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
14505
14506         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
14507         builtin_define ("__USE_INIT_FINI__").
14508         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
14509         -msx multilibs.
14510         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
14511
14512 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14513
14514         PR documentation/30330
14515         * doc/invoke.texi (C++ Dialect Options)
14516         (Objective-C and Objective-C++ Dialect Options, Warning Options):
14517         For each warning option -Wfoo that allows -Wno-foo, ensure both
14518         -Wfoo and -Wno-foo are listed in the option index.  Fix index
14519         entry of -Wswitch-default, index -Wnormalized= including the
14520         `=', and -Wlarger-than-@var{len} including @var{len}.
14521
14522 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
14523
14524         * config/i386/i386.md (floatunssisf2): Use
14525         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
14526         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
14527         Macroize expander using MODEF mode iterator.
14528
14529 2008-02-05  Diego Novillo  <dnovillo@google.com>
14530
14531         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
14532
14533         PR 33738
14534         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
14535
14536 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14537
14538         PR other/35070
14539         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
14540
14541 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
14542
14543         PR target/35084
14544         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
14545         to indicate if a message should be generated.
14546         (init_cumulative_args): Updated.
14547         (function_value_32): Likewise.
14548
14549 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
14550
14551         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
14552
14553 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
14554
14555         PR target/35083
14556         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
14557         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
14558
14559 2008-02-04  Diego Novillo  <dnovillo@google.com>
14560
14561         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
14562
14563         PR 33738
14564         * tree-vrp.c (vrp_evaluate_conditional): With
14565         -Wtype-limits, emit a warning when comparing against a
14566         constant outside the natural range of OP0's type.
14567
14568 2008-02-04  Richard Guenther  <rguenther@suse.de>
14569
14570         PR middle-end/33631
14571         * expr.c (count_type_elements): Give for unions instead of
14572         guessing.
14573
14574 2008-02-04  Richard Guenther  <rguenther@suse.de>
14575
14576         PR middle-end/35043
14577         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
14578         to TYPE_DOMAINs base type instead of using bitsizetype here.
14579
14580 2008-02-03  Jason Merrill  <jason@redhat.com>
14581
14582         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
14583
14584 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14585
14586         PR other/29972
14587         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
14588         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
14589         (RS/6000 and PowerPC Options): Fix typos and markup.
14590         * doc/passes.texi (Tree-SSA passes): Likewise.
14591
14592 2008-02-02  Michael Matz  <matz@suse.de>
14593
14594         PR target/35045
14595         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
14596         from record_last_reg_set_info.
14597         (record_last_reg_set_info): Take an RTX argument, iterate over all
14598         constituent hardregs.
14599         (record_last_set_info, record_opr_changes): Change calls to
14600         new signature or to record_last_reg_set_info_regno.
14601
14602 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
14603
14604         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
14605
14606 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
14607
14608         PR rtl-optimization/34773
14609         * reg-notes.def (EQUAL): Mention significance of combination of
14610         REG_EQUAL and REG_RETVAL.
14611         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
14612         insn that has a REG_RETVAL.
14613
14614 2008-02-01  Roger Sayle  <roger@eyesopen.com>
14615
14616         PR bootstrap/33781
14617         * configure.ac (--enable-fixed-point): Disable unless explicitly
14618         requested on IRIX.
14619         * configure: Regenerate.
14620
14621 2008-02-01  Richard Guenther  <rguenther@suse.de>
14622
14623         PR other/35042
14624         * invoke.texi (-finline-limit): Remove no longer true parts
14625         of the documentation.  Note that there is no default value.
14626
14627 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
14628             Mark Mitchell  <mark@codesourcery.com>
14629             Ben Elliston  <bje@au.ibm.com>
14630
14631         PR c/29326
14632         * doc/extend.texi (Other Builtins): Document.
14633
14634 2008-01-31  Tom Browder <tom.browder@gmail.com>
14635
14636         * doc/c-tree.texi (Types): Fix grammar.
14637         (Expression trees): Ditto.
14638         * doc/passes.texi (Tree-SSA passes): Ditto.
14639         
14640         * doc/configterms.texi (Configure Terms): Fix typo.
14641         * doc/cpp.texi (Common Predefined Macros): Ditto.
14642         * doc/md.texi (Machine Constraints): Ditto.
14643         
14644         * doc/makefile.texi (Makefile): Add comma.
14645
14646 2008-01-31  Tom Browder  <tom.browder@gmail.com>
14647             Gerald Pfeifer  <gerald@pfeifer.com>
14648         
14649         * doc/sourcebuild.texi (Front End): Remove references to CVS
14650         and CVSROOT/modules.
14651         (Texinfo Manuals): Replace reference to CVS by one to SVN.
14652         (Back End): Remove reference to CVS.
14653
14654 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
14655
14656         PR target/34900
14657         * config/mips/mips.c (gen_load_const_gp): New function, taking a
14658         comment from...
14659         (mips16_gp_pseudo_reg): ...here.
14660         * config/mips/mips.md (load_const_gp): Replace with...
14661         (load_const_gp_<mode>): ...this :P-based insn.
14662
14663 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14664
14665         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
14666         options. Minor fixes.
14667         (-std): Move reference to standards closer to where language
14668         standards are first mentioned.
14669         
14670 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
14671
14672         PR rtl-optimization/34995
14673         * reload.c (alternative_allows_const_pool_ref): Take an rtx
14674         parameter and return a bool.  If the rtx parameter is nonnull,
14675         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
14676         (find_reloads): Update call accordingly.  Pass the new operand
14677         if it needed no address reloads, otherwise pass null.
14678
14679 2008-01-30  Richard Henderson  <rth@redhat.com>
14680
14681         PR c/34993
14682         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
14683         for unbounded arrays.
14684
14685 2008-01-30  Silvius Rus  <rus@google.com>
14686
14687         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
14688
14689 2008-01-30  Jan Hubicka  <jh@suse.cz>
14690
14691         PR target/34982
14692         * i386.c (init_cumulative_args): Use real function declaration when
14693         calling locally.
14694
14695 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
14696
14697         PR rtl-optimization/34998
14698         * global.c (build_insn_chain): Treat non-subreg_lowpart
14699         SUBREGs of pseudos as clobbering all the words covered by the
14700         SUBREG, not just all the bytes.
14701         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
14702         original df_ref rather than an extract parameter.
14703         (global_conflicts): Update call accordingly.
14704
14705 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
14706
14707         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
14708         the overflow check to make it easier to read.
14709         (__fixtfdi): Change the type of the ll member in union
14710         long_double to UDItype_x.
14711
14712 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
14713
14714         PR middle-end/34969
14715         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
14716         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
14717         * tree-inline.c (fold_marked_statements): Call
14718         cgraph_update_edges_for_call_stmt if folding a call statement.
14719         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
14720         debug_generic_stmt calls, reset it back afterwards.
14721
14722         PR c/35017
14723         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
14724         static decls.
14725         * c-typeck.c (build_external_ref): Don't pedwarn about
14726         static vars in current function's scope.
14727
14728 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
14729
14730         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
14731
14732 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
14733
14734         PR c/35002
14735         * ipa-struct-reorg.c: Fix spelling.
14736         * params.def: Ditto.
14737
14738 2008-01-29  Richard Guenther  <rguenther@suse.de>
14739
14740         PR middle-end/35006
14741         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
14742         field.
14743         * tree-inline.c (remap_type): Increment remapping_type_depth
14744         around remapping types.
14745         (copy_body_r): Only add referenced variables if they are referenced
14746         from code, not types.
14747
14748 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
14749
14750         PR c++/34055
14751         PR c++/34103
14752         PR c++/34219
14753         PR c++/34606
14754         PR c++/34753
14755         PR c++/34754
14756         PR c++/34755
14757         PR c++/34919
14758         PR c++/34961
14759         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
14760         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
14761
14762 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
14763
14764         PR target/34412
14765         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
14766         pointer for tiny stack.
14767
14768 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
14769
14770         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
14771
14772 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
14773
14774         * config/vx-common.h: Fix typo in comment.
14775
14776 2008-01-28  Ian Lance Taylor  <iant@google.com>
14777
14778         PR c++/34862
14779         PR c++/33407
14780         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
14781         coalesce pointers if they have different DECL_NO_TBAA_P values.
14782         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
14783         between variables with different DECL_NO_TBAA_P values.
14784
14785 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
14786
14787         PR 31535
14788         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
14789         are not legitimate small data references on SPE targets.
14790
14791 2008-01-28  David Daney  <ddaney@avtrex.com>
14792
14793         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
14794
14795 2008-01-28  David Daney  <ddaney@avtrex.com>
14796
14797         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
14798
14799 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
14800
14801         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
14802         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
14803         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
14804         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
14805         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
14806         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
14807         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
14808         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
14809
14810 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
14811
14812         * basic-block.h (condjump_equiv_p): Fix comment.
14813
14814 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
14815
14816         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
14817         print_generic_stmt_indented): Fix comment.
14818
14819 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
14820
14821         * configure.ac (__stack_chk_fail): Add detecion for availability
14822         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
14823         * configure: Regenerate.
14824
14825 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
14826
14827         PR middle-end/34688
14828         * final.c (output_addr_const): Handle TRUNCATE.
14829
14830 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
14831
14832         PR target/34711
14833         * tree-ssa-loop-ivopts.c (comp_cost): New type.
14834         (zero_cost, infinite_cost): New constants.
14835         (struct cost_pair): Change type of cost to comp_cost.
14836         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
14837         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
14838         New functions.
14839         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
14840         split_address_cost, ptr_difference_cost, difference_cost,
14841         get_computation_cost_at, get_computation_cost,
14842         determine_use_iv_cost_generic, determine_use_iv_cost_address,
14843         determine_use_iv_cost_condition, determine_use_iv_costs,
14844         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
14845         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
14846         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
14847         Change type of cost to comp_cost.
14848         (determine_iv_cost): Increase cost of non-original ivs, instead
14849         of decreasing the cost of original ones.
14850         (get_address_cost): Indicate the complexity of the addressing mode 
14851         in comp_cost.
14852         (try_add_cand_for): Prefer using ivs not specific to some object.
14853         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
14854
14855 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
14856             Janis Johnson  <janis187@us.ibm.com>
14857
14858         PR target/34814
14859         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
14860         (TARGET_INSTANTIATE_DECLS): Likewise.
14861         * target.h (expand_to_rtl_hook): New target hook.
14862         (instantiate_decls): Likewise.
14863         * function.c (instantiate_decl): Make non-static.  Rename to...
14864         (instantiate_decl_rtl): ... this.
14865         (instantiate_expr): Use instantiate_decl_rtl.
14866         (instantiate_decls_1): Likewise.
14867         (instantiate_decls): Likewise.
14868         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
14869         * function.h (instantiate_decl_rtl): Add prototype.
14870         * cfgexpand.c (target.h): New include.
14871         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
14872         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
14873         (TARGET_INSTANTIATE_DECLS): Likewise.
14874         (TARGET_INITIALIZER): New target hooks added.
14875         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
14876         New prototype.
14877         * config/rs6000/rs6000.c (tree-flow.h): New include.
14878         (machine_function): Add sdmode_stack_slot field.
14879         (rs6000_alloc_sdmode_stack_slot): New function.
14880         (rs6000_instantiate_decls): Likewise.
14881         (rs6000_secondary_memory_needed_rtx): Likewise.
14882         (rs6000_check_sdmode): Likewise.
14883         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
14884         (TARGET_INSTANTIATE_DECLS): Likewise.
14885         (rs6000_hard_regno_mode_ok): Allow SDmode.
14886         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
14887         (rs6000_emit_move): Handle SDmode.
14888         (function_arg_advance): Likewise.
14889         (function_arg): Likewise.
14890         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
14891         SDmode var args for 32-bit compiles.
14892         (rs6000_secondary_reload_class): Handle SDmode.
14893         (rs6000_output_function_epilogue): Likewise.
14894         (rs6000_function_value): Simplify if statement.
14895         (rs6000_libcall_value): Likewise.
14896         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
14897         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
14898         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
14899         (movsd_hardfloat): New define_insn.
14900         (movsd_softfloat): Likewise.
14901         (movsd_store): Likewise.
14902         (movsd_load): Likewise.
14903         (extendsddd2): Likewise.
14904         (extendsdtd2): Likewise.
14905         (truncddsd2): Likewise.
14906         (movdd_hardfloat64): Fixup comment.
14907         (UNSPEC_MOVSD_LOAD): New constant.
14908         (UNSPEC_MOVSD_STORE): Likewise.
14909
14910 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
14911
14912         PR c++/34965
14913         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
14914         TRUTH_XOR_EXPR.
14915         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
14916         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
14917         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
14918         and TRUTH_XOR_EXPR.
14919
14920 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
14921
14922         PR target/34794
14923         * config.gcc: Separate AIX 5.3 from AIX 6.1.
14924         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
14925         __LONGDOUBLE128 too.
14926         * config/rs6000/aix61.h: New file.
14927
14928 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
14929
14930         PR rtl-optimization/34959
14931         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
14932         popcount and parity rtxes the same mode as their operand.
14933         Truncate or extend the result to the return value's mode
14934         if necessary.
14935
14936 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
14937
14938         PR target/34981
14939         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
14940         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
14941         to GOT_VERSION_REGNUM.
14942         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
14943         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
14944         * config/mips/mips.c (mips_emit_call_insn): New function.
14945         (mips_call_tls_get_addr): Call mips_expand_call directly.
14946         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
14947         emit_call_insn.
14948         (mips16_build_call_stub): Likewise.  Return the call insn or null.
14949         (mips_expand_call): Update the call to mips16_build_call_stub
14950         accordingly and a remove redundant condition.  Assert that MIPS16
14951         stubs do not use lazy binding.  Use mips_emit_call_insn and return
14952         the call insn.
14953         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
14954         TARGET_USE_GOT.
14955         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
14956         (mips_avoid_hazard): Remove hazard_set handling.
14957         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
14958         (UNSPEC_RESTORE_GP): ...this.
14959         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
14960         (FAKE_CALL_REGNO): Rename to...
14961         (GOT_VERSION_REGNUM): ...this.
14962         (type): Add "ghost" value.  Add an associated insn reservation.
14963         (hazard_set): Remove.
14964         (exception_receiver): Rename to...
14965         (restore_gp): ...this and update the unspec identifier accordingly.
14966         (exception_receiver, nonlocal_got_receiver): New expanders.
14967         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
14968         FAKE_CALL_REGNO.  Remove hazard_set attribute.
14969         (set_got_version, update_got_version): New patterns.
14970
14971 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
14972
14973         PR target/34970
14974         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
14975
14976 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
14977
14978         PR other/31955
14979         * doc/install.texi2html: Generate gcc-vers.texi.
14980
14981 2008-01-25  DJ Delorie  <dj@redhat.com>
14982
14983         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
14984
14985 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
14986
14987         * config/c4x: Remove directory.
14988         * config.gcc (crx-*, mt-*): Mark obsolete.
14989         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
14990         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
14991         sh-*-rtemscoff*): Remove cases.
14992         * defaults.h (C4X_FLOAT_FORMAT): Remove.
14993         * real.c (encode_c4x_single, decode_c4x_single,
14994         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
14995         c4x_extended_format): Remove.
14996         * real.h (c4x_single_format, c4x_extended_format): Remove.
14997         * doc/extend.texi (interrupt, naked): Remove mention of attributes
14998         on C4x.
14999         (Pragmas): Remove comment about c4x pragmas.
15000         * doc/install.texi (c4x): Remove target-specific instructions.
15001         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
15002         * doc/md.texi (Machine Constraints): Remove C4x documentation.
15003         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
15004         refer to C4x source files as examples.
15005         (C4X_FLOAT_FORMAT): Remove documentation.
15006
15007 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
15008
15009         * config/bfin/bfin.c (override_options): Reorder tests so that
15010         flag_pic gets enabled for -msep-data.
15011
15012 2008-01-25  Richard Guenther  <rguenther@suse.de>
15013
15014         PR middle-end/32244
15015         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
15016         to its bitfield precision if required.
15017
15018 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
15019
15020         PR middle-end/33880
15021         * tree-nested.c (walk_omp_for): New function.
15022         (convert_nonlocal_reference, convert_local_reference): Call
15023         walk_omp_for on OMP_FOR.
15024         (convert_call_expr): Call walk_body on OMP_FOR's
15025         OMP_FOR_PRE_INIT_BODY.
15026
15027 2008-01-25  Richard Guenther  <rguenther@suse.de>
15028
15029         PR tree-optimization/34966
15030         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
15031         default defs and PHI_NODEs we have to insert after the
15032         defining statement.
15033
15034 2008-01-24  Nick Clifton  <nickc@redhat.com>
15035
15036         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
15037         Provide a default definition.
15038         (LIBGCC2_UNITS_PER_WORD): Likewise.
15039
15040         * config/stormy16/stormy16.c: Include df.h for the prototype
15041         for df_regs_ever_live_p.
15042         (xstormy16_expand_builtin_va_start): Convert the stack offset
15043         into a component_ref and then use POINTER_PLUS_EXPR to add it
15044         to the incoming_virtual_args_rtx.
15045         (xstormy16_gimplify_va_arg_expr): Rename to
15046         xstormy16_gimplify_va_arg_expr.
15047         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
15048         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
15049         xstormy16_gimplify_va_arg_expr.
15050         Fix up some formatting issues.
15051
15052         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
15053         Move to predicates.md.
15054         (xs_hi_general_operand): Likewise.
15055         (xs_hi_nonmemory_operand): Likewise.
15056         * config/stormy16/predicates.md:
15057         (xstormy16_carry_plus_operand): New predicate.
15058         (xs_hi_general_operand): New predicate.
15059         (xs_hi_nonmemory_operand): New predicate.
15060         * config/stormy16/stormy16-protos.h:
15061         (xstormy16_carry_plus_operand): Delete prototype.
15062         (xs_hi_general_operand): Likewise.
15063         (xs_hi_nonmemory_operand): Likewise.
15064
15065         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
15066         modifiers as they are no longer needed and they can trigger
15067         reload spill failures.
15068
15069         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
15070         with a match_operand in order to help reload.
15071
15072         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
15073         constraint with 'e' for the 8th alternative as this version of
15074         the mov.w instruction only accepts the lower 8 registers.
15075
15076 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
15077
15078         PR target/34856
15079         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
15080         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
15081         vector elements.
15082
15083 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
15084
15085         PR middle-end/33333
15086         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
15087
15088 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
15089
15090         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
15091         New functions.
15092         (remove_structure): Update allocations list before removing structure.
15093         
15094 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
15095
15096         * ipa-struct-reorg.c (is_safe_cond_expr, 
15097         create_new_stmts_for_cond_expr): Use integer_zerop function,
15098         that recognize not only zero-pointer, but zero-integer too.
15099
15100 2008-01-25  Ben Elliston  <bje@au.ibm.com>
15101
15102         PR other/22232
15103         * fixproto: Escape "." in sed expression that strips leading "./".
15104
15105 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
15106
15107         PR driver/34904
15108         * gcc.c (SWITCH_OK): Removed.
15109         (SWITCH_LIVE): Changed to bit.
15110         (SWITCH_FALSE): Likewise.
15111         (SWITCH_IGNORE): Likewise.
15112         (switchstr): Change live_cond to unsigned int.
15113         (process_command): Replace SWITCH_OK with 0.
15114         (do_self_spec): Likewise.
15115         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
15116         (give_switch): Likewise.
15117         (used_arg): Likewise.
15118         (do_spec_1): Set the SWITCH_IGNORE bit.
15119         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
15120         bits.  Set the SWITCH_LIVE bit.
15121
15122 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
15123
15124         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
15125
15126 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
15127
15128         PR tree-optimization/34472
15129         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
15130         parameter to a "bool *" and set *DATA to false if there is
15131         an unsafe access.  Do not delete the structure here.
15132         (check_cond_exprs): Delete it here instead.
15133         (check_cond_exprs, exclude_cold_structs): Do not increase
15134         I when removing a structure.
15135
15136 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
15137
15138         PR target/34856
15139         * config/i386/i386.c (ix86_expand_vector_init): Consider only
15140         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
15141
15142 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
15143
15144         PR middle-end/34934
15145         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
15146         a fixed vector for stack.
15147
15148 2008-01-24  Ben Elliston  <bje@au.ibm.com>
15149
15150         PR c++/25701
15151         * doc/gcc.texi (Software development): Add a direntry for g++.
15152         
15153 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
15154
15155         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
15156         stale and straggling -fforce-addr comments above.
15157
15158         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
15159         define.
15160         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
15161         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
15162
15163 2008-01-23  Michael Matz  <matz@suse.de>
15164
15165         PR debug/34895
15166         * dwarf2out.c (force_type_die): Use modified_type_die instead of
15167         gen_type_die.
15168
15169 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
15170
15171         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
15172         malloc result type.
15173
15174 2008-01-23 Anatoly Sokolov <aesok@post.ru>
15175
15176         * config/avr/avr.c (avr_current_arch): New variable.
15177         (avr_arch_types): Add 'avr31' and 'avr51' entries.
15178         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
15179         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
15180         (avr_override_options): Init 'avr_current_arch'. 
15181         (base_arch_s): Move from here...
15182         * config/avr/avr.h (base_arch_s): ... here. Add new members 
15183         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
15184         'mega' to 'have_jmp_call'.
15185         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
15186         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
15187         macros.
15188         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
15189         architectures.
15190         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
15191         MULTILIB_MATCHES): (Ditto.).
15192
15193 2008-01-23  Richard Guenther  <rguenther@suse.de>
15194
15195         PR middle-end/31529
15196         * cgraphunit.c (cgraph_reset_node): Always mark the node
15197         not reachable if it is not queued already.
15198
15199 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
15200
15201         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
15202         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
15203         (cputype_selected): New static variable.
15204         (bfin_handle_option): Set it if -mcpu is used.
15205         (override_option): Select default set of workarounds if no cpu type
15206         selected on the command line.
15207         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
15208
15209         From  Michael Frysinger  <michael.frysinger@analog.com>
15210         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
15211         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
15212
15213         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
15214         for bf547, bf523, bf524, and bf526.
15215         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
15216         bf526.
15217         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
15218         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
15219         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
15220         __ADSPBF547__ and __ADSPBF54x__ for bf547.
15221         * doc/invoke.texi (Blackfin Options): Document that
15222         -mcpu now accept bf547, bf523, bf524, and bf526.
15223
15224 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
15225
15226         PR rtl-optimization/34628
15227         * combine.c (try_combine): Stop and undo after the first combination
15228         if an autoincrement side-effect on the first insn has effectively
15229         been lost.
15230
15231 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
15232
15233         PR target/34529
15234         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
15235         Offset addresses are not valid for Altivec or paired float modes.
15236
15237 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
15238
15239         PR c++/34607
15240         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
15241         if DECL_INITIAL (decl) is error_mark_node.
15242
15243         PR c++/34914
15244         * c-common.c (handle_vector_size_attribute): Only allow
15245         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
15246         the same way as pointer, array etc. types.
15247         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
15248
15249         PR c++/34917
15250         * tree.c (build_type_attribute_qual_variant): Call
15251         build_qualified_type if attributes are equal, but quals are not.
15252
15253 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15254
15255         PR 32102
15256         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
15257         * flags.h (warn_strict_aliasing): Remove.
15258         (warn_strict_overflow): Remove.
15259         * opts.c (warn_strict_aliasing): Remove.
15260         (warn_strict_overflow): Remove.
15261         * c-opts.c (c_common_handle_option): -Wall only sets
15262         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
15263         (c_common_post_options): Give default values to -Wstrict-aliasing
15264         and -Wstrict-overflow if they are uninitialized.
15265         * common.opt (Wstrict-aliasing): Specify Var and Init.
15266         (Wstrict-overflow): Likewise.
15267
15268 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
15269
15270         PR rtl-optimization/26854
15271         PR rtl-optimization/34400
15272         PR rtl-optimization/34884
15273         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
15274         DF_RD->gen.
15275         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
15276         (df_rd_bb_info.expanded_lr_out): Deleted
15277         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
15278         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
15279         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
15280         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
15281         Removed code to allocate, initialize or free expanded_lr_out.
15282         (df_rd_bb_local_compute_process_def): Restructured to make more
15283         understandable.
15284         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
15285         sets if the sets are being trimmed.
15286
15287 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
15288
15289         PR bootstrap/32287
15290         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
15291         (as_vers): Likewise.
15292         * configure: Regenerated.
15293
15294 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15295
15296         PR middle-end/33092
15297         * tree-pass.h (pass_build_alias): New pass.
15298         * tree-ssa-alias.c (gate_build_alias): New.
15299         (pass_build_alias): New.
15300         * passes.c (init_optimization_passes): Add pass_build_alias after
15301         pass_create_structure_vars.
15302
15303 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
15304
15305         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
15306         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
15307         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
15308         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
15309         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
15310         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
15311         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
15312         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
15313         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
15314         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
15315         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
15316         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
15317         * config/s390/s390.md (FP_ALL): New mode iterator.
15318         (_d): New mode attribute.
15319         ("*signbit<mode>2>"): Changed mode of first operand.
15320         ("isinf<mode>2"): Changed mode of first operand.
15321         ("*TDC_insn"): Adaptation for DFP modes.
15322
15323 2008-01-22  Ben Elliston  <bje@au.ibm.com>
15324
15325         * tree.c (check_qualified_type): Improve function description.
15326
15327 2008-01-21  Jason Merrill  <jason@redhat.com>
15328
15329         PR c++/34196
15330         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
15331         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
15332         if it is set.
15333
15334 2008-01-21  DJ Delorie  <dj@redhat.com>
15335
15336         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
15337         return zero.
15338
15339 2008-01-21  Richard Guenther  <rguenther@suse.de>
15340
15341         PR middle-end/34856
15342         * tree-cfg.c (verify_expr): Allow all invariant expressions
15343         instead of just constant class ones as reference argument.
15344         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
15345         like any other constant.
15346         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
15347
15348 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
15349
15350         * regmove.c (fixup_match_1): Update call crossed frequencies.
15351
15352 2008-01-21  Richard Guenther  <rguenther@suse.de>
15353
15354         PR c/34885
15355         * tree-inline.c (setup_one_parameter): Deal with mismatched
15356         types using a VIEW_CONVERT_EXPR.
15357
15358 2008-01-21  Alon Dayan  <alond@il.ibm.com>
15359             Olga Golovanevsky  <olga@il.ibm.com>
15360         
15361         PR tree-optimization/34701
15362         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
15363         when the structure size is not a power of 2.
15364
15365 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
15366
15367         * doc/install.texi: Add doc for --enable-checking=df.
15368         
15369 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
15370
15371         PR rtl-optimization/34808
15372         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
15373
15374 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
15375
15376         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
15377         input.
15378
15379 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
15380
15381         PR rtl-optimization/26854
15382         PR rtl-optimization/34400
15383         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
15384         DF_RD->gen.
15385         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
15386         (df_rd_bb_info.expanded_lr_out): New.
15387         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
15388         * loop_iv.c (iv_analysis_loop_init): Ditto.
15389         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
15390         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
15391         Added code to allocate, initialize or free expanded_lr_out.
15392         (df_rd_bb_local_compute_process_def): Restructured to make
15393         more understandable.
15394         (df_rd_confluence_n): Add code to do nothing with fake edges and
15395         code to no apply invalidate_by_call sets if the sets are being trimmed.
15396         (df_lr_local_finalize): Renamed to df_lr_finalize.
15397         (df_live_local_finalize): Renamed to df_live_finalize.
15398
15399 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
15400
15401         PR target/34831
15402         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
15403         deciding whether to use reciprocal instructions.
15404
15405 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
15406
15407         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
15408         dwarf2out_note_section_used if cold_text_section is NULL.
15409
15410 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
15411
15412         PR gcov-profile/34610
15413         * tree-cfg.c (make_edges): Mark both outgoing edges from
15414         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
15415         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
15416         from OMP_FOR and OMP_CONTINUE outgoing edges.
15417
15418         * tree-profile.c (tree_profiling): Return early if
15419         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
15420         at the end.
15421         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
15422         from cfun to child_cfun.
15423         * function.h (struct function): Add after_tree_profile bit.
15424
15425 2008-01-19 Anatoly Sokolov <aesok@post.ru>
15426
15427         * config/avr/avr.S (_exit): Disable interrupt.
15428
15429 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
15430             Steven Bosscher  <stevenb.gcc@gmail.com>
15431
15432         PR rtl-optimization/26854
15433         PR rtl-optimization/34400
15434         * df-problems.c (df_live_scratch): New scratch bitmap.
15435         (df_live_alloc): Allocate df_live_scratch when doing df_live.
15436         (df_live_reset): Clear the proper bitmaps.
15437         (df_live_bb_local_compute): Only process the artificial defs once
15438         since the order is not important.
15439         (df_live_init): Init the df_live sets only with the variables
15440         found live by df_lr.
15441         (df_live_transfer_function): Use the df_lr sets to prune the
15442         df_live sets as they are being computed.  
15443         (df_live_free): Free df_live_scratch.
15444
15445 2008-01-18  Ian Lance Taylor  <iant@google.com>
15446
15447         * common.opt: Add fmerge-debug-strings.
15448         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
15449         flag_merge_debug_strings rather than flag_merge_constants.
15450         * doc/invoke.texi (Option Summary): Mention
15451         -fmerge-debug-strings.
15452         (Debugging Options): Document -fmerge-debug-strings.
15453
15454 2008-01-18  Ian Lance Taylor  <iant@google.com>
15455
15456         PR c++/33407
15457         * tree.h (DECL_IS_OPERATOR_NEW): Define.
15458         (struct tree_function_decl): Add new field operator_new_flag.
15459         * tree-inline.c (expand_call_inline): When inlining a call to
15460         operator new, force the return value to go into a variable, and
15461         set DECL_NO_TBAA_P on that variable.
15462         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
15463
15464 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
15465
15466         PR debug/34484
15467         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
15468         DWARF2_DEBUGGING_INFO.
15469         (dwarf2out_note_section_used): Ditto.  Add prototype.
15470         (have_multiple_function_sections, text_section_used,
15471         cold_text_section_used, *cold_text_sections): Move declarations
15472         before their uses.
15473
15474 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
15475
15476         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
15477         field and add signal_ra.
15478         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
15479         assignments to frame state pc.  Move end of stack check after
15480         MD_FALLBACK_FRAME_STATE_FOR.
15481         (uw_update_context_1): Use frame state signal_regs if set, instead
15482         of checking signal_frame flag.
15483         (uw_update_context): Use frame state signal_ra if set.
15484         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
15485         * config/xtensa/linux-unwind.h: New file.
15486
15487 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
15488
15489         * modulo-sched.c (get_sched_window): Fix comment typo.
15490
15491 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
15492
15493         PR tree-optimization/34648
15494         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
15495
15496 2008-01-17  Anatoly Sokolov <aesok@post.ru>
15497
15498         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
15499         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
15500
15501 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
15502
15503         PR rtl-optimization/34400
15504         * df-core.c (df_worklist_dataflow_overeager,
15505         df_worklist_dataflow_doublequeue): New functions.
15506         (df_worklist_dataflow): Two different worklist solvers.
15507         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
15508         New param.
15509
15510 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
15511
15512         PR testsuite/34821
15513         * doc/invoke.texi: Document the dependence on pthread for fopenmp
15514         and ftree-parallelize-loops.
15515
15516 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
15517
15518         PR rtl-optimization/34826
15519         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
15520
15521 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
15522
15523         * global.c (find_reg): Mark the eh regs as used if necessary.
15524         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
15525         * ra.h (struct allocno): no_eh_reg field added.  Changed
15526         no_stack_reg type to bitfield.
15527
15528 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
15529
15530         * tree.c (substitute_in_expr): Add missing 'break'.
15531
15532 2008-01-17  Richard Guenther  <rguenther@suse.de>
15533
15534         PR tree-optimization/34825
15535         * tree-ssa-math-opts.c (is_division_by): Do not recognize
15536         x / x as division to handle.
15537
15538 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15539
15540         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
15541         "-pthread" is specified.
15542         * pa-hpux11.h (LIB_SPEC): Likewise.
15543
15544 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
15545             Peter Bergner  <bergner@vnet.ibm.com>
15546
15547         PR rtl-optimization/33796
15548         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
15549
15550 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15551
15552         PR libgfortran/34699
15553         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
15554         static links.
15555         * pa-hpux10.h (LINK_SPEC): Likewise.
15556         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
15557
15558 2008-01-16  Richard Guenther  <rguenther@suse.de>
15559
15560         PR middle-end/32628
15561         * fold-const.c (fold_convert_const_int_from_int): Do not
15562         set overflow if that occured only because of a sign extension
15563         change when converting from/to a sizetype with the same
15564         precision and signedness.
15565
15566 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
15567
15568         PR debug/34249
15569         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
15570         location address to the correct place.  Update copyright year.
15571
15572 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
15573
15574         * lambda-code.c (lambda_transform_legal_p): Handle the case of
15575         no dependences in the dependence_relations vector.
15576
15577 2008-01-16  Jan Hubicka  <jh@suse.cz>
15578
15579         PR rtl-optimization/31396
15580         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
15581         * cfg.c (dump_reg_info): Print it.
15582         * regs.h (struct reg_info_t): add freq_calls_crossed.
15583         (REG_FREQ_CALLS_CROSSED): New macro.
15584         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
15585         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
15586         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
15587         regmove_optimize): Update call crossed frequencies.
15588         * local-alloc.c (struct qty): Add freq_calls_crossed.
15589         (alloc_qty): Copute freq_calls_crossed.
15590         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
15591         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
15592         * ra.h (struct allocno): Add freq_calls_crossed.
15593
15594 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
15595
15596         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
15597         libgomp when compiling with ftree-parallelize-loops.
15598         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
15599
15600 2008-01-16  Richard Guenther  <rguenther@suse.de>
15601
15602         PR tree-optimization/34769
15603         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
15604         * tree.c (int_cst_value): Instead make this function more
15605         permissive in what it accepts as valid input.  Document this
15606         function always sign-extends the value.
15607
15608 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
15609             Richard Guenther  <rguenther@suse.de>
15610
15611         PR c/34668
15612         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
15613         (gimple_fold_indirect_ref_rhs): ... this.
15614         (gimple_fold_indirect_ref): New function with foldings
15615         that preserve lvalueness.
15616         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
15617         * tree-flow.h (gimple_fold_indirect_ref): Declare.
15618         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
15619         to fold an INDIRECT_REF, fall back to the old use of
15620         fold_indirect_ref_1.
15621
15622 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
15623
15624         * tree-data-ref.c (subscript_dependence_tester_1): Call 
15625         free_conflict_function.
15626         (compute_self_dependence): Same.
15627
15628 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
15629
15630         PR debug/34249
15631         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
15632         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
15633         function global.
15634         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
15635         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
15636         for DWARF2_UNWIND_INFO targets.
15637
15638 2008-01-16  Richard Guenther  <rguenther@suse.de>
15639
15640         PR c/34768
15641         * c-typeck.c (common_pointer_type): Do not merge inconsistent
15642         type qualifiers for function types.
15643
15644 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
15645
15646         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
15647         loop_iterator li from previous commit.
15648
15649 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
15650
15651         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
15652
15653 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
15654
15655         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
15656         (parallelize_loops): Don't parallelize irreducible components.
15657
15658 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15659
15660         PR c++/24924
15661         * c-opts (c_common_post_options): Do not enable CPP
15662         flag_pedantic_errors by default.
15663         
15664 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
15665
15666         PR rtl-optimization/31944
15667         * cse.c (remove_pseudo_from_table): New function.
15668         (merge_equiv_classes): Use above function to remove pseudo-registers.
15669         (invalidate): Likewise.
15670
15671 2008-01-13  Richard Guenther  <rguenther@suse.de>
15672
15673         PR middle-end/34601
15674         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
15675         instead of TYPE_MODE to deal with calls from expand_one_error_var.
15676
15677 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
15678
15679         * gcse.c (cprop_jump): Call validate_unshare_change instead of
15680         validate_change to unshare the source of the PC set.
15681
15682 2008-01-12  Jan Hubicka  <jh@suse.cz>
15683
15684         PR middle-end/32135
15685         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
15686         references above array bounds.  This might trigger bounds checks for
15687         pointers to arrays.
15688
15689 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
15690
15691         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
15692         new_replaceable_dependencies.
15693
15694 2008-01-12  Doug Kwan  <dougkwan@google.com>
15695
15696         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
15697         instead of OPT_Wreturn_type in warning due to ignored return type
15698         qualifiers.
15699         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
15700         options included in -Wextra.
15701         * c.opt: New option -Wignored_qualifiers.
15702         * doc/invoke.texi (Warning Options, -Wextra): Add new option
15703         -Wignore_qualifiers.
15704         (-Wignored-qualifiers): Document.
15705         (-Wreturn-type): Remove description of functionality now handled
15706         by -Wignored-qualifiers.
15707
15708 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
15709
15710         PR ada/33788
15711         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
15712         NOP_EXPR if it is between integral types with the same precision.
15713
15714 2008-01-12  Jan Hubicka  <jh@suse.cz>
15715
15716         PR other/28023
15717         * invoke.texi (max-inline-recursive-depth): Fix default value.
15718
15719 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
15720
15721         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
15722         correct type.
15723
15724 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
15725         
15726         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
15727         
15728 2008-01-11  James E. Wilson  <wilson@specifix.com>
15729
15730         PR target/26015
15731         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
15732
15733 2008-01-11  Anatoly Sokolov <aesok@post.ru>
15734
15735         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
15736         save/restore frame pointer register and don't use 'call-prologues' 
15737         optimization in function with "OS_task" attribute.
15738
15739 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
15740
15741         PR middle-end/31309
15742         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
15743         when copying to memory.
15744
15745 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
15746
15747         PR rtl-optimization/30905
15748         * cfgcleanup.c: Include dce.h
15749         (crossjumps_occured): New global variable.
15750         (try_crossjump_bb): Exit loop after finding a fallthru edge.
15751         If something changed, set crossjumps_occured to true.
15752         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
15753         Don't add/remove fake edges to exit here...
15754         (cleanup_cfg): ...but do it here, when crossjumping.
15755         Run a fast DCE when successful crossjumps occured in the latest
15756         iteration of try_optimize_cfg.
15757
15758 2008-01-11  Richard Guenther  <rguenther@suse.de>
15759
15760         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
15761         (struct vn_unary_op_s): Likewise.
15762         (vn_reference_insert): Free old reference on hash collision.
15763
15764 2008-01-10  Raksit Ashok  <raksit@google.com>
15765
15766         PR rtl-optimization/27971
15767         * combine.c (find_split_point): Split PLUS expressions which are
15768         inside a MEM rtx, and whose first operand is complex.
15769
15770 2008-01-10  DJ Delorie  <dj@redhat.com>
15771
15772         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
15773         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
15774         (m32c_hard_regno_ok): Call the underlying function.
15775
15776 2008-01-10  Richard Guenther  <rguenther@suse.de>
15777
15778         PR middle-end/34683
15779         * tree-cfg.c (tree_merge_blocks): Do not go through the
15780         full-blown folding and stmt updating path if we just deal
15781         with virtual operands.
15782         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
15783         test for abnormal SSA_NAMEs.
15784
15785 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
15786
15787         PR middle-end/34641
15788         * reload.c (push_reload): Add assertions.  All constants from
15789         reg_equiv_constant should have been used for replacing the respective
15790         pseudo earlier.
15791         (find_reloads_address): Invoke find_reloads_address_part for
15792         constant taken from the reg_equiv_constant array.
15793
15794 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
15795
15796         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
15797         field (valnum) the first in the struct.  Replace bools with
15798         unit bit fields.
15799
15800 2008-01-10  Richard Guenther  <rguenther@suse.de>
15801
15802         PR tree-optimization/34651
15803         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
15804         types and ordering for masking and converting.
15805
15806 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
15807
15808         PR tree-optimization/34017
15809         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
15810         also for PHI_NODE expressions.
15811
15812 2008-01-09  Jan Hubicka  <jh@suse.cz>
15813
15814         PR tree-optimization/34708
15815         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
15816         based on number of case labels.
15817         (init_inline_once): Remove switch_cost.
15818         * tree-inline.h (eni_weights_d): Remove switch_cost.
15819
15820 2008-01-09  Richard Guenther  <rguenther@suse.de>
15821         Andrew Pinski  <andrew_pinski@playstation.sony.com>
15822
15823         PR middle-end/30132
15824         * gimplify.c (gimplify_cond_expr): Do not create an addressable
15825         temporary if an rvalue is ok or an lvalue is not required.
15826
15827 2008-01-09  Richard Guenther  <rguenther@suse.de>
15828
15829         PR middle-end/34458
15830         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
15831         adjust return type.
15832
15833 2008-01-09  Richard Guenther  <rguenther@suse.de>
15834
15835         PR middle-end/34679
15836         * tree.c (host_integerp): Check for sizetype only if the
15837         type is an integer type.
15838
15839 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
15840
15841         PR debug/26364
15842         * opts.c (decode_options): Disable inlining of functions called
15843         once if not in unit-at-a-time mode.
15844
15845 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
15846
15847         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
15848
15849 2008-01-08  Richard Guenther  <rguenther@suse.de>
15850
15851         PR middle-end/31863
15852         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
15853         out early if the result will be unused.
15854
15855 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
15856
15857         PR target/34709
15858         Revert:
15859
15860         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
15861         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
15862         for TARGET_RECIP.       
15863         
15864 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
15865         
15866         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
15867         for vectorization tuned.
15868         
15869 2008-01-08  Richard Guenther  <rguenther@suse.de>
15870
15871         PR tree-optimization/34683
15872         * tree-ssa-operands.c (operand_build_cmp): Export.
15873         * tree-ssa-operands.h (operand_build_cmp): Declare.
15874         * tree-vn.c (vuses_compare): Remove.
15875         (sort_vuses): Use operand_build_cmp.
15876         (sort_vuses_heap): Likewise.
15877         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
15878         to re-use old VEC if available.  Do not sort already sorted VUSEs.
15879         (vdefs_to_vec): Do not sort already sorted VDEFs.
15880
15881 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
15882
15883         PR middle-end/34694
15884         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
15885
15886 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
15887
15888         PR target/34702
15889         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
15890         limitations of reciprocal sequences on x86 targets.
15891
15892 2008-01-08  Richard Guenther  <rguenther@suse.de>
15893
15894         PR tree-optimization/34683
15895         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
15896
15897 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
15898
15899         PR target/34622
15900         * config/darwin.c (darwin_mergeable_string_section): Don't use
15901         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
15902
15903 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
15904
15905         PR target/34682
15906         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
15907         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
15908         predicates of op0 and op1 to register_operand.
15909         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
15910         expander using X87MODEF mode iterator.  Change predicates of
15911         op0 and op1 to register_operand.
15912         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
15913         corresponding patterns and macroize using MODEF macro.  Change
15914         predicates of op0 and op1 to register_operand and remove
15915         "m" constraint. Disparage "r" alternative with "!".
15916         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
15917         macroize using X87MODEF macro.  Change predicates of op0 and op1
15918         to register_operand and remove "m" constraint.  Disparage "r"
15919         alternative with "!".
15920         (absneg splitter with memory operands): Remove.
15921         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
15922         patterns and macroize using X87MODEF mode iterator.
15923         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
15924         Change predicate of op1 to register_operand.
15925         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
15926         for memory operands.
15927
15928 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
15929
15930         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
15931
15932 2008-01-07  Richard Guenther  <rguenther@suse.de>
15933
15934         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
15935         fields.
15936
15937 2008-01-07  Richard Guenther  <rguenther@suse.de>
15938
15939         PR tree-optimization/34683
15940         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
15941         VOPs of the needed size to save memory.  Use VEC_quick_push
15942         to save compile-time.
15943         (vdefs_to_vec): Likewise.
15944
15945 2008-01-07  Sa Liu  <saliu@de.ibm.com>
15946
15947         * config/spu/spu.md (divdf3): Genetate inline code for double
15948         division.  The implementation doesn't handle INF or NAN, therefore it
15949         only applies when -ffinite-math-only is given.
15950
15951 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
15952
15953         PR libstdc++/34680
15954         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
15955         * doc/cpp.texi ([Common Predefined Macros]): Document.
15956
15957 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
15958
15959         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
15960         order to use commutative addition instead of subtraction.
15961
15962 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15963             Mircea Namolaru  <namolaru@il.ibm.com>
15964             Vladimir Yanovsky  <yanov@il.ibm.com>
15965             Revital Eres  <eres@il.ibm.com>
15966
15967         PR tree-optimization/34263
15968         * tree-outof-ssa.c (process_single_block_loop_latch,
15969         contains_tree_r): New functions.
15970         (analyze_edges_for_bb): Call process_single_block_loop_latch
15971         function to empty single-basic-block latch block if possible.
15972
15973 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
15974
15975         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
15976         for TARGET_RECIP.
15977         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
15978
15979 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
15980
15981         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
15982
15983 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
15984
15985         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
15986
15987 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
15988
15989         PR tree-optimization/34618
15990         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
15991         flag from T.
15992
15993 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
15994
15995         PR target/34673
15996         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
15997         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
15998         Update copyright year.
15999
16000         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
16001         Update copyright year.
16002         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
16003         using NR fixup.
16004
16005 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
16006
16007         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
16008         edge does not point to current bb before changing need_assert.
16009
16010 2008-01-04  Richard Guenther  <rguenther@suse.de>
16011
16012         PR middle-end/34029
16013         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
16014         for verifying purposes if they are is_gimple_min_invariant.
16015
16016 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
16017
16018         PR tree-optimization/34448
16019         PR tree-optimization/34465
16020         * gimplify.c (gimplify_init_constructor): Add new parameter
16021         notify_temp_creation.  Use it.
16022         (gimplify_modify_expr_rhs): Take volatiles into account when
16023         optimizing constructors.
16024         Do not optimize constructors if gimplify_init_constructor will dump to
16025         memory.
16026         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
16027         * gcc.c-torture/compile/pr34448.c: New.
16028
16029 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
16030
16031         PR gcov-profile/34609
16032         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
16033         return_slot if result is TREE_ADDRESSABLE.
16034
16035 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
16036
16037         * config/mips/mips.md (sqrt_condition): Tweak comment.
16038         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
16039
16040 2008-01-03  Tom Tromey  <tromey@redhat.com>
16041
16042         PR c/34457
16043         * c-common.c (c_type_hash): Handle VLAs.
16044
16045 2008-01-03  Jan Hubicka  <jh@suse.cz>
16046
16047         PR tree-optimization/31081
16048         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
16049         0 when inlining and not inlining to first basic block.
16050         (remap_decl): When var is initialized to 0, don't set default_def.
16051         (expand_call_inline): Set entry_bb.
16052         * tree-inline.h (copy_body_data): Add entry_bb.
16053
16054 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
16055
16056         PR c++/34619
16057         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
16058         before returning.
16059
16060         PR tree-optimization/29484
16061         * tree-inline.c (inline_forbidden_p_2): New function.
16062         (inline_forbidden_p): Disallow inlining if some static var
16063         has an address of a local LABEL_DECL in its initializer.
16064         * doc/extend.texi (Labels as Values): Document &&foo behaviour
16065         vs. inlining.
16066
16067 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
16068
16069         PR tree-optimization/34635
16070         * tree-data-ref.c (add_other_self_distances): Make sure that the
16071         evolution step is constant.
16072
16073 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
16074
16075         PR middle-end/34608
16076         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
16077
16078 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
16079
16080         * tree-sra.c (scalarize_init): Insert the generate_element_init
16081         statements after the generate_element_zero statements.
16082
16083 2008-01-02  Richard Guenther  <rguenther@suse.de>
16084
16085         PR middle-end/34093
16086         PR middle-end/31976
16087         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
16088         for very large number of operands instead of ICEing.
16089
16090 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
16091
16092         PR target/34013
16093         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
16094         while stack probing.
16095
16096 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
16097
16098         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
16099         in C++0x mode.
16100
16101 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
16102
16103         PR libmudflap/26442
16104         * tree-mudflap.c (mx_register_decls): Guard warning by
16105         !DECL_ARTIFICIAL check.
16106
16107 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
16108
16109         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
16110         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
16111         sse5_perm<mode>): Fix constraints.