OSDN Git Service

2008-04-30 Martin Jambor <mjambor@suse.cz>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-04-30  Martin Jambor  <mjambor@suse.cz>
2
3         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
4         instead of setting number of formal parameters to zero.
5         (ipcp_init_stage): Do not set the number of actual parameters to zero 
6         either.
7         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
8         which are called with variable number of arguments.
9         (ipcp_insert_stage): Explicitely skipping all nodes which are
10         called with variable number of arguments.
11         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
12         number of parameters.
13
14         * ipa-prop.h (struct ipa_node_params): Added flag
15         called_with_var_arguments
16         (ipa_set_param_count): Added.  Changed sole setter to use it.
17         (ipa_get_param_count): Added.  All readers of param_count
18         converted to use it instead.
19         (ipa_set_called_with_variable_arg): Added.
20         (ipa_is_called_with_var_arguments): Added.
21         (ipa_get_ith_param): Added.  All readers of param_decls converted
22         to use it instead.
23         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
24         changed to use it. 
25         (ipa_get_cs_argument_count): Added, all readers of argument_count
26         changed to cal it.
27         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
28         to use it.
29         
30         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
31         (struct ipcp_lattice): Renamed cval_type to type
32         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
33
34         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
35         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
36         (ipcp_insert_stage): Changed the type of variable cvalue to tree
37         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
38         (build_const_val): Changed the type of parameter cvalue to tree
39         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
40         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
41         
42         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
43         constant 
44
45         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
46         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
47         (ipa_add_method): Renamed to ipa_push_func_to_list
48         (ipa_remove_method): Renamed to ipa_pop_func_from_list
49         (ipa_callsite_param_count): Removed.
50         (ipa_callsite_param_count_set): Removed.
51         (ipa_callsite_param): Removed.
52         (ipa_callsite_callee): Removed.
53         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
54         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
55         (ipa_method_formal_count): Removed.
56         (ipa_method_formal_count_set): Removed.
57         (ipa_method_get_tree): Removed.
58         (ipa_method_tree_map_create): Removed.
59         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
60         (ipa_create_param_decls_array): Creates the array itself
61         (ipa_create_param_decls_array): Temporary variable info instead of 
62         a few dereferences.
63         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
64         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
65         (get_type): Removed.
66         (ipa_jf_get_info_type): Removed.
67         (ipa_node_create): Renamed to ipa_create_node_params
68         (ipa_free): Renamed to ipa_free_all_node_params
69         (ipa_nodes_create): Renamed to ipa_create_all_node_params
70         (ipa_edges_create): Renamed to ipa_create_all_edge_args
71         (ipa_edges_free): Renamed to ipa_free_all_edge_args
72         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
73         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
74         ipa_free_all_edge_args
75         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
76         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
77         (ipa_create_methodlist_node): Removed.
78         (ipa_methodlist_method): Removed.
79         (ipa_methodlist_method_set): Removed.
80         (ipa_methodlist_next_method): Removed.
81         (ipa_methodlist_next_method_set): Removed.
82         (ipa_method_is_modified): Removed.
83         (ipa_method_modify_create): Removed.
84         (ipa_method_modify_init): Temporary variable info instead of a few 
85         dereferences.
86         (ipa_detect_param_modifications): Temporary variable info instead of 
87         a few dereferences.
88         (ipa_compute_jump_functions): Temporary variable info instead of 
89         a few dereferences.
90         (ipa_method_modify_set): Removed.
91         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
92         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
93         than craph_node as the first parameter.
94         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
95         (ipa_method_modify_init): Removed.
96         (ipa_compute_jump_functions): Added a temp variable instead of 
97         repeatadly dereferencing the cgraph_edge.aux pointer
98         (ipa_callsite_param_set_type): Removed.
99         (ipa_compute_jump_functions): i renamed to index and moved to 
100         an inner block
101         (ipa_callsite_param_set_info_type_formal): Removed.
102         (ipa_callsite_param_set_info_type): Removed.
103         (ipa_callsite_param_map_create): Removed.
104         (ipa_callsite_tree): Removed.
105         (ipa_callsite_caller): Removed.
106         (ipa_pop_func_from_list): return_method removed to return_func
107
108         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
109         prefixed all values with IPA_. Changed all users.
110         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
111         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
112         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
113         (union parameter_info): Renamed to jump_func_value.
114         (union jump_func_value): Renamed value to constant
115         (struct ipa_jump_func): Renamed info_type to value
116         (struct ipa_node): Renamed to ipa_node_params
117         (struct ipa_node_params): Renamed ipa_arg_num to param_count
118         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
119         (struct ipa_node_params): Renamed ipa_mod to modified_flags
120         (struct ipa_edge): Renamed to ipa_edge_args
121         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
122         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
123         (struct ipa_methodlist): Renamed to ipa_func_list
124         (struct ipa_func_list): method_p renamed to node, next_method
125         renamed to next
126         (ipa_methodlist_p): Removed, switched all users to struct pointer
127         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
128
129 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
130
131         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
132         (rs6000_emit_epilogue): Use backchain to restore only when we
133         have a large frame.  Make use of frame pointer to restore if we
134         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
135
136 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
137
138         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
139         Add mode to zero_extract.
140         (sign bit tests peepholes): (Ditto.).
141
142 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
143
144         * config/i386/i386.c (ix86_builtins): Replace Prescott New
145         Instructions in comments with SSE3.
146         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
147         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
148         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
149         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
150         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
151         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
152         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
153         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
154         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
155         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
156         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
157         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
158         (bdesc_sse_args): Renamed to ...
159         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
160         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
161         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
162         IX86_BUILTIN_FABSQ.
163         (bdesc_1arg): Moved to ...
164         (bdesc_args): Here.
165         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
166         Instructions in comments with SSE3.
167         (ix86_expand_sse_operands_builtin): Renamed to ...
168         (ix86_expand_args_builtin): This.  Updated.
169         (ix86_expand_unop1_builtin): Update comments.
170         (ix86_expand_builtin): Updated.
171
172 2008-04-29  Richard Guenther  <rguenther@suse.de>
173
174         PR tree-optimization/36078
175         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
176         Update virtual SSA form after cleaning up the CFG.
177
178 2008-04-29  Richard Guenther  <rguenther@suse.de>
179
180         PR middle-end/15255
181         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
182
183 2008-04-29  Richard Guenther  <rguenther@suse.de>
184
185         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
186         (compute_may_aliases): Do not call finalize_ref_all_pointers.
187         (compute_flow_insensitive_aliasing): Do not treat
188         PTR_IS_REF_ALL pointers special.
189         (get_smt_for): Likewise.
190         (may_alias_p): Re-structure.
191         (is_escape_site): A ref-all pointer conversion is not an escape site.
192         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
193         PTR_IS_REF_ALL pointers special.
194         * tree-ssa-structalias.h (struct alias_info): Remove
195         ref_all_symbol_mem_tag field.
196         (PTR_IS_REF_ALL): Remove.
197
198 2008-04-29  Richard Guenther  <rguenther@suse.de>
199
200         PR middle-end/36077
201         * fold-const.c (extract_muldiv_1): In combining division constants
202         make sure to never overflow.
203
204 2008-04-29  Nick Clifton  <nickc@redhat.com>
205
206         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
207
208 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
209
210         PR bootstrap/35169
211         * optc-gen.awk: Work around HP-UX/IA awk bug.
212
213 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
214
215         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
216         2008-04-25 commit.
217
218 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
219
220         PR target/36073
221         * config/i386/i386.md
222         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
223         Change operand 1 predicate to nonimmediate_operand.
224
225 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
226
227         PR debug/36060
228         * dwarf2out.c (struct die_struct): Mark as chain_circular through
229         die_sub field.
230         * gengtype.c (walk_type, write_func_for_structure): Handle
231         chain_circular.
232         * doc/gty.texi: Document chain_circular.
233
234 2008-04-28  Richard Guenther  <rguenther@suse.de>
235
236         PR tree-optimization/36066
237         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
238         SCEV and loop.
239
240 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
241
242         PR target/36064
243         * config/i386/i386.md
244         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
245         Use match_scratch instead of match_operand for operands 3 and 4.
246
247 2008-04-27  Richard Guenther  <rguenther@suse.de>
248
249         PR tree-optimization/18754
250         PR tree-optimization/34223
251         * tree-pass.h (pass_complete_unrolli): Declare.
252         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
253         loop size before and after unconditionally of UL_NO_GROWTH in effect.
254         Rewrite loop into loop closed SSA form if it is not already.
255         (tree_unroll_loops_completely): Re-structure to iterate over
256         innermost loops with intermediate CFG cleanups.
257         Unroll outermost loops only if requested or the code does not grow
258         doing so.
259         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
260         loops are available.
261         (tree_vectorize): Instead do so here.
262         (tree_complete_unroll): Also unroll outermost loops.
263         (tree_complete_unroll_inner): New function.
264         (gate_tree_complete_unroll_inner): Likewise.
265         (pass_complete_unrolli): New pass.
266         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
267         uses outside of the loop.
268         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
269         form if it is available.  
270         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
271         * passes.c (init_optimization_passes): Schedule complete inner
272         loop unrolling pass before the first CCP pass after final inlining.
273
274 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
275
276         * targhooks.h (default_emutls_var_fields,
277         default_emutls_var_init): Declare.
278         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
279         * target.h (struct gcc_target): Add struct emutls member.
280         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
281         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
282         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
283         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
284         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
285         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
286         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
287         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
288         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
289         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
290         emit debug information.
291         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
292         * varasm.c: Include targhooks.h.
293         (emutls_object_section, emutls_tmpl_section): New.
294         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
295         (EMUTLS_SEPARATOR): New.
296         (prefix_name): New.
297         (get_emutls_object_name): New.
298         (default_emutls_var_fields): New, broken out of ...
299         (get_emutls_object_type): ... here.  Adjust to use target hooks.
300         (get_emutls_init_templ_addr): Adjust to use target hooks.
301         (emutls_decl): Adjust to use target hooks.
302         (emutls_finish): Likewise.
303         (default_emutls_var_init): New, broken out of ...
304         (assemble_variable): ... here.  Adjust to use target hooks.
305         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
306         SECCAT_EMUTLS_TMPL.
307         * c-common.c (handle_section_attribute): Prevent overriding
308         sections for emulated tls with special sections.
309         * config/i386/i386.c (x86_64_elf_select_section): Add
310         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
311         (x86_64_elf_unique_section): Likewise.
312         * config/vxworks.c: Include tree.h.
313         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
314         (vxworks_override_options): Set TLS scheme.
315         * doc/tm.texi (Emulated TLS): New node.
316
317 2008-04-26  Simon Baldwin <simonb@google.com>
318
319         PR c/35652
320         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
321         with propagated string constants.
322
323 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
324
325         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
326         constraint for operand 2 when operand 0 is memory operand.
327         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
328         operand 0 is memory operand.
329         (fix_trunc<mode>_i387_with_temp): Ditto.
330         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
331         operand 2 when operand 1 is memory operand.
332         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
333         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
334         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
335         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
336         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
337         operands 2,3 and 4 when operand 1 is memory operand.
338         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
339         is memory operand.
340         (fistdi2_floor_with_temp): Ditto.
341         (fist<mode>2_floor_with_temp): Ditto.
342         (fistdi2_ceil_with_temp): Ditto.
343         (fist<mode>2_ceil_with_temp): Ditto.
344         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
345
346 2008-04-26  David Daney  <ddaney@avtrex.com>
347
348         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
349         unspec_volitile.
350         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
351         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
352         UNSPEC_UPDATE_GOT_VERSION): Renumber.
353         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
354         (compare_and_swap_12): New insn.
355         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
356         * config/mips/mips.c (mips_force_binary): New function.
357         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
358         (mips_expand_compare_and_swap_12): New function.
359         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
360
361 2008-04-25  Jan Hubicka  <jh@suse.cz>
362
363         PR testsuite/35843
364         * cfgexpand.c (pass_expand): Turn into RTL pass.
365         * passes.c (execute_one_pass): Do pass typechecking after execution.
366         * tree-pass.h (pass_expand): Turn into RTL pass.
367
368         * function.h (struct rtl_data): Move here fields
369         accesses_prior_frames, calls_eh_return, saves_all_registers,
370         has_nonlocal_goto, has_asm_statement, is_thunk,
371         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
372         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
373         arg_pointer_save_area_init from struct function; turn into bool.
374         (struct function): Move
375         calls_eh_return, saves_all_registers, has_nonlocal_goto,
376         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
377         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
378         tail_call_emit, arg_pointer_save_area_init
379         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
380         (current_function_returns_struct, current_function_returns_pcc_struct,
381         current_function_calls_setjmp, current_function_calls_alloca,
382         current_function_accesses_prior_frames,
383         current_function_calls_eh_return, current_function_is_thunk,
384         current_function_stdarg, current_function_profile,
385         current_function_limit_stack, current_function_uses_pic_offset_table,
386         current_function_uses_const_pool, current_function_has_nonlocal_label,
387         current_function_saves_all_registers,
388         current_function_has_nonlocal_goto,
389         current_function_has_asm_statement): Remove accesor macros.
390         * ra-conflict.c (global_conflicts): Update.
391         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
392         (suitable_for_tail_call_opt_p): Update.
393         * builtins.c (expand_builtin_return_addr): Update.
394         (expand_builtin_setjmp_setup): Update.
395         (expand_builtin_nonlocal_goto): Update.
396         * final.c (final_start_function): Update.
397         (profile_function): Update.
398         (leaf_function_p): Update.
399         (only_leaf_regs_used): Update.
400         * df-scan.c (df_get_exit_block_use_set): Update.
401         * dojump.c (clear_pending_stack_adjust): Update.
402         * tree-stdarg.c (gate_optimize_stdarg): Update.
403         * gimple-low.c (lower_function_body): Update.
404         * global.c (compute_regsets): Update.
405         (global_alloc): Update.
406         * dwarf2out.c (dwarf2out_begin_prologue): Update.
407         * expr.c (expand_assignment): Update.
408         * dse.c (dse_step0): Update.
409         (dse_step1): Update.
410         * c-decl.c (store_parm_decls): Update.
411         * local-alloc.c (combine_regs): Update.
412         (find_free_reg): Update.
413         * function.c (assign_parms_augmented_arg_list): Update.
414         (assign_parm_find_data_types): Update.
415         (assign_parms): Update.
416         (allocate_struct_function): Update.
417         (expand_function_start): Update.
418         (expand_function_end): Update.
419         (get_arg_pointer_save_area): Update.
420         (thread_prologue_and_epilogue_insns): Update.
421         (rest_of_match_asm_constraints): Update.
422         * stor-layout.c (variable_size): Update.
423         * gcse.c (gcse_main): Update.
424         (bypass_jumps): Update.
425         * gimplify.c (gimplify_function_tree): Update.
426         * calls.c (emit_call_1): Update.
427         (expand_call): Update.
428         * bt-load.c (compute_defs_uses_and_gen): Update.
429         * except.c (sjlj_assign_call_site_values): Update.
430         (sjlj_emit_function_enter): Update.
431         (can_throw_external): Update.
432         (set_nothrow_function_flags): Update.
433         (expand_builtin_unwind_init): Update.
434         (expand_eh_return): Update.
435         (convert_to_eh_region_ranges): Update.
436         (output_function_exception_table): Update.
437         * emit-rtl.c (gen_tmp_stack_mem): Update.
438         * cfgexpand.c (expand_used_vars): Update.
439         (tree_expand_cfg): Update.
440         * cfgcleanup.c (rest_of_handle_jump): Update.
441         * explow.c (allocate_dynamic_stack_space): Update.
442         * varasm.c (assemble_start_function): Update.
443         (force_const_mem): Update.
444         (mark_constant_pool): Update.
445         * tree-optimize.c (tree_rest_of_compilation): Update.
446         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
447         * tree-cfg.c (notice_special_calls): Update.
448         (is_ctrl_altering_stmt): Update.
449         (tree_can_make_abnormal_goto): Update.
450         (tree_purge_dead_abnormal_call_edges): Update.
451         * config/alpha/predicates.md: Update.
452         * config/alpha/alpha.c (alpha_sa_mask): Update.
453         (alpha_sa_size): Update.
454         (alpha_does_function_need_gp): Update.
455         (alpha_expand_prologue): Update.
456         (alpha_start_function): Update.
457         (alpha_output_function_end_prologue): Update.
458         (alpha_expand_epilogue): Update.
459         * config/frv/frv.c (frv_stack_info): Update.
460         (frv_expand_epilogue): Update.
461         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
462         (s390_register_info): Update.
463         (s390_frame_info): Update.
464         (s390_init_frame_layout): Update.
465         (s390_can_eliminate): Update.
466         (save_gprs): Update.
467         * config/spu/spu.c (spu_split_immediate): Update.
468         (need_to_save_reg): Update.
469         (spu_expand_prologue): Update.
470         (spu_expand_epilogue): Update.
471         * config/sparc/sparc.md: Update.
472         * config/sparc/sparc.c (eligible_for_return_delay): Update.
473         (sparc_tls_got): Update.
474         (legitimize_pic_address): Update.
475         (sparc_emit_call_insn): Update.
476         (sparc_expand_prologue): Update.
477         (output_return): Update.
478         (print_operand): Update.
479         (sparc_function_ok_for_sibcall): Update.
480         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
481         * config/m32r/m32r.md: Update.
482         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
483         (m32r_compute_frame_size): Update.
484         (m32r_expand_prologue): Update.
485         (m32r_expand_epilogue): Update.
486         (m32r_legitimize_pic_address): Update.
487         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
488         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
489         * config/i386/i386.c (ix86_frame_pointer_required): Update.
490         (gen_push): Update.
491         (ix86_save_reg): Update.
492         (ix86_compute_frame_layout): Update.
493         (ix86_expand_prologue): Update.
494         (ix86_expand_epilogue): Update.
495         * config/sh/sh.c (output_stack_adjust): Update.
496         (calc_live_regs): Update.
497         (sh5_schedule_saves): Update.
498         (sh_expand_prologue): Update.
499         (sh_expand_epilogue): Update.
500         (sh_setup_incoming_varargs): Update.
501         (sh_allocate_initial_value): Update.
502         (sh_get_pr_initial_val): Update.
503         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
504         * config/sh/sh.md (label:): Update.
505         * config/avr/avr.c (out_movhi_mr_r): Update.
506         * config/crx/crx.h (enum): Update.
507         * config/xtensa/xtensa.h (along): Update.
508         * config/stormy16/stormy16.c Update.
509         (xstormy16_compute_stack_layout): Update.
510         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
511         (fr30_expand_prologue): Update.
512         * config/cris/cris.c (cris_conditional_register_usage): Update.
513         (cris_reg_saved_in_regsave_area): Update.
514         (cris_initial_frame_pointer_offset): Update.
515         (cris_simple_epilogue): Update.
516         (cris_expand_prologue): Update.
517         (cris_expand_epilogue): Update.
518         (cris_expand_pic_call_address): Update.
519         (cris_asm_output_symbol_ref): Update.
520         (cris_asm_output_label_ref): Update.
521         * config/cris/cris.md Update.
522         * config/iq2000/iq2000.c (compute_frame_size): Update.
523         (iq2000_expand_epilogue): Update.
524         * config/mt/mt.h (save_direction): Update.
525         * config/mn10300/mn10300.c (mn10300_function_value): Update.
526         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
527         (ia64_secondary_reload_class): Update.
528         * config/m68k/m68k.c (m68k_save_reg): Update.
529         (m68k_expand_prologue): Update.
530         (m68k_expand_epilogue): Update.
531         (legitimize_pic_address): Update.
532         * config/rs6000/rs6000.c (rs6000_got_register): Update.
533         (first_reg_to_save): Update.
534         (first_altivec_reg_to_save): Update.
535         (compute_vrsave_mask): Update.
536         (compute_save_world_info): Update.
537         (rs6000_stack_info): Update.
538         (spe_func_has_64bit_regs_p): Update.
539         (rs6000_ra_ever_killed): Update.
540         (rs6000_emit_eh_reg_restore): Update.
541         (rs6000_emit_allocate_stack): Update.
542         (rs6000_emit_prologue): Update.
543         (rs6000_emit_epilogue): Update.
544         (rs6000_output_function_epilogue): Update.
545         (output_profile_hook): Update.
546         (rs6000_elf_declare_function_name): Update.
547         * config/rs6000/rs6000.h (rs6000_args): Update.
548         * config/rs6000/rs6000.md: Update.
549         * config/mcore/mcore.c (mcore_expand_prolog): Update.
550         * config/arc/arc.c (arc_output_function_epilogue): Update.
551         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
552         * config/darwin.c (machopic_function_base_name): Update.
553         * config/score/score3.c (score3_compute_frame_size): Update.
554         (rpush): Update.
555         (rpop): Update.
556         (score3_epilogue): Update.
557         * config/score/score7.c (score7_compute_frame_size): Update.
558         (score7_prologue): Update.
559         (score7_epilogue): Update.
560         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
561         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
562         * config/arm/arm.c (use_return_insn): Update.
563         (require_pic_register): Update.
564         (arm_load_pic_register): Update.
565         (arm_compute_save_reg0_reg12_mask): Update.
566         (arm_compute_save_reg_mask): Update.
567         (thumb1_compute_save_reg_mask): Update.
568         (output_return_instruction): Update.
569         (arm_output_function_prologue): Update.
570         (arm_output_epilogue): Update.
571         (arm_get_frame_offsets): Update.
572         (arm_expand_prologue): Update.
573         (thumb_pushpop): Update.
574         (thumb_exit): Update.
575         (thumb1_expand_prologue): Update.
576         (thumb1_expand_epilogue): Update.
577         (arm_unwind_emit): Update.
578         (arm_output_fn_unwind): Update.
579         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
580         * config/arm/arm.md: Update.
581         * config/pa/pa.md: Update.
582         * config/pa/pa.c (legitimize_pic_address): Update.
583         (compute_frame_size): Update.
584         (hppa_expand_prologue): Update.
585         (hppa_expand_epilogue): Update.
586         (borx_reg_operand): Update.
587         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
588         (HARD_REGNO_RENAME_OK): Update.
589         * config/mips/mips.c (mips_global_pointer): Update.
590         (mips_save_reg_p): Update.
591         (mips_compute_frame_info): Update.
592         (mips_frame_pointer_required): Update.
593         (mips_expand_prologue): Update.
594         (mips_expand_epilogue): Update.
595         (mips_can_use_return_insn): Update.
596         (mips_reorg_process_insns): Update.
597         * config/v850/v850.c (compute_register_save_size): Update.
598         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
599         * config/mmix/mmix.c (along): Update.
600         (mmix_expand_epilogue): Update.
601         * config/bfin/bfin.c (legitimize_pic_address): Update.
602         (must_save_p): Update.
603         (stack_frame_needed_p): Update.
604         (add_to_reg): Update.
605         (bfin_expand_prologue): Update.
606         * stmt.c (expand_asm_operands): Update.
607         * reload1.c (reload): Update.
608         (init_elim_table): Update.
609
610 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
611         
612         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
613         
614 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
615
616         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with
617         SSEMODE.
618         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
619         (mov<mode>): Removed.
620         (*movv4sf_internal): Likewise.
621         (*movv2df_internal): Likewise.
622
623 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
624
625         * config.gcc (crx-*-elf): Remove deprecation.
626
627 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
628
629         * config/i386/cygming-crtend.c (register_frame_ctor): Register
630         __gcc_deregister_frame with atexit.
631         (deregister_frame_dtor): Remove.
632
633 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
634             Nathan Sidwell  <nathan@codesourcery.com>
635
636         * config/rs6000/rs6000.opt (mspe): Remove Var property.
637         (misel): Likewise.
638         * config/rs6000/rs6000.h (rs6000_spe): Declare.
639         (rs6000_isel): Likewise.
640         * config/rs6000/rs6000.c (rs6000_spe): New variable.
641         (rs6000_isel): New variable.
642         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
643
644 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
645
646         PR c++/35758
647         * c-common.c (handle_vector_size_attribute): Call
648         lang_hooks.types.reconstruct_complex_type instead of
649         reconstruct_complex_type.
650         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
651         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
652         * langhooks.h (struct lang_hooks_for_types): Add
653         reconstruct_complex_type hook.
654         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
655         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
656
657 2008-04-24  Richard Guenther  <rguenther@suse.de>
658
659         * c-common.h (check_builtin_function_arguments): Declare.
660         * c-common.c (validate_nargs): New function.
661         (check_builtin_function_arguments): Likewise.
662         * c-typeck.c (build_function_call): Call
663         check_builtin_function_arguments.
664         * builtins.c (fold_builtin_classify): Remove error reporting code.
665         (fold_builtin_unordered_cmp): Likewise.
666         (fold_builtin_1): Likewise.
667         (fold_builtin_n): Likewise.
668
669 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
670
671         PR tree-optimization/36008
672         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
673         the original op1, rather than delta by step.
674
675 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
676             Sebastian Pop  <sebastian.pop@amd.com>
677
678         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
679         eliminate_local_variables_stmt, eliminate_local_variables,
680         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
681         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
682         of code delimited by two edges in the CFG.
683         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
684         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
685         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
686         the case of parallelisation of reductions.
687         (expr_invariant_in_region_p): New.
688
689         * tree-flow.h (gather_blocks_in_sese_region): Declared.
690         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
691
692 2008-04-24  Ira Rosen  <irar@il.ibm.com>
693             Richard Guenther  <rguenther@suse.de>
694
695         PR tree-optimization/36034
696         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
697         incapable of dealing with loads with gaps.
698
699 2008-04-24  Rafael Espindola  <espindola@google.com>
700
701         * tree-flow.h (vrp_evaluate_conditional): Change signature.
702         * tree-ssa-propagate.c (fold_predicate_in): Update call to
703         vrp_evaluate_conditional.
704         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
705         (vrp_evaluate_conditional): Split the cond argument.
706         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
707         (simplify_stmt_for_jump_threading): Update call to
708         vrp_evaluate_conditional.
709
710 2008-04-24  Ira Rosen  <irar@il.ibm.com>
711
712         PR tree-optimization/35982
713         * tree-vect-analyze.c (vect_check_interleaving): Check that the
714         interleaved data-refs are of the same type.
715
716 2008-04-24  Danny Smith  <dannysmith@users.net>
717
718         * c-format.c (check_format_info_main): Use strncmp rather than a
719         magic prefix to handle multichar length specs.
720         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
721         Don't prefix "I64" and "I32" with '\0'.
722
723 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
724
725         PR target/36015
726         * config/i386/i386.c (init_cumulative_args): Don't pass anything
727         in registers for -m32 only if stdarg_p (fntype).
728
729 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
730
731         PR rtl-optimization/36006
732         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
733         temp to op0 in order to avoid invalid rtx sharing.
734
735 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
736
737         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
738         check TREE_INVARIANT.
739         * tree-gimple.c (is_gimple_address): New.
740         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
741         * tree-gimple.h (is_gimple_address): New.
742         * tree.h (decl_address_invariant_p): New.
743         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
744         (build_string): Likewise.
745         (decl_address_invariant_p): New, from is_gimple_invariant_address.
746         (tree_invariant_p_1): Likewise.
747         (save_expr): Use it.
748         (tree_invariant_p): New.
749         (skip_simple_arithmetic): Use it.
750         (stabilize_reference_1): Use it.
751         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
752         simplify.
753         (build1_stat): Drop code to compute TREE_INVARIANT.
754         (build2_stat): Drop code to compute TREE_INVARIANT.
755         (build3_stat): Drop code to compute TREE_INVARIANT.
756         (build4_stat): Drop code to compute TREE_INVARIANT.
757         (build5_stat): Drop code to compute TREE_INVARIANT.
758         (build7_stat): Drop code to compute TREE_INVARIANT.
759         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
760         * tree.h (struct tree_base): Remove invariant_flag.
761         (TREE_INVARIANT): Remove.
762         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
763         (fold_builtin_expect): Check TREE_CONSTANT.
764         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
765         * c-tree.h (c_expr_to_decl): Drop third parameter.
766         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
767         (build_c_cast): Don't set TREE_INVARIANT.
768         (pop_init_level): Don't set TREE_INVARIANT.
769         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
770         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
771         TREE_CONSTANT.
772         (gimplify_init_constructor): Don't set TREE_INVARIANT.
773         (gimplify_addr_expr): Adjust comment.
774         * tree-mudflap.c (mf_build_string):
775         * print-tree.c (print_node): Don't print TREE_INVARIANT.
776         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
777         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
778         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
779         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
780         * langhooks.h (struct lang_hooks): Drop third parameter from
781         expr_to_decl.
782
783 2008-04-23  Richard Guenther  <rguenther@suse.de>
784
785         PR tree-optimization/27799
786         PR tree-optimization/32921
787         PR tree-optimization/32624
788         * tree-ssa-structalias.c (merge_smts_into): Only merge the
789         SMTs aliases and the tag itself into the solution.
790         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
791         merge the points-to solution back into the SMT aliases.
792         (may_alias_p): Use alias_set_subset_of instead of
793         aliases_conflict_p.  A pointer which points to
794         memory with alias set zero may access any variable.
795
796 2008-04-23  Richard Guenther  <rguenther@suse.de>
797
798         * alias.c (alias_set_subset_of): Correctly handle asking
799         if zero is a subset of an alias set with zero child.
800         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
801         (compute_flow_insensitive_aliasing): Correctly walk all
802         pointers.  Do not unnecessarily union sets.
803
804 2008-04-23  Richard Guenther  <rguenther@suse.de>
805
806         PR middle-end/36021
807         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
808
809 2008-04-22  Tomas Bily  <tbily@suse.cz>
810
811         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
812         unreachable case.
813         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
814         NON_LVALUE_EXPR.
815         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
816         * tree-ssa-structalias.c (get_constraint_for): Likewise.
817         * tree-inline.c (estimate_num_insns_1): Likewise.
818         * varasm.c (const_hash_1, compare_constant, copy_constant)
819         (compute_reloc_for_constant, output_addressed_constants): Likewise.
820         * emit-rtl.c (component_ref_for_mem_expr)
821         (set_mem_attributes_minus_bitpos): Likewise.
822         * expr.c (highest_pow2_factor, expand_expr_real_1, )
823         (is_aligning_offset): Likewise.
824         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
825         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
826         * dojump.c (do_jump): Likewise.
827         * builtins.c (get_pointer_alignment, get_memory_rtx)
828         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
829         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
830
831 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
832
833         PR rtl-optimization/36017
834         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
835         expanding the library call.
836
837 2008-04-22  Ian Lance Taylor  <iant@google.com>
838
839         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
840         than size_in_bytes.
841
842 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
843
844         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
845         of LR/CTR moves for Power6.
846
847 2008-04-22  Kenneth Zadeck <zadeck@naturalbridge.com>
848
849         PR middle-end/36003
850         * passes.c (init_optimization_passes): Remove
851         pass_fast_rtl_byte_dce.
852         
853 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
854
855         PR target/29096
856         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
857         builtin functions to generate faster code.
858         (_mm_cvtpu16_ps): Ditto.
859         (_mm_cvtpi32x2_ps): Ditto.
860
861 2008-04-22  Nick Clifton  <nickc@redhat.com>
862
863         * common.opt (ftree-loop-distribution): Add Optimization
864         attribute.
865
866         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
867         (frv_expand_builtin_va_start): Likewise.
868
869         * config/arm/arm.c (thumb_find_work_register): Fix location of
870         argument register count.
871
872 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
873
874         Support scheduling for ColdFire V1 and V3 microarchitecture.
875         Improve scheduling of multiplication instructions.
876
877         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
878         (mac): New instruction attribute.
879         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
880         (m68k_sched_mac): New variable.
881         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
882         Handle cfv1 and cfv3.
883         (max_insn_size): New static variable.
884         (struct _sched_ib): New type.
885         (sched_ib): New static variable.
886         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
887         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
888         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
889         Update.
890         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
891         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
892         new variables.  Update.
893         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
894         Add modeling of cfv3 instruction buffer.  Update.
895         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
896         * config/m68k/m68k.h (TUNE_CFV3): New macro.
897         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
898         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
899         a particular reservation applies to.
900         (type2): Reorganize attribute values.  Rename alu to alu_reg,
901         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
902         to mul_l and mul_w.
903         (cf_ib_*): Simplify description of instruction buffer.
904         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
905         (cf_mem): Split into cf_mem1 and cf_mem2.
906         (cf_v2_move_??): Rename to cfv12_alu_??.
907         (cf_v2_move_l_??): Rename to cfv12_omove_??.
908         (cf_v2_mul_??): Remove reservations.
909         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
910         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
911         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
912         appropriate place.
913         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
914         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
915         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
916         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
917         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
918         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
919         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
920         expansions of the above reservations for instructions of sizes
921         1, 2 and 3 words.
922
923 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
924
925         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
926
927 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
928
929         * coverage.c: Include tree-pass.h.
930         (coverage_counter_alloc): Print da_file_name to the dump file.
931
932 2008-04-21  Kenneth Zadeck <zadeck@naturalbridge.com>
933
934         * sbitmap.c (sbitmap_range_empty_p): New function.
935         * sbitmap.h (sbitmap_range_empty_p): New function.
936         * bitmap.h: Now includes obstack.h.
937
938 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
939             Kenneth Zadeck <zadeck@naturalbridge.com>
940
941         * dbgcnt.def (ra_byte_scan): Added.
942         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
943         when the last hit happens for a counter.  
944         * timevar.def (TV_DF_BYTE_LR): New variable.
945         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
946         * passes.c (pass_fast_rtl_byte_dce): New pass.
947         * fwprop.c (update_df): Added mode to call df_ref_create.
948         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
949         DF_REF_EXTRACT_OFFSET.
950         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
951         DF_BYTE_LR_OUT, df_byte_lr): New macro.
952         (df_mm): New enum.
953         (df_ref_extract): Added mode field.
954         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
955         DF_REF_EXTRACT_OFFSET.
956         (DF_REF_EXTRACT_MODE): New macro.
957         (df_byte_lr_bb_info): New structure.
958         (df_print_byte_regset, df_compute_accessed_bytes, 
959         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
960         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
961         df_byte_lr_simulate_uses,
962         df_byte_lr_simulate_artificial_refs_at_top,
963         df_byte_lr_simulate_artificial_refs_at_end,
964         df_compute_accessed_bytes): New function.
965         (df_ref_create): Add parameter.
966         (df_byte_lr_get_bb_info): New inline function.
967         * df-scan.c (df_ref_record, df_uses_record,
968         df_ref_create_structure): Added mode parameter.
969         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
970         df_defs_record, df_uses_record, df_get_conditional_uses,
971         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
972         df_entry_block_defs_collect, df_exit_block_uses_collect):
973         Added mode parameter to calls to df_ref_record, df_uses_record,
974         df_ref_create_structure.
975         (df_ref_equal_p, df_ref_compare): Added test for modes.
976         (df_ref_create_structure): Added code to set mode.  Renamed
977         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
978         DF_REF_EXTRACT_OFFSET.
979         * df-core.c (df_print_byte_regset): New function.
980         * df-byte-scan.c: New file.
981         * df-problems.c (df_rd_transfer_function): Removed unnecessary
982         calls to BITMAP_FREE.  
983         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
984         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
985         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
986         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
987         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
988         df_byte_lr_local_compute, df_byte_lr_init,
989         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
990         df_byte_lr_transfer_function, df_byte_lr_free, 
991         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
992         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
993         df_byte_lr_simulate_uses,
994         df_byte_lr_simulate_artificial_refs_at_top,
995         df_byte_lr_simulate_artificial_refs_at_end): New function.
996         * dce.c (byte_dce_process_block): New function.
997         (dce_process_block): au is now passed in rather than computed
998         locally.  Changed loops that look at artificial defs to not look
999         for conditional or partial ones, because there never are any.  
1000         (fast_dce): Now is able to drive byte_dce_process_block or 
1001         dce_process_block depending on the kind of dce being done.
1002         (rest_of_handle_fast_dce): Add parameter to fast_dce.
1003         (rest_of_handle_fast_byte_dce): New function.
1004         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
1005         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
1006
1007 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
1008
1009         PR fortran/35019
1010         * gcc.h: Added fortran options that take arguments to
1011         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
1012         macros.
1013
1014 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
1015
1016         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
1017         scalarization if on the LHS and not a full access.
1018
1019 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1020
1021         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
1022
1023 2008-04-18  Rafael Espindola  <espindola@google.com>
1024
1025         * tree-vrp.c (find_case_label_index): Fix the binary search.
1026         (find_case_label_range): New.
1027         (vrp_visit_switch_stmt): Use find_case_label_range.
1028         (simplify_switch_using_ranges): Use find_case_label_range.
1029
1030 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1031
1032         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
1033         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
1034
1035 2008-04-18  Tom Tromey  <tromey@redhat.com>
1036
1037         PR libcpp/15500:
1038         * doc/cpp.texi (Implementation-defined behavior): Mention
1039         -finput-charset.
1040
1041 2008-04-18  Ian Lance Taylor  <iant@google.com>
1042
1043         * fold-const.c (pointer_may_wrap_p): New static function.
1044         (fold_comparison): Add another test for pointer overflow.  Use
1045         pointer_may_wrap_p to disable some false positives.
1046
1047 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
1048           
1049         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
1050         (fname_as_string): Match updated cpp_interpret_string prototype.
1051         (fix_string_type): Support char16_t* and char32_t*.
1052         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
1053         derivative) nodes.  Register as builtin if C++0x.
1054         (c_parse_error): Support CPP_CHAR{16,32}.
1055         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
1056         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
1057         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
1058         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
1059         CTI_CHAR32_ARRAY_TYPE>: New elements.
1060         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
1061         char32_type_node, signed_char32_type_node, char16_array_type_node,
1062         char32_array_type_node): New defines.
1063         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
1064         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
1065         (lex_string): Support CPP_STRING{16,32}, match updated
1066         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
1067         (lex_charconst): Support CPP_CHAR{16,32}.
1068         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
1069         and CPP_STRING{16,32}.
1070
1071 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
1072
1073         PR bootstrap/35457
1074         * aclocal.m4: Regenerate.
1075         * configure: Regenerate.
1076
1077 2008-04-18  Jan Hubicka  <jh@suse.cz>
1078
1079         * except.c (dw2_size_of_call_site_table,
1080         sjlj_size_of_call_site_table): Use vector API for call_site_record.
1081
1082         * cgraphbuild.c (build_cgraph_edges): Update.
1083         * tree-pass.h: Update comment.
1084         * final.c (leaf_function_p): Update.
1085         (leaf_renumber_regs): Update.
1086         (rest_of_clean_state): Update.
1087         * omp-low.c (expand_omp_parallel): Update.
1088         * ipa-reference.c (analyze_function): Update.
1089         * reorg.c (find_end_label): Update.
1090         (optimize_skip): Update.
1091         (fill_simple_delay_slots): Update.
1092         (fill_simple_delay_slots): Update.
1093         (make_return_insns): Update.
1094         (dbr_schedule): Update.
1095         * gimple-low.c (record_vars_into): Update.
1096         * cfgbuild.c (make_edges): Update.
1097         * function.c (assign_stack_local): Update.
1098         (assign_parm_adjust_stack_rtl): Update.
1099         (locate_and_pad_parm): Update.
1100         (allocate_struct_function): Do not initialize stack_alignment_needed
1101         and preferred_stack_boundary here.
1102         (stack_protect_prologue): Update.
1103         (stack_protect_epilogue): Update.
1104         (expand_function_start): Initialize stack_alignment_needed,
1105         preferred_stack_boundary and max_jumptable_ents.
1106         (expand_function_end): Update.
1107         (free_after_compilation): Do not NULLify epilogue_delay_list.
1108         * function.h (struct rtl_data): Add stack_protect_guard,
1109         stack_alignment_needed,
1110         preferred_stack_boundary, epilogue_delay_list.
1111         (struct function): Remove value_histograms, stack_alignment_needed,
1112         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
1113         last_label_uid,
1114         unexpanded_var_list, stack_protect_guard.
1115         (current_function_epilogue_delay_list): Remove.
1116         * ipa-type-escape.c (analyze_function): Update.
1117         * gimplify.c (pop_gimplify_context): Update comment.
1118         * calls.c (expand_call): Update.
1119         (emit_library_call_value_1): Update.
1120         * except.c (set_nothrow_function_flags): Update.
1121         * cfgexpand.c (get_decl_align_unit): Update.
1122         (create_stack_guard): Update.
1123         (estimated_stack_frame_size): Update.
1124         (expand_used_vars): Update.
1125         (tree_expand_cfg): Free histogram earliers, init expansion variables.
1126         * explow.c (allocate_dynamic_stack_space): Update.
1127         * tree-ssa-live.c (remove_unused_locals): Update.
1128         * varasm.c (mark_constant_pool): Update.
1129         * tree-inline.c (remap_decls): Update.
1130         (initialize_cfun): Update.
1131         (declare_return_variable): Update.
1132         (inline_forbidden_p): Update.
1133         (expand_call_inline): Update.
1134         (declare_inline_vars): Update.
1135         (tree_function_versioning): Update.
1136         * tree-flow.h (value_histograms): New.
1137         (VALUE_HISTOGRAMS): New macro.
1138         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
1139         last_label_uid.
1140         * tree-cfg.c (set_bb_for_stmt): Update.
1141         (replace_by_duplicate_decl): Update.
1142         (move_block_to_fn): Update.
1143         (new_label_mapper): Update.
1144         (dump_function_to_file): Update.
1145         * ipa-struct-reorg.c (build_data_structure): Update.
1146         * cfgrtl.c (print_rtl_with_bb): Update.
1147         * reload1.c (reload): Update.
1148         (reload): Update.
1149         * config/i386/i386.c (setup_incoming_varargs_64,
1150         ix86_compute_frame_layout): Update.
1151         * config/arc/arc.c (arc_output_function_epilogue): Update.
1152
1153 2008-04-18  Marius Strobl <marius@FreeBSD.org>
1154
1155         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
1156         for FreeBSD as well.
1157         * gthr-posix95.h: Likewise.
1158
1159 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
1160
1161         PR rtl-optimization/35838
1162         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
1163         out the byte offset of the first subreg.
1164
1165 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
1166
1167         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
1168         to split_ti instead of three separate calls with single member arrays.
1169         (subti3 splitter): Ditto.
1170         (adddi3 splitter): Ditto with split_di.
1171         (subdi3 splitter): Ditto.
1172         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
1173         two separate calls with single member arrays.  Swap match_dup
1174         operands 1 and 2 to better fit into the array.
1175         (negdi2 splitter): Ditto with split_di.
1176         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
1177         two separate calls with single member arrays.  Swap match_dup operands
1178         6 and 7 to better fit into the array.
1179
1180 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
1181
1182         * config/i386/i386.c (sse_builtin_type): New.
1183         (bdesc_sse_args): Likewise.
1184         (bdesc_sse_3arg): Removed.
1185         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
1186         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
1187         IX86_BUILTIN_ROUNDPS.
1188         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
1189         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
1190         IX86_BUILTIN_ROUNDPS.
1191         (ix86_expand_sse_4_operands_builtin): Removed.
1192         (ix86_expand_sse_operands_builtin): New.
1193         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
1194         and CODE_FOR_sse4_1_roundps.
1195         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
1196         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
1197
1198 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
1199
1200         PR target/35907
1201         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
1202         regs before frame pop when needed.  If use_backchain_to_restore_sp
1203         then load backchain into a temp reg to restore vr and vrsave.  Add
1204         code to restore vr after frame pop if possible.
1205
1206 2008-04-17  Richard Guenther  <rguenther@suse.de>
1207
1208         * tree-vn.c (expressions_equal_p): Do not check type
1209         equality or compatibility before calling operand_equal_p.
1210         * fold-const.c (operand_equal_p): Check equivalence of
1211         integer constants before bailing out due to signedness or
1212         precision differences.
1213         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
1214         spurious differences in type qualification.  Ignore types
1215         for COMPONENT_REFs at all.
1216
1217 2008-04-17  Christian Bruel  <christian.bruel@st.com>
1218
1219         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
1220         msw_skip comparison.
1221         
1222 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
1223
1224         PR c/35739
1225         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
1226         reg type.
1227
1228         PR tree-optimization/35899
1229         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
1230         rather than TREE_OPERAND.
1231
1232 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
1233
1234         PR target/35944
1235         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
1236         temporary registers.  Change operand predicate to general_operand.
1237         (remainderxf3): Ditto.
1238
1239 2008-04-16  Richard Guenther  <rguenther@suse.de>
1240
1241         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
1242         * tree-affine.c (aff_combination_expand): Look through some
1243         conversions.
1244
1245 2008-04-15  Doug Kwan  <dougkwan@google.com>
1246
1247         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
1248         for hex printing.
1249         * tree-pretty-print.c (dump_generic_node): Ditto.
1250         * final.c (output_addr_const): Ditto.
1251         * dwarf2out.c (output_cfi): Ditto.
1252         * c-pretty-print.c (pp_c_integer_constant): Ditto.
1253         * print-rtl.c (print_rtx): Ditto.
1254         * print-tree.c (print_node_brief, print_node): Ditto.
1255         * c-common.c (match_case_to_enum_1): Ditto.
1256         * sched-vis.c (print_value): Ditto.
1257         * config/i386/i386.c (print_operand): Cast to long unsigned int
1258         for hex printing.
1259
1260 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
1261         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
1262         MS Windows VirtualProtect function.
1263
1264 2008-04-15  Jan Hubicka  <jh@suse.cz>
1265
1266         * gengtype.c (write_root): Param_is argument is OK.
1267         * expr.c (expand_expr_real_1): Update call of get_exception_*.
1268         * function.h: Include varray.h
1269         (rtl_eh): New stucture based on except.c one.
1270         (call_site_record): New forward declaration and vector type.
1271         * calls.c (emit_call_1): Do not call
1272         note_current_region_may_contain_throw.
1273         * except.c (eh_status): Remove cur_region, try_region since they are
1274         unused.
1275         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
1276         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
1277         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
1278         Remove call_site_data_used, call_site_data_size.
1279         Turn call_site_record into vector in function.h.
1280         (note_current_region_may_contain_throw): Remove.
1281         (get_exception_pointer, get_exception_filter): Do not take struct
1282         function argument; update.
1283         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
1284         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
1285         build_post_landing_pads, dw2_build_landing_pads,
1286         sjlj_assign_call_site_values, sjlj_mark_call_sites,
1287         sjlj_emit_function_enter, sjlj_emit_function_enter, 
1288         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
1289         sjlj_build_landing_pads, finish_eh_generation,
1290         remove_exception_handler_label, remove_eh_handler,
1291         maybe_remove_eh_handler, add_reachable_handler,
1292         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
1293         add_action_record, collect_one_action_chain, add_call_site,
1294         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
1295         sjlj_output_call_site_table, output_function_exception_table,
1296         * except.h (note_current_region_may_contain_throw): Remove
1297         (get_exception_pointer, get_exception_filter): Do not take struct
1298         function argument.
1299         * Makefile.in (GTFILES): Put varargs before struct function.
1300
1301 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
1302
1303         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
1304         punt for STRING_CST.
1305         (get_constraint_for): Deal with STRING_CST here instead.
1306
1307 2008-04-15  Richard Guenther  <rguenther@suse.de>
1308
1309         * tree-ssa-propagate.c (substitute_and_fold): Substitute
1310         statements in a basic-block with a backward walk.  Do not
1311         substitute into dead statements but instead remove those.
1312
1313 2008-04-15  Richard Guenther  <rguenther@suse.de>
1314
1315         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
1316         to zero, thus disable creation of SFTs.
1317
1318 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
1319
1320         * tree-predcom.c (suitable_reference_p): Return false if the
1321         reference can throw.
1322
1323 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
1324
1325         PR c/35751
1326         * c-decl.c (finish_decl): If extern or static var has variable
1327         size, set TREE_TYPE (decl) to error_mark_node.
1328
1329 2008-04-15  Rafael Espindola  <espindola@google.com>
1330
1331         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
1332         variable arg1.
1333
1334 2008-04-15  Richard Guenther  <rguenther@suse.de>
1335
1336         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
1337         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
1338         (visit_reference_op_load): Do walk vuse-vdef chains on
1339         vn_reference_lookup.
1340         (visit_reference_op_store): But do not here.
1341         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
1342         vn_reference_lookup.
1343         (vn_lookup_with_vuses): But do so here.
1344
1345 2008-04-14  Ian Lance Taylor  <iant@google.com>
1346
1347         * fold-const.c (fold_overflow_warning): Remove assertion.
1348
1349 2008-04-15  Ben Elliston  <bje@au.ibm.com>
1350
1351         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
1352         temp1 local variables.
1353
1354 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
1355
1356         PR target/35661
1357         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
1358         ".text.unlikely" section as executable.
1359
1360 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
1361
1362         * config/ia64/ia64.c (rtx_needs_barrier): Handle
1363         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
1364         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
1365         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
1366         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
1367         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
1368         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
1369
1370 2008-04-14  Ian Lance Taylor  <iant@google.com>
1371
1372         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
1373         * fold-const.c (fold_comparison): If appropriate, test
1374         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
1375         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
1376         reassociating a pointer type.
1377         * doc/invoke.texi (Optimize Options): Document that
1378         -fstrict-overflow applies to pointer wraparound.
1379
1380 2008-04-13  Jan Hubicka  <jh@suse.cz>
1381
1382         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
1383
1384 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
1385
1386         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
1387         we are going to "save the world".
1388
1389 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
1390
1391         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
1392         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
1393         operand 0 constraint, not "=".
1394
1395 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
1396
1397         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
1398
1399 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
1400
1401         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
1402         of size of positions_needed * CHAR_BIT.
1403
1404 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
1405
1406         PR middle-end/35897
1407         * dse.c (store_info): Change positions_needed to unsigned
1408         HOST_WIDE_INT.
1409         (lowpart_bitmask): New.
1410         (record_store): Cast to unsigned HOST_WIDE_INT for
1411         positions_needed.  Assert width <= size of positions_needed *
1412         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
1413         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
1414         lowpart_bitmask to set mask.
1415
1416 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
1417
1418         * config/bfin/constraints.md: New file.
1419         * config/bfin/bfin.md: Include it.
1420         (adddi3): Use satisfies_constraint functions instead of the old macros.
1421         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
1422         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
1423         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
1424         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
1425         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
1426         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
1427         EXTRA_CONSTRAINT): Delete.
1428         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
1429         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
1430         of the old macros.
1431         * config/bfin/bfin.c: Include "tm-constrs.h".
1432         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
1433         Use satisfies_constraint functions instead of the old macros.
1434         * doc/md.texi (Blackfin Constraints): Update file name reference.
1435
1436 2008-04-11  Richard Guenther  <rguenther@suse.de>
1437
1438         PR tree-optimization/35869
1439         * tree-vrp.c (execute_vrp): Move switch statement update after
1440         jump threading.  Schedule another cfg cleanup run.
1441
1442 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
1443
1444         PR c/35744
1445         * attribs.c (decl_attributes): Return early on errorneous node.
1446
1447 2008-04-10  Oleg Ryjkov  <olegr@google.com>
1448
1449         * tree.h (struct tree_base): Added a new flag default_def_flag.
1450         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
1451
1452 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
1453
1454         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
1455
1456 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1457
1458         PR target/35768
1459         * pa.md: Define mode iterator P.  Define mode attribute dwc.
1460         (dcacheflush): Update pattern to use iterator P and attribute dwc.
1461         (icacheflush): Likewise.
1462         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
1463         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
1464
1465 2008-04-11  Ben Elliston  <bje@au.ibm.com>
1466
1467         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
1468
1469 2008-04-10  Rafael Espindola  <espindola@google.com>
1470
1471         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
1472         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
1473         (extract_range_from_expr): The same.
1474
1475 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
1476
1477         * config/mips/mips.md (GPR2): New mode iterator.
1478         (seq): Add comment.
1479         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
1480         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
1481         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
1482         Rewrite these to take two modes, the mode of comparison and the
1483         mode of the destination.
1484         * config/mips/mips.c (mips_expand_scc): Instead of having
1485         paradoxical subreg as destination, expand "narrowing" scc if mode
1486         of comparison is SI and target is requested in DI mode.
1487         (mips_emit_int_order_test): Update comment.  Make mode of
1488         comparison match CMP0 rather than TARGET.  When creating inverse
1489         target use mode of TARGET.
1490
1491 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
1492
1493         * gcov-dump.c (tag_summary): Only print summaries for the first
1494         GCOV_COUNTERS_SUMMABLE counters.
1495
1496 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
1497
1498         * config/i386/i386.md (absneg): New code iterator.
1499         (absnegprefix): New code attribute.
1500         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
1501         patterns using absneg code iterator.
1502         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
1503         using absneg code iterator.
1504         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
1505         *neg<mode>2 patterns using absneg code iterator.
1506         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
1507         *negextendsfdf2 patterns using absneg code iterator.
1508         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
1509         *negextendsfxf2 patterns using absneg code iterator.
1510         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
1511         *negextendsfdf2 patterns using absneg code iterator.
1512         * config/i386/sse.md (<code><mode>2): Macroize expander from
1513         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
1514
1515 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
1516
1517         * config/s390/s390.h: Remove the remains of the recent search
1518         & replace action of current_function_outgoing_args_size.
1519
1520 2008-04-10  Ira Rosen  <irar@il.ibm.com>
1521
1522         PR tree-optimization/35821
1523         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
1524         NEW_STMT_LIST is not NULL.
1525
1526 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
1527
1528         PR libstdc++/35597
1529         * toplev.c (process_options): Remove -ffunction-sections debugging
1530         warning.
1531
1532 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
1533
1534         PR middle-end/PR28690
1535         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
1536         than gen_rtx_fmt_ee to perform more canonicalizations.
1537
1538 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1539
1540         PR driver/35665
1541         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
1542
1543 2008-04-09  Richard Guenther  <rguenther@suse.de>
1544
1545         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
1546         (dump_function_to_file): Dump function arguments with types.
1547
1548 2008-04-08  Richard Guenther  <rguenther@suse.de>
1549
1550         * fold-const.c (fold_widened_comparison): Do not allow
1551         sign-changes that change the result.
1552
1553 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
1554
1555         PR target/35839
1556         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
1557         kinds of indirect references.
1558
1559 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
1560
1561         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
1562         GNU Fortran language string.
1563
1564 2008-04-08  Rafael Espindola  <espindola@google.com>
1565
1566         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
1567         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
1568         * tree.h (tree_call_nonnegative_warnv_p): New.
1569
1570 2008-04-08  Jan Hubicka  <jh@suse.cz>
1571
1572         * function.c (free_after_compilation): Clear out regno_reg_rtx
1573         pointer.
1574
1575 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
1576
1577         Revert
1578         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
1579
1580         PR middle-end/PR28690
1581         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
1582         same precedence as REG_POINTER and MEM_POINTER operands.
1583
1584 2008-04-08  Richard Guenther  <rguenther@suse.de>
1585
1586         PR middle-end/35834
1587         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
1588         for adding index to base.
1589
1590 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
1591
1592         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
1593         (MINGW_ENABLE_EXECUTE_STACK): New.
1594         (IN_LIBGCC2): For libgcc include windows.h file for
1595         function declarations.
1596
1597 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
1598
1599         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
1600         and tem2 if tem1 is not a REG or MULT.
1601
1602 2008-04-08  Jan Hubicka  <jh@suse.cz>
1603
1604         * function.h (incomming_args): Break out of struct function.
1605         (function_subsections): Break out of struct function.
1606         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
1607         return_rtx and hard_reg_initial_vals from struct function.
1608         Kill inl_max_label_num.
1609         (current_function_pops_args, current_function_args_info,
1610         current_function_args_size, current_function_args_size,
1611         current_function_pretend_args_size,
1612         current_function_outgoing_args_size,
1613         current_function_internal_arg_pointer, current_function_return_rtx):
1614         Kill compatibility accestor macros.
1615         * builtins.c (expand_builtin_apply_args_1): Update.
1616         (expand_builtin_next_arg): Update.
1617         * df-scan.c (df_get_call_refs): Update.
1618         * dbxout.c (dbxout_function_end): Update.
1619         * dwarf2out.c (dwarf2out_switch_text_section): Update.
1620         (output_line_info): Update.
1621         (secname_for_decl): Update.
1622         (dwarf2out_var_location): Update.
1623         * function.c (free_after_compilation): Update.
1624         (assign_parm_find_stack_rtl): Update.
1625         (assign_parms): Update.
1626         (expand_dummy_function_end): Update.
1627         (expand_function_end): Update.
1628         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
1629         (expand_call): Update.
1630         (emit_library_call_value_1): Update.
1631         (store_one_arg): Update.
1632         * varasm.c (initialize_cold_section_name): Update.
1633         (unlikely_text_section): Update.
1634         (unlikely_text_section_p): Update.
1635         (assemble_start_function): Update.
1636         (assemble_end_function): Update.
1637         (default_section_type_flags): Update.
1638         (switch_to_section): Update.
1639         * integrate.c (set_decl_abstract_flags): Update.
1640         (get_hard_reg_initial_val): Update.
1641         (has_hard_reg_initial_val): Update.
1642         (allocate_initial_values): Update.
1643         * resource.c (init_resource_info): Update.
1644         * config/alpha/alpha.c (NUM_ARGS): Update.
1645         (direct_return): Update.
1646         (alpha_va_start): Update.
1647         (alpha_sa_size): Update.
1648         (alpha_initial_elimination_offset): Update.
1649         (alpha_expand_prologue): Update.
1650         (alpha_start_function): Update.
1651         (alpha_expand_epilogue): Update.
1652         (unicosmk_initial_elimination_offset):
1653         * config/alpha/alpha.md (call expander): Update.
1654         * config/s390/s390.c (s390_register_info): Update.
1655         (s390_register_info): Update.
1656         (s390_frame_info): Update.
1657         (s390_initial_elimination_offset): Update.
1658         (s390_build_builtin_va_list): Update.
1659         (s390_va_start): Update.
1660         * config/spu/spu.c (direct_return): Update.
1661         (spu_expand_prologue): Update.
1662         (spu_initial_elimination_offset): Update.
1663         (spu_build_builtin_va_list): Update.
1664         (spu_va_start): Update.
1665         * config/sparc/sparc.c (sparc_init_modes): Update.
1666         (sparc_compute_frame_size): Update.
1667         (function_value): Update.
1668         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
1669         * config/i386/i386.md (return expander): Update.
1670         * config/i386/i386.c (ix86_va_start): Update.
1671         (ix86_can_use_return_insn_p): Update.
1672         (ix86_compute_frame_layout): Update.
1673         (ix86_expand_epilogue): Update.
1674         * config/sh/sh.c (output_stack_adjust): Update.
1675         (calc_live_regs): Update.
1676         (sh_expand_prologue): Update.
1677         (sh_builtin_saveregs): Update.
1678         (sh_va_start): Update.
1679         (initial_elimination_offset): Update.
1680         (sh_allocate_initial_value): Update.
1681         (sh_function_ok_for_sibcall): Update.
1682         (sh_get_pr_initial_val): Update.
1683         * config/sh/sh.md (return expander): Update.
1684         * config/avr/avr.c (frame_pointer_required_p): UPdate.
1685         * config/crx/crx.c (crx_compute_frame): UPdate.
1686         (crx_initial_elimination_offset): UPdate.
1687         * config/xtensa/xtensa.c (compute_frame_size): Update
1688         (xtensa_builtin_saveregs): Update.
1689         (xtensa_va_start): Update.
1690         (order_regs_for_local_alloc): Update.
1691         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
1692         (xstormy16_expand_builtin_va_start): Update.
1693         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
1694         * config/m68hc11/m68hc11.md (return expanders): Update.
1695         * config/m68hc11/m68hc11.c (expand_prologue): Update.
1696         (expand_epilogue): Update.
1697         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
1698         (cris_simple_epilogue): Update.
1699         (cris_expand_prologue): Update.
1700         (cris_expand_epilogue): Update.
1701         * config/iq2000/iq2000.c (iq2000_va_start): Update.
1702         (compute_frame_size): Update.
1703         * config/mt/mt.c (mt_compute_frame_size): Update.
1704         * config/mn10300/mn10300.c (expand_prologue): Update.
1705         (expand_epilogue): Update.
1706         (initial_offset): Update.
1707         (mn10300_builtin_saveregs):
1708         * config/mn10300/mn10300.md (return expander): Update.
1709         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
1710         (ia64_initial_elimination_offset): Update.
1711         (ia64_initial_elimination_offset): Update.
1712         (ia64_expand_prologue): Update.
1713         * config/m68k/m68k.md (return expander): Update.
1714         * config/rs6000/rs6000.c (rs6000_va_start): Update.
1715         (rs6000_stack_info): Update.
1716         * config/mcore/mcore.c (layout_mcore_frame): Update.
1717         (mcore_expand_prolog): Update.
1718         * config/arc/arc.c (arc_compute_frame_size): Update.
1719         * config/score/score3.c (score3_compute_frame_size): Update.
1720         * config/score/score7.c (score7_compute_frame_size): Update.
1721         * config/arm/arm.c (use_return_insn): Update.
1722         (thumb_find_work_register): Update.
1723         (arm_compute_save_reg_mask): Update.
1724         (arm_output_function_prologue): Update.
1725         (arm_output_epilogue): Update.
1726         (arm_size_return_regs): Update.
1727         (arm_get_frame_offsets): Update.
1728         (arm_expand_prologue): Update.
1729         (thumb_exit): Update.
1730         (thumb_unexpanded_epilogue): Update.
1731         (thumb1_output_function_prologue): Update.
1732         * config/pa/pa.md (return expander): Update.
1733         * config/pa/pa.c (compute_frame_size): Update.
1734         (hppa_builtin_saveregs): Update.
1735         * config/mips/mips.c (mips_va_start): Update.
1736         (mips16_build_function_stub): Update.
1737         (mips_compute_frame_info): Update.
1738         (mips_restore_gp): Update.
1739         (mips_output_function_prologue): Update.
1740         (mips_expand_prologue): Update.
1741         * config/v850/v850.c (compute_frame_size): Update.
1742         (expand_prologue): * config/mmix/mmix.c (along): update.
1743         (mmix_initial_elimination_offset): update.
1744         (mmix_reorg): update.
1745         (mmix_use_simple_return): update.
1746         (mmix_expand_prologue): update.
1747         (mmix_expand_epilogue): Update.
1748         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
1749         (emit_link_insn): Update.
1750
1751 2008-04-08  Anatoly Sokolov <aesok@post.ru>
1752
1753         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
1754         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
1755         instructions.
1756         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
1757         atmega103 device.
1758
1759 2008-04-07  Jan Hubicka  <jh@suse.cz>
1760
1761         * function.h (rtl): Rename to x_rtl.
1762         (crtl): New define.
1763         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
1764         frame_offset, stack_check_probe_note, arg_pointer_save_area,
1765         used_temp_slots avail_temp_slots, temp_slot_level,
1766         nonlocal_goto_handler_labels): Update accesstors.
1767         (rtl): New global variable.
1768         (struct function): Move some fileds to rtl_data.
1769         (get_arg_pointer_save_area): Update prototype.
1770         * builtins.c (expand_builtin_setjmp_receiver): Update call of
1771         get_arg_pointer_save_area.
1772         * expr.c (init_expr): Update
1773         * function.c (get_frame_size): Update
1774         (assign_stack_local): Update
1775         (expand_function_end): Update.
1776         (get_art_pointer_save_area): Update
1777         * function.h 
1778         * emit-rtl.c (rtl): Declare.
1779         (regno_reg_rtx): Declare.
1780         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
1781         Update.
1782         (gen_reg_rtx): Update.
1783         * varasm.c (n_deferred_constatns): Update accestor.
1784         (init_varasm_status): Do not allocate varasm_status.
1785         (force_const_mem, get_pool_size, output_constant_pool): Update.
1786         * stmt.c (force_label_rtx): Do not use x_ prefixes.
1787         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
1788         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
1789         * sparc/sparc.h (INIT_EXPANDERS): Update.
1790         * ia64/ia64.h (INIT_EXPANDERS): Update.
1791
1792 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
1793
1794         * reload.c (push_secondary_reload): Add missing break to for loop.
1795
1796 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
1797
1798         PR middle-end/PR28690
1799         * rtlanal.c: Update copyright years.
1800         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
1801         as REG_POINTER and MEM_POINTER operands.
1802         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
1803         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
1804         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
1805         * gcse.c: Update copyright years.
1806         (pre_delete): Call gen_reg_rtx_and_attrs.
1807         (hoist_code): Likewise.
1808         (build_store_vectors): Likewise.
1809         (delete_store): Likewise.
1810         * loop-invariant.c (move_invariant_reg): Likewise.
1811         Update copyright years.
1812
1813 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
1814
1815         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
1816         control string instead of quoted.
1817
1818 2008-04-07  Kenneth Zadeck <zadeck@naturalbridge.com>
1819
1820         * doc/rtl.texi: Rewrite of subreg section.
1821
1822 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
1823
1824         PR/35842
1825         * config/i386/i386.c (legitimize_pic_address): Add treating
1826         of dllimport SYM_REF's.
1827         (legitimize_dllimport_symbol): Add prototype.
1828
1829 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
1830
1831         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
1832         reference in constructor with non self-referential type.
1833
1834 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
1835
1836         Removal of Return with Depressed Stack Pointer support
1837         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
1838         (ECF_SP_DEPRESSED): Likewise.
1839         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
1840         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
1841         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
1842         (expand_call): Do not test ECF_SP_DEPRESSED.
1843         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
1844         * function.c (keep_stack_depressed): Delete.
1845         (handle_epilogue_set): Likewise.
1846         (update_epilogue_consts): Likewise.
1847         (emit_equiv_load): Likewise.
1848         (thread_prologue_and_epilogue_insns): Remove support for Return with
1849         Depressed Stack Pointer.
1850         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
1851
1852 2008-04-06  Richard Guenther  <rguenther@suse.de>
1853
1854         PR tree-optimization/35400
1855         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
1856         information from SSA_NAMEs.
1857
1858 2008-04-06  Anatoly Sokolov <aesok@post.ru>
1859
1860         * config/avr/avr.h (avr_mega_p): Remove declaration.
1861         (AVR_MEGA): Remove macro.
1862         * config/avr/avr.c (avr_mega_p): Remove variable.
1863         (avr_override_options): Remove inicializion of avr_mega_p.
1864         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
1865         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
1866         (avr_jump_mode): (Ditto.).
1867         (avr_output_progmem_section_asm_op): (Ditto.).
1868         (avr_asm_init_sections): (Ditto.).
1869         (avr_asm_init_sections): (Ditto.).
1870         (avr_rtx_costs): (Ditto.).
1871         * config/avr/avr.md: (Ditto.).
1872         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
1873         '__AVR_MEGA__'.
1874
1875 2008-04-06  Richard Guenther  <rguenther@suse.de>
1876
1877         PR tree-optimization/35842
1878         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
1879         is_gimple_invariant_address.
1880
1881 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1882
1883         * gcc.c (default_compilers): Sync Fortran extensions list with
1884         that in fortran/lang-specs.h.
1885         * doc/invoke.texi: Likewise.
1886         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
1887         * dwarf2out.c (gen_compile_unit_die): Likewise.
1888
1889 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
1890
1891         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
1892
1893 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
1894
1895         PR target/12329
1896         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
1897         attribute is used for nested functions.
1898
1899 2008-04-05  Jan Hubicka  <jh@suse.cz>
1900
1901         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
1902
1903         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
1904         letter argument.
1905         (dump_files): Update.
1906         (enable_rtl_dump_file): Do not accept letter argument.
1907         * tree-pass.h (dump_file_info): Remove letter argument.
1908         * toplev.c (decode_d_option): Update -da handling.
1909         * toplev.h (enable_rtl_dump_file): Update prototype.
1910         * passes.c (register_one_dump_file): Do not accept IPA argument; work
1911         it out based on pass type.
1912         (register_dump_files_1): Likewise.
1913         (init_optimization_passes): Update register_one_dump_file calls.
1914         (execute_one_pass): Sanity check that IPA passes are called at IPA
1915         level and RTL passes at RTL level.
1916         (execute_pass_list): IPA pass can not be after or subpass of
1917         GIMPLE/RTL pass.
1918         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
1919         disallov RTL subpasses of IPA subpasses.
1920
1921 2008-04-05  Ben Elliston  <bje@au.ibm.com>
1922
1923         * tree-cfg.c (need_fake_edge_p): Return false for calls to
1924         builtins that return exactly once and do not throw. Cache call to
1925         call_expr_flags.
1926
1927 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
1928
1929         PR rtl-optimization/34916
1930         PR middle-end/35519
1931         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
1932         between instruction pairs.
1933
1934 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
1935
1936         * doc/invoke.texi: Document -mbitops for SH.
1937         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
1938         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
1939         * config/sh/sh.c (print_operand): Add %t operand code.
1940         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
1941         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
1942         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
1943         (extendqihi2): Likewise.
1944         (movqi_i): Likewise.
1945         (insv): Use bset, bclr and bst instructions for SH2A if possible.
1946         (extv): Use bld instruction for SH2A if possible.
1947         (extzv): Likewise.
1948         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
1949         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
1950         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
1951         (bset.b, bclr.b): Define peepholes.
1952         * config/sh/sh.opt (mbitops): New option.
1953
1954 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
1955
1956         PR target/35620
1957         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
1958         and view convert expression.
1959
1960 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
1961
1962         PR target/35364
1963         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
1964
1965 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
1966
1967         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
1968
1969         * config/i386/cpuid.h (bit_AES): New.
1970         (bit_PCLMUL): Likewise.
1971
1972         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
1973         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
1974         SSE2 if AES or PCLMUL is enabled.
1975         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
1976         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
1977         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
1978         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
1979         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
1980         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
1981         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
1982         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
1983         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
1984         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
1985         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
1986         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
1987         __builtin_ia32_aeskeygenassist128 and
1988         __builtin_ia32_pclmulqdq128.
1989         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
1990         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
1991         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
1992
1993         * config/i386/i386.h (TARGET_AES): New.
1994         (TARGET_PCLMUL): Likewise.
1995         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
1996
1997         * config/i386/i386.md (UNSPEC_AESENC): New.
1998         (UNSPEC_AESENCLAST): Likewise.
1999         (UNSPEC_AESDEC): Likewise.
2000         (UNSPEC_AESDECLAST): Likewise.
2001         (UNSPEC_AESIMC): Likewise.
2002         (UNSPEC_AESKEYGENASSIST): Likewise.
2003         (UNSPEC_PCLMUL): Likewise.
2004
2005         * config/i386/i386.opt (maes): New.
2006         (mpclmul): Likewise.
2007
2008         * config/i386/sse.md (aesenc): New pattern.
2009         (aesenclast): Likewise.
2010         (aesdec): Likewise.
2011         (aesdeclast): Likewise.
2012         (aesimc): Likewise.
2013         (aeskeygenassist): Likewise.
2014         (pclmulqdq): Likewise.
2015
2016         * config/i386/wmmintrin.h: New.
2017
2018         * doc/extend.texi: Document AES and PCLMUL built-in function.
2019
2020         * doc/invoke.texi: Document -maes and -mpclmul.
2021
2022 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
2023
2024         * function.c (free_after_parsing): Replace with
2025         cxx_push_function_context from C++ front-end.
2026         (allocate_struct_function): Don't call langhook.
2027         * langhooks.h (struct lang_hooks_for_functions): Delete.
2028         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
2029         member "function".
2030         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
2031         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
2032         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2033         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
2034         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
2035         remove LANG_HOOKS_FUNCTION_INITIALIZER.
2036         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
2037
2038         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
2039         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
2040         
2041 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
2042
2043         PR c/35440
2044         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
2045         for all types.
2046
2047 2008-04-04  Richard Guenther  <rguenther@suse.de>
2048
2049         PR middle-end/35823
2050         * fold-const.c (optimize_minmax_comparison): Use the correct
2051         type for the constant in the simplified comparison.
2052
2053 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
2054
2055         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
2056         Pass L2 size as "--param l2-cache-size" to the compiler.
2057         (decode_l2_cache): New function to decode L2 cache parameters using
2058         0x8000006 extended cpuid function.
2059         (detect_caches_amd): Determine parameters of L2 cache using
2060         decode_l2_caches function.
2061         (decode_caches_intel): Decode L2 cache parameters.
2062         (detect_caches_intel): Determine L2 cache parameters using
2063         decode_caches_intel and decode_l2_caches functions.
2064
2065 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
2066
2067         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
2068         secondary input reload for subword loads from the constant pool.
2069
2070 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
2071
2072         PR target/35713
2073         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
2074           constants of the appropriate size for runtime calculations.
2075
2076         PR c/35712
2077         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
2078           decimal-float literal constant zero.
2079
2080 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
2081
2082         PR c/35738
2083         * c-parser.c (c_parser_omp_atomic): Call
2084         default_function_array_conversion on the RHS.
2085
2086         PR middle-end/35818
2087         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
2088         call is_variable_sized if decl has incomplete type.
2089
2090 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
2091
2092         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
2093
2094 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
2095
2096         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
2097         iterators.
2098         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
2099         (sgt<u>): Merge sgt and sgtu into new expander.
2100         (sgt, sgtu): Remove expanders.
2101         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
2102         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
2103         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
2104         *sgtu_<mode>_mips16 into new pattern.
2105         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
2106         (sge<u>): Merge sge and sgeu into new expander.
2107         (sge, sgeu): Remove expanders.
2108         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
2109         new pattern.
2110         (*sge_<mode>, second *sge_<mode>): Remove patterns.
2111         (slt<u>): Merge slt and sltu into new expander.
2112         (slt, sltu): Remove expanders.
2113         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
2114         (*slt_<mode>, *sltu_<mode>): Remove patterns.
2115         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
2116         *sltu_<mode>_mips16 into new pattern.
2117         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
2118         (sle<u>): Merge sle and sleu into new expander.
2119         (sle, sleu): Remove expanders.
2120         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
2121         (*sle_<mode>, *sleu_<mode>): Remove patterns.
2122         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
2123         *sleu_<mode>_mips16 into new pattern.
2124         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
2125
2126 2008-04-03  Jan Hubicka  <jh@suse.cz>
2127
2128         PR tree-optimization/35795
2129         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
2130         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
2131         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
2132         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
2133         * score/score3.c (score3_output_mi_thunk): Likewise.
2134         * score/score7.c (score7_output_mi_thunk): Likewise.
2135         * mips/mips.c (mips_output_mi_thunk): Likewise.
2136
2137 2008-04-03  Richard Guenther  <rguenther@suse.de>
2138
2139         * tree-vrp.c (extract_range_from_unary_expr): Handle all
2140         conversions.  Simplify code.
2141
2142 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
2143
2144         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
2145
2146 2008-04-03  Tom Tromey  <tromey@redhat.com>
2147             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2148
2149         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
2150         * config/bfin/t-bfin-linux (generated_files): Add
2151         linux-sysroot-suffix.h.
2152         * doc/install.texi (Prerequisites): Require make 3.80.
2153         * doc/sourcebuild.texi (Front End Directory): Document new
2154         variable.
2155         * Makefile.in (generated_files): New variable.
2156         (ALL_HOST_OBJS): New variable.
2157         ($(ALL_HOST_OBJS)): New target.
2158
2159 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
2160
2161         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
2162         (remap_block): Call id->transform_lang_insert_block instead
2163         of langhook.
2164         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
2165         Set id.transform_lang_insert_block to NULL.
2166         (clone_body): Move to cp/optimize.c
2167         * tree-inline.h (struct copy_body_data): Change
2168         transform_lang_insert_block to function pointer.
2169         (copy_generic_body, copy_decl_no_change): Export.
2170         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
2171         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
2172         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
2173
2174         * c-tree.h (insert_block): Kill.
2175         * c-decl.c (insert_block): Kill.
2176
2177 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
2178
2179         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
2180         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
2181         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
2182         argument.
2183         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
2184         argument, call {push,pop}_function_context from here.
2185         * c-parser.c: Use c_{push,pop}_function_context.
2186
2187         * function.c (push_function_context_to): Move meat ...
2188         (push_function_context): ... here.  Simplify.
2189         * function.c (pop_function_context_from): Move meat ...
2190         (pop_function_context): ... here.  Simplify.
2191         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
2192         leave_nested).
2193         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
2194         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
2195         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
2196         * tree.h (push_function_context_to, pop_function_context_from): Remove.
2197
2198 2008-04-03  Ben Elliston  <bje@au.ibm.com>
2199
2200         * expmed.c (extract_force_align_mem_bit_field): Remove.
2201
2202 2008-04-03  Richard Guenther  <rguenther@suse.de>
2203
2204         PR middle-end/35800
2205         * expr.h (try_casesi): Adjust prototype.
2206         * expr.c (try_casesi): Take fallback label as extra parameter.
2207         Use that for gen_casesi if default_label is NULL.
2208         * stmt.c (expand_case): Pass fallback label to try_casesi,
2209         make sure to fill gaps with a fallback label if default_label
2210         is not present.
2211
2212 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
2213
2214         PR target/35801
2215         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
2216
2217 2008-04-03  Ben Elliston  <bje@au.ibm.com>
2218
2219         * expmed.c (extract_split_bit_field): Remove if (0) code.
2220         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
2221         (do_ds_constraint): Likewise.
2222
2223 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
2224
2225         * doc/cppopts.texi (-dU): Document.
2226         * c-common.h (flag_dump_macros): Update comment.
2227         * c-opts.c (handle_OPT_d): Handle -dU.
2228         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
2229         dump_queued_macros, cb_used_define, cb_used_undef): New.
2230         (init_pp_output): Handle -dU.
2231         (cb_line_change): Call dump_queued_macros.
2232         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
2233
2234 2008-04-02  Anatoly Sokolov <aesok@post.ru>
2235
2236         * config/avr/predicates.md (io_address_operand): New predicate. 
2237         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
2238         * config/avr/avr.c (avr_io_address_p): Remove function.
2239         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
2240         'avr_io_address_p' function.
2241         (out_movhi_r_mr): (Ditto.).
2242         (out_movqi_mr_r): (Ditto.).
2243         (out_movhi_mr_r): (Ditto.).
2244         (avr_address_cost): (Ditto.).
2245
2246 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
2247
2248         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
2249         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
2250         in 32bit mode when XMM registers are available to avoid store
2251         forwarding stalls.
2252         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
2253         corresponding post-reload splitters.
2254
2255 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
2256
2257         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
2258         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
2259         __builtin_ia32_roundss.
2260         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
2261         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
2262         __builtin_ia32_roundss.
2263         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
2264         IX86_BUILTIN_SHUFPD here.
2265
2266 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
2267
2268         * config/i386/i386.md (plogic): New.
2269         (plogicprefix): Likewise.
2270
2271         * config/i386/mmx.md (mmx_<code><mode>3): New.
2272         (mmx_and<mode>3): Removed.
2273         (mmx_ior<mode>3): Likewise.
2274         (mmx_xor<mode>3): Likewise.
2275
2276         * config/i386/sse.md (<code><mode>3): New.
2277         (*<code><mode>3): Likewise.
2278         (*<code><mode>3): Likewise.
2279         (<code><mode>3): Likewise.
2280         (*sse_<code><mode>3): Likewise.
2281         (*sse2_<code><mode>3): Likewise.
2282         (<code>tf3): Likewise.
2283         (*<code>tf3): Likewise.
2284         (and<mode>3): Likewise.
2285         (*and<mode>3): Likewise.
2286         (ior<mode>3): Removed.
2287         (*ior<mode>3): Likewise.
2288         (xor<mode>3): Likewise.
2289         (*xor<mode>3): Likewise.
2290         (*and<mode>3): Likewise.
2291         (*ior<mode>3): Likewise.
2292         (*xor<mode>3): Likewise.
2293         (and<mode>3): Likewise.
2294         (*sse_and<mode>3): Likewise.
2295         (*sse2_and<mode>3): Likewise.
2296         (andtf3): Likewise.
2297         (*andtf3): Likewise.
2298         (ior<mode>3): Likewise.
2299         (*sse_ior<mode>3): Likewise.
2300         (*sse2_ior<mode>3): Likewise.
2301         (iortf3): Likewise.
2302         (*iortf3): Likewise.
2303         (xor<mode>3): Likewise.
2304         (*sse_xor<mode>3): Likewise.
2305         (*sse2_xor<mode>3): Likewise.
2306         (xortf3): Likewise.
2307         (*xortf3): Likewise.
2308
2309 2008-04-02  Richard Guenther  <rguenther@suse.de>
2310
2311         PR tree-optimization/14495
2312         PR tree-optimization/34793
2313         * tree-vrp.c (struct switch_update): New structure.
2314         (to_remove_edges, to_update_switch_stmts): New VECs.
2315         (simplify_switch_using_ranges): New function.  Remove not taken
2316         case labels and edges.
2317         (simplify_stmt_using_ranges): Call it.
2318         (identify_jump_threads): Mark edges we have queued for removal
2319         so we don't thread them.
2320         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
2321         case label vector.
2322         * tree-cfg.c (group_case_labels): Deal with missing default label.
2323         (tree_verify_flow_info): Allow missing default label.
2324         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
2325         (emit_case_nodes): Likewise.
2326         (expand_case): Do not rely on the default label to be present.
2327         * expr.c (try_casesi): Deal with NULL default_label.
2328         (do_tablejump): Likewise.
2329
2330 2008-04-02  Richard Guenther  <rguenther@suse.de>
2331
2332         PR tree-optimization/14495
2333         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
2334         SWITCH_EXPR here ...
2335         (vrp_visit_switch_stmt): ... but here (new function).
2336         (find_case_label_index): New helper function.
2337         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
2338
2339 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
2340
2341         * fwprop.c: Fix ISO-C99ism.
2342
2343 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
2344
2345         PR bootstrap/35752
2346         * Makefile.in (objdir): Set it here.
2347         * configure.ac: Not here.  Find dynamic linker characteristics.
2348         * exec-tool.in: Use them.
2349         * aclocal.m4: Regenerate.
2350         * configure: Regenerate.
2351
2352 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
2353
2354         * expr.c (expand_var): Delete it.
2355         * expr.h (expand_var): Delete prototype.
2356         * function.c (expand_function_start): Use expand_decl instead.
2357         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
2358         langhook.
2359
2360 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
2361
2362         PR rtl-optimization/35542
2363         * fwprop.c (forward_propagate_and_simplify): Replace
2364         loc_reg_mentioned_in_p with reg_mentioned_p.
2365
2366 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
2367
2368         PR rtl-optimization/35281
2369         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
2370         (propagate_rtx_1): Handle PR_HANDLE_MEM.
2371         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
2372         (varying_mem_p): Move above propagate_rtx.
2373         (all_uses_available_at): Do not check MEMs.
2374
2375 2008-04-02  Rafael Espindola  <espindola@google.com>
2376
2377         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
2378         (register_edge_assert_for_2): Split the cond argument.
2379         (register_edge_assert_for_1): Adjust for the change in
2380         register_edge_assert_for_2.
2381         (register_edge_assert_for): Split the cond argument.
2382         (find_switch_asserts): Adjust for the change in
2383         register_edge_assert_for.
2384
2385 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
2386
2387         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
2388         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
2389         offsets for 64-bit mingw.
2390         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
2391         abi for x86_64-pc-mingw.
2392
2393 2008-04-02  Richard Guenther  <rguenther@suse.de>
2394
2395         * tree-vrp.c (extract_range_from_assert): Make sure to not
2396         produce range min/max with TREE_OVERFOW set.
2397         If merging a anti-range and a range keep the anti-range if
2398         the range covers all values of the type.
2399         (register_edge_assert_for_2): Only allow sign-changing
2400         conversions in detecting canonical range checks.  Also
2401         register an assert for the unsigned name if useful.
2402
2403         PR tree-optimization/35787
2404         * tree-vrp.c (vrp_val_max): New function.
2405         (vrp_val_min): Likewise.
2406         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
2407         (vrp_val_is_min): Likewise.
2408         (supports_overflow_infinity): Use vrp_val_{min,max}.
2409         (negative_overflow_infinity): Likewise.
2410         (positive_overflow_infinity): Likewise.
2411         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
2412         (is_positive_overflow_infinity): Likewise.
2413         (is_overflow_infinity): Likewise.
2414         (avoid_overflow_infinity): Use vrp_val_{min,max} and
2415         vrp_val_is_{min,max}.
2416         (set_and_canonicalize_value_range): Canonicalize anti-ranges
2417         to ranges if possible.  Avoid empty ranges.
2418
2419 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2420
2421         PR middle-end/35705
2422         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
2423         the expression is a function address.
2424
2425 2008-04-01  George Helffrich  <george@gcc.gnu.org>
2426
2427         PR fortran/35154, fortran/23057
2428         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
2429         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
2430         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
2431         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
2432         in common.
2433         (dbxout_syms): Check for COMMON-based symbol and wrap in
2434         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
2435         in bracket for efficiency.
2436
2437         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
2438         using DW_TAG_common_block + member offset.
2439         (add_pubname_string): New function.
2440         (dw_expand_expr): New function to find block name and offset for
2441         COMMON var.
2442         (common_check): New function to check whether symbol in Fortran COMMON.
2443         (gen_variable_die): If COMMON, use DW_TAG_common_block.
2444
2445 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
2446
2447         PR c/35436
2448         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
2449
2450 2008-04-02  Ben Elliston  <bje@au.ibm.com>
2451
2452         * config/v850/v850.md (casesi): Remove if (0) code.
2453         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
2454         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
2455
2456 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
2457
2458         * config/i386/i386.md (rex64suffix): New mode attribute.
2459         (floathi<mode>2): Disable expander for SSE math.
2460         (*floathi<mode>2_1): New insn insn_and_split pattern.
2461         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
2462         corresponding post-reload splitters.
2463         (*floathi<mode>2_i387): New macroized insn pattern.
2464         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
2465         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
2466         insn_and_split pattern.
2467         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
2468         New macroized instruction patterns and corresponding post-reload
2469         splitters.
2470         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
2471         and corresponding post-reload splitters.
2472         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
2473         New macroized instruction patterns.
2474         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
2475         macroized instruction patterns and corresponding post-reload splitters.
2476         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
2477         corresponding post-reload splitters.
2478         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
2479         New macroized instruction patterns.
2480         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
2481         corresponding post-reload splitters.
2482         (*floatsi<mode>2_i387): New macroized instruction patterns.
2483
2484 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
2485
2486         * config/i386/i386.md (smaxmin): New.
2487         (umaxmin): Likewise.
2488         (maxminiprefix): Likewise.
2489         (maxminfprefix): Likewise.
2490         (<code><mode>3): Likewise.
2491         (smin<mode>3): Removed.
2492         (smax<mode>3): Likewise.
2493
2494         * config/i386/mmx.md (mmx_<code>v2sf3): New.
2495         (mmx_<code>v4hi3): Likewise.
2496         (mmx_<code>v8qi3): Likewise.
2497         (mmx_smaxv2sf3): Removed.
2498         (mmx_sminv2sf3): Likewise.
2499         (mmx_umaxv8qi3): Likewise.
2500         (mmx_smaxv4hi3): Likewise.
2501         (mmx_uminv8qi3): Likewise.
2502         (mmx_sminv4hi3): Likewise.
2503
2504         * config/i386/sse.md (<addsub><mode>3): New.
2505         (*<addsub><mode>3): Likewise.
2506         (<sse>_vm<addsub><mode>3): Likewise.
2507         (<maxmin><mode>3): Likewise.
2508         (*<maxmin><mode>3_finite): Likewise.
2509         (*<maxmin><mode>3): Likewise.
2510         (<sse>_vm<maxmin><mode>3): Likewise.
2511         (sse3_h<addsub>v4sf3): Likewise.
2512         (sse3_h<addsub>v2df3): Likewise.
2513         (<maxmin>v16qi3): Likewise.
2514         (*<maxmin>v16qi3): Likewise.
2515         (<maxmin>v8hi3): Likewise.
2516         (*<maxmin>v8hi3): Likewise.
2517         (*sse4_1_<maxmin><mode>3): Likewise.
2518         (*sse4_1_<maxmin><mode>3): Likewise.
2519         (add<mode>3): Removed.
2520         (*add<mode>3): Likewise.
2521         (<sse>_vmadd<mode>3): Likewise.
2522         (sub<mode>3): Likewise.
2523         (*sub<mode>3): Likewise.
2524         (<sse>_vmsub<mode>3): Likewise.
2525         (smin<mode>3): Likewise.
2526         (*smin<mode>3_finite): Likewise.
2527         (*smin<mode>3): Likewise.
2528         (<sse>_vmsmin<mode>3): Likewise.
2529         (smax<mode>3): Likewise.
2530         (*smax<mode>3_finite): Likewise.
2531         (*smax<mode>3): Likewise.
2532         (<sse>_vmsmax<mode>3): Likewise.
2533         (sse3_haddv4sf3): Likewise.
2534         (sse3_haddv2df3): Likewise.
2535         (sse3_hsubv4sf3): Likewise.
2536         (sse3_hsubv2df3): Likewise.
2537         (umaxv16qi3): Likewise.
2538         (*umaxv16qi3): Likewise.
2539         (smaxv8hi3): Likewise.
2540         (*smaxv8hi3): Likewise.
2541         (*sse4_1_smax<mode>3): Likewise.
2542         (*sse4_1_umax<mode>3): Likewise.
2543         (uminv16qi3): Likewise.
2544         (*uminv16qi3): Likewise.
2545         (sminv8hi3): Likewise.
2546         (*sminv8hi3): Likewise.
2547         (*sse4_1_smin<mode>3): Likewise.
2548         (*sse4_1_umin<mode>3): Likewise.
2549
2550 2008-04-01  Rafael Espindola  <espindola@google.com>
2551
2552         * tree-cfg.c (verify_expr): remove in_phi.
2553         (verify_stmt): Don't call walk_tree with verify_expr. Use
2554         is_gimple_min_invariant instead of is_gimple_val.
2555
2556 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
2557
2558         * doc/include/gpl_v3.texi: Update for manpage generation.
2559         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
2560         gpl.texi.
2561         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
2562         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
2563         gpl_v3.texi instead of gpl.texi.
2564         (gpl.pod): New.
2565
2566 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
2567
2568         PR pch/13675
2569         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
2570
2571 2008-04-01  Rafael Espindola  <espindola@google.com>
2572
2573         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
2574         (extract_code_and_val_from_cond): Use
2575         extract_code_and_val_from_cond_with_ops.
2576
2577 2008-04-01  Jan Hubicka  <jh@suse.cz>
2578
2579         * function.c (free_after_compilation): Free epilogue_delay_list.
2580         (prepare_function_start): Assert that previous compilation was freed.
2581
2582 2008-04-01  Jan Hubicka  <jh@suse.cz>
2583             Jim Wilson  <wilson@tuliptree.org>
2584             Andreas Tobler <andreast@gcc.gnu.org>
2585
2586         PR middle-end/35781
2587         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
2588         rtl.emit instead cfun->emit.
2589         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
2590         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
2591
2592 2008-04-01  Ben Elliston  <bje@au.ibm.com>
2593
2594         * doc/c-tree.texi (Function Basics): Fix grammatical error.
2595
2596 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
2597
2598         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
2599         New options
2600         (fprofile-use): Add var flag_profile_use
2601         * coverage.c (coverage_begin_output): Do not open a gcno file for
2602         output only if -ftest-coverage is set.
2603         Do not add getpwd() to gcda file path.
2604         (build_gcov_info): Check the new flag
2605         flag_profile_datafile_relative_path.
2606         (coverage_init): Use profile_data_prefix.
2607         Read profile counter only if flag_profile_use is set.
2608         * opts.c (common_handle_option): New option fprofile-use=,
2609         fprofile-dir=, fprofile-generate=.
2610         * toplev.c (profile_data_prefix): New variable definition.
2611         * toplev.h (profile_data_prefix): New declaration.
2612         * doc/invoke.tex (Option Summary, Optimization Options):
2613         Add new options.
2614
2615 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
2616
2617         * varasm.c (output_constant_pool_1): In LABEL_REF check,
2618         use tmp consistently.
2619
2620         PR target/35695
2621         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
2622         * config/ia64/ia64.c (rtx_needs_barrier): Handle
2623         UNSPEC_FR_RECIP_APPROX_RES.
2624         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
2625
2626 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
2627
2628         PR c/35750
2629         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
2630
2631 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2632
2633         PR middle-end/30186
2634         * fold-const.c (fold_indirect_ref_1): Support accessing non first
2635         element of the vector via a pointer.
2636
2637 2008-03-31  Ian Lance Taylor  <iant@google.com>
2638
2639         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
2640
2641 2008-03-31  Jan Hubicka  <jh@suse.cz>
2642
2643         * builtins.c (expand_builtin_setjmp_receiver): Update call of
2644         get_arg_pointer_save_area.
2645         * expr.c (init_expr): Just clear out rtl.expr.
2646         * function.c (free_after_compilation): Clear out whole RTL structure.
2647         (get_func_frame_size): Merge into ...
2648         (get_frame_size): ... this one.
2649         (assign_stack_local_1): Merge into ...
2650         (assign_stack_local): ... this one.
2651         (expand_function_end): Update call of get_arg_pointer_save_area.
2652         (get_art_pointer_save_area): Remove cfun argument.
2653         * function.h (emit_status): regno_pointer_align does not need length
2654         attribute. Move x_regno_reg_rtx to ...
2655         (regno_reg_rtx): ... new global array.
2656         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
2657         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
2658         apply_args_value, forced_labels, stack_pointer_delta):
2659         Update accestors.
2660         (struct varasm_status): Move here from varasm.c
2661         (struct rtl_data): New. Move here some fields from struct function.
2662         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
2663         frame_offset, stack_check_probe_note, arg_pointer_save_area,
2664         used_temp_slots avail_temp_slots, temp_slot_level,
2665         nonlocal_goto_handler_labels): Update accesstors.
2666         (rtl): New global variable.
2667         (struct function): Move some fileds to rtl_data.
2668         (get_arg_pointer_save_area): Update prototype.
2669         * emit-rtl.c (rtl): Declare.
2670         (regno_reg_rtx): Declare.
2671         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
2672         Update.
2673         (gen_reg_rtx): Update.
2674         (init_virtual_regs): Do not tate emit_status argument.
2675         (init_emit): Do not allocate emit.
2676         * varasm.c (varasm_statuc): Move to function.h.
2677         (n_deferred_constatns): Update accestor.
2678         (init_varasm_status): Do not allocate varasm_status.
2679         (force_const_mem, get_pool_size, output_constant_pool): Update.
2680         * stmt.c (force_label_rtx): Do not use x_ prefixes.
2681         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
2682
2683 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
2684
2685         PR rtl-optimization/35729
2686         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
2687         references.
2688
2689 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
2690
2691         PR target/32000
2692         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
2693         load/store if memory is unaligned.
2694         (*movti_rex64): Likewise.
2695
2696         * config/i386/predicates.md (misaligned_operand): New.
2697
2698 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
2699
2700         PR tree-opt/35431
2701         * tree-ssa-phiopt.c (conditional_replacement): Return early for
2702         complex types.
2703
2704 2008-03-31  Jan Beulich  <jbeulich@novell.com>
2705
2706         * config/ia64/constraints.md: Add 'j' constraint.
2707         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
2708         (movdi_internal): Likewise.
2709
2710 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
2711
2712         PR c/35748
2713         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
2714
2715 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
2716
2717         PR target/35757
2718         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
2719         proper error message for the third argument on blendpd and
2720         blendps.
2721
2722         * config/i386/sse.md (blendbits): New.
2723         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
2724
2725 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
2726
2727         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
2728
2729 2008-03-30  Richard Guenther  <rguenther@suse.de>
2730
2731         PR middle-end/31023
2732         * fold-const.c (fold_sign_changed_comparison): Do leave
2733         conversions to base-types alone.
2734
2735 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2736
2737         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
2738         the link register if one altivec register is be saved.
2739
2740 2008-03-30  Ben Elliston  <bje@au.ibm.com>
2741
2742         * final.c (final_scan_insn): Remove if (0) code.
2743
2744 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
2745
2746         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
2747
2748 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
2749
2750         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
2751         of V4SFmode to ix86_binary_operator_ok.
2752
2753 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
2754
2755         * config/i386/i386.c (override_options): Initialize
2756         ix86_veclib_handler to ix86_veclibabi_svml when
2757         -mveclibabi=svml is used.
2758         (ix86_veclibabi_svml): New function for SVML ABI style
2759         vectorization support.
2760         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
2761
2762 2008-03-28  Rafael Espindola  <espindola@google.com>
2763
2764         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
2765         (tree_binary_nonnegative_warnv_p): Make it public.
2766         (tree_single_nonnegative_warnv_p): Make it public.
2767         (tree_invalid_nonnegative_warnv_p): Make it public.
2768         (tree_unary_nonzero_warnv_p): Make it public.
2769         (tree_binary_nonzero_warnv_p): Make it public
2770         (tree_single_nonzero_warnv_p): Make it public.
2771         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
2772         (extract_range_from_binary_expr): Split the expr argument.
2773         (extract_range_from_unary_expr): Split the expr argument.
2774         (extract_range_from_comparison): Split the expr argument.
2775         (extract_range_from_expr): Use the new aux functions.
2776         (vrp_evaluate_conditional_warnv): Use
2777         vrp_evaluate_conditional_warnv_with_ops.
2778         * tree.h (tree_unary_nonzero_warnv_p): Declare.
2779         (tree_binary_nonzero_warnv_p): Declare.
2780         (tree_single_nonzero_warnv_p): Declare.
2781         (tree_expr_nonzero_warnv_p): Declare.
2782         (tree_unary_nonnegative_warnv_p): Declare.
2783         (tree_binary_nonnegative_warnv_p): Declare.
2784         (tree_single_nonnegative_warnv_p): Declare.
2785         (tree_invalid_nonnegative_warnv_p): Declare.
2786
2787 2008-03-28  Richard Guenther  <rguenther@suse.de>
2788
2789         PR tree-optimization/30317
2790         PR tree-optimization/30911
2791         PR tree-optimization/34793
2792         * tree-vrp.c (set_and_canonicalize_value_range): New function.
2793         (struct assert_locus_d): New member EXPR.
2794         (register_new_assert_for): Add EXPR parameter to support
2795         ASSERT_EXPR <name, expr OP limit>.
2796         (register_edge_assert_for_1): Adjust callers.
2797         (find_assert_locations): Likewise.
2798         (process_assert_insertions_for): Build condition from expression.
2799         (extract_range_from_assert): Handle ASSERT_EXPRs
2800         of the form ASSERT_EXPR <name, expr OP limit>.
2801         (register_edge_assert_for_2): New helper registering
2802         asserts for comparisons.  Recognize range tests of the form
2803         (unsigned)i - CST1 OP CST2.
2804         (register_edge_assert_for_1): Use it.
2805         (register_edge_assert_for): Likewise.
2806         (needs_overflow_infinity): Integer sub-types
2807         do not need overflow infinities.
2808         (vrp_val_is_max): The extreme values of integer sub-types
2809         are those of the base type.
2810         (vrp_val_is_min): Likewise.
2811         * tree.def (ASSERT_EXPR): Document extra allowed conditional
2812         expressions.
2813
2814 2008-03-28  Nick Clifton  <nickc@redhat.com>
2815
2816         PR target/31110
2817         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
2818         Return GENERAL_REGS for stack adjustment reloads.
2819
2820 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2821
2822         PR target/31334
2823         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
2824         const_vector when all the vectors are constant.
2825
2826 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
2827
2828         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
2829         comparisons.
2830         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
2831         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
2832         (scc_sf): New.
2833         (s<code>_sf): Use new scc_sf attribute for opcode names.
2834
2835 2008-03-27  Tom Tromey  <tromey@redhat.com>
2836
2837         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
2838         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
2839         config/spu/t-spu-elf, config/i386/t-interix,
2840         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
2841         config/i386/x-darwin, config/i386/x-mingw32,
2842         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
2843         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
2844         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
2845         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
2846         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
2847         config/rs6000/x-darwin, config/rs6000/t-rs6000,
2848         config/score/t-score-elf, config/arm/t-strongarm-pe,
2849         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
2850         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
2851         Revert automatic dependency patch.
2852
2853 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2854
2855         PR target/35657
2856         * config/i386/i386.c (ix86_function_arg_boundary): Align
2857         decimal floating point to its natural boundary.
2858
2859 2008-03-27  Richard Guenther  <rguenther@suse.de>
2860
2861         PR middle-end/35716
2862         * fold-const.c (fold_comparison): Restrict distinct decl
2863         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
2864         solely rely on operand_equal_p.
2865
2866 2008-03-27  Richard Guenther  <rguenther@suse.de>
2867
2868         PR c/32511
2869         * c-common.c (handle_weak_attribute): Reject combination of
2870         weak and inline.
2871
2872 2008-03-27  Richard Guenther  <rguenther@suse.de>
2873
2874         PR tree-optimization/32810
2875         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
2876         conversions from DECL_INITIAL.
2877         (fold_const_aggregate_ref): Likewise from constructor elements.
2878
2879 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
2880
2881         * tree-affine.h (aff_combination_expand): Declare.
2882         (get_inner_reference_aff): Likewise.
2883         * tree-affine.c (aff_combination_expand): Split out from
2884         tree_to_aff_combination_expand.
2885         (get_inner_reference_aff): New function.
2886         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
2887         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
2888         (struct lim_aux_data): sm_done field removed.
2889         (mem_ref_loc_p, mem_ref_locs_p): New types.
2890         (struct mem_ref): Added id, stored, accesses_in_loop,
2891         indep_loop, dep_loop, indep_ref, dep_ref fields.
2892         Removed is_stored, locs and next fields.
2893         (memory_accesses): New variable.
2894         (movement_possibility): Do not allow moving statements
2895         that store to memory.
2896         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
2897         New functions.
2898         (determine_max_movement): For statements with memory references,
2899         find the outermost loop in that the reference is independent.
2900         (move_computations_stmt): Mark the virtual operands for renaming.
2901         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
2902         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
2903         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
2904         add_vop_ref_mapping, create_vop_ref_mapping_loop,
2905         create_vop_ref_mapping, analyze_memory_references,
2906         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
2907         get_all_locs_in_loop, ref_always_accessed_p,
2908         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
2909         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
2910         store_motion_loop, store_motion): New functions.
2911         (struct vop_to_refs_elt): New type.
2912         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
2913         memref_hash, memref_eq, hoist_memory_references): Rewritten.
2914         (schedule_sm): Replaced by...
2915         (execute_sm): ... this.
2916         (determine_lsm_ref, hoist_memory_references,
2917         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
2918         find_more_ref_vops, free_mem_ref, free_mem_refs,
2919         determine_lsm_loop, determine_lsm): Removed.
2920         (tree_ssa_lim_finalize): Free data structures used by store motion.
2921         (tree_ssa_lim): Call analyze_memory_references.  Use
2922         store_motion instead of determine_lsm.
2923
2924 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
2925
2926         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
2927         rename tmake_file to m68hc11/t-m68hc11.
2928         (mcore): Set inhibit_libc to true.
2929         * config.host (alpha*-dec-*vms*): Set extra_programs.
2930         (interix3*): Don't use host_xmake_file.
2931         * configure.ac: Let config.gcc override inhibit_libc.
2932         * configure: Regenerate.
2933
2934         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
2935         * config/t-openbsd-thread: Remove commented out lines.
2936         
2937         * config/x-interix: Remove.
2938
2939         * config/m68hc11/t-m68hc11-gas: Rename to...
2940         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
2941
2942         * config/mcore/t-mcore: Remove T_CFLAGS.
2943         * config/mcore/t-mcore-pe: Likewise.
2944
2945 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
2946
2947         * configure.ac: Replace custom __GNU_SOURCE test with
2948         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
2949         * aclocal.m4: Regenerate.
2950         * configure: Regenerate.
2951         * config.in: Regenerate.
2952
2953 2008-03-27  Richard Guenther  <rguenther@suse.de>
2954
2955         * fold-const.c (target.h): Include.
2956         (fold_comparison): Fold comparison of addresses of decls
2957         that bind locally or of constants.  Consolidate address folding code.
2958         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
2959         results from fold_binary_to_constant.
2960         (compare_values_warnv): Likewise.
2961
2962 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
2963
2964         PR middle-end/35429
2965         * fold-const.c (fold_truthop): Check for integeral types when folding
2966         a == 0 && b == 0 and a != 0 || b != 0 .
2967
2968 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
2969
2970         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
2971
2972 2008-03-26  Andreas Schwab  <schwab@suse.de>
2973
2974         * doc/invoke.texi: Fix use of @item vs. @itemx.
2975
2976 2008-03-26  Tom Tromey  <tromey@redhat.com>
2977
2978         * Makefile.in (build/gensupport.o, build/print-rtl.o,
2979         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
2980         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
2981         build/gencodes.o, build/genconditions.o, build/genconfig.o,
2982         build/genconstants.o, build/genemit.o, build/genextract.o,
2983         build/genflags.o, build/genmddeps.o, build/genopinit.o,
2984         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
2985         options.h.
2986
2987 2008-03-26  Richard Guenther  <rguenther@suse.de>
2988
2989         Revert
2990         2008-03-26  Richard Guenther  <rguenther@suse.de>
2991
2992         * fold-const.c (target.h): Include.
2993         (fold_comparison): Fold comparison of addresses of two decls
2994         that bind locally.  Consolidate address folding code.
2995
2996 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2997
2998         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
2999         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
3000         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
3001         dconstsqrt2, dconstthird, dconste and/or dconst10.
3002         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
3003         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
3004         dconstsqrt2, dconste): Delete.
3005         (init_emit_once): Likewise.  Simplify initializing dconstm1.
3006         Constify variable.
3007         * real.c (get_real_const): New.
3008         * real.h (dconst3, dconst10, dconstm2, dconstthird,
3009         dconstsqrt2, dconste): Delete.
3010         (real_value_const, get_real_const): New.
3011
3012 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
3013
3014         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
3015
3016         * config/i386/i386.c (ix86_function_arg_boundary): Check
3017         BIGGEST_ALIGNMENT instead of 128.
3018         (setup_incoming_varargs_64): Likewise.
3019
3020 2008-03-26  Tom Tromey  <tromey@redhat.com>
3021
3022         * Makefile.in (DEPFILES): Add missing '/'.
3023
3024 2008-03-26  Richard Guenther  <rguenther@suse.de>
3025
3026         * fold-const.c (target.h): Include.
3027         (fold_comparison): Fold comparison of addresses of two decls
3028         that bind locally.  Consolidate address folding code.
3029
3030 2008-03-26  Nick Clifton  <nickc@redhat.com>
3031
3032         PR target/31232
3033         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
3034         not allow INT+INT as a legitimate addressing mode.
3035
3036 2008-03-26  Richard Guenther  <rguenther@suse.de>
3037
3038         * tree-flow.h (widen_bitfield): Remove declaration.
3039         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
3040         (widen_bitfield): Remove function.
3041         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
3042         code.
3043
3044 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3045
3046         PR target/31558
3047         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
3048         error_mark_node's.
3049
3050 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
3051
3052         PR rtl-optimization/35232
3053         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
3054         (forget_old_reloads_1, forget_marked_reloads): Don't clear
3055         reg_reloaded_call_part_clobbered here.
3056         (reload_regs_reach_end_p): New function.
3057         (reload_reg_rtx_for_input): New variable.
3058         (reload_reg_rtx_for_output): Likewise.
3059         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
3060         when reassigning a pseudo register.  Load reloadreg from 
3061         reload_reg_rtx_for_input, moving the mode and register
3062         calculation to...
3063         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
3064         instead of the original when deciding whether an input reload
3065         would be a no-op or whether an output reload can be deleted.
3066         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
3067         when setting up new_spill_reg_store.  Load it from
3068         reload_reg_rtx_for_output, moving the mode and register
3069         calculation to...
3070         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
3071         instead of the original when deciding whether an output reload
3072         would be a no-op.  Do the same when modifying insn notes.
3073         Use rtx_equal_p instead of == to compare the registers.
3074         (inherit_piecemeal_p): Take a mode and two register numbers
3075         as argument.
3076         (emit_reload_insns): Clear new_spill_reg_store for every hard
3077         register in the reload register.  Remove spill registers
3078         from reg_reloaded_valid before considering whether to record
3079         inheritance information for them.  Use reload_reg_rtx_for_output
3080         instead of reg_rtx when recording output reloads.  Use
3081         reload_reg_rtx_for_input instead of reg_rtx when recording
3082         input reloads.  Set or clear reg_reloaded_call_part_clobbered
3083         at the same time as setting reg_reloaded_valid.
3084         (delete_output_reload): Add a new_reload_reg parameter and use it
3085         instead of rld[j].reg_rtx.
3086         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
3087         calls accordingly.
3088
3089 2008-03-25  Tom Tromey  <tromey@redhat.com>
3090
3091         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
3092         (build/genattr.o): Likewise.
3093         (build/genattrtab.o): Likewise.
3094         (build/gencodes.o): Likewise.
3095         (build/genconfig.o): Likewise.
3096         (build/genconstants.o): Likewise.
3097         (build/genemit.o): Likewise.
3098         (build/genextract.o): Likewise.
3099         (build/genflags.o): Likewise.
3100
3101 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
3102         
3103         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
3104         instead of size_int for integer types.
3105         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
3106         to match type of MINUS_EXPR.
3107         
3108 2008-03-25  Tom Tromey  <tromey@redhat.com>
3109
3110         * configure: Rebuilt.
3111         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
3112         Makefile.
3113
3114 2008-03-25  Tom Tromey  <tromey@redhat.com>
3115
3116         * config/x-solaris (host-solaris.o): Update.
3117         * config/x-linux (host-linux.o): Update.
3118         * config/x-hpux (host-hpux.o): Update.
3119         * config/x-darwin (host-darwin.o): Update.
3120         * config/v850/t-v850e (v850-c.o): Update.
3121         * config/v850/t-v850 (v850-c.o): Update.
3122         * config/t-vxworks (vxworks.o): Update.
3123         * config/t-sol2 (sol2-c.o, sol2.o): Update.
3124         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
3125         * config/spu/t-spu-elf (spu-c.o): Update.
3126         (spu.o): Remove.
3127         * config/sh/t-symbian (sh-c.o): Update.
3128         (symbian.o): Update.
3129         * config/sh/t-sh (sh-c.o): Update.
3130         * config/score/t-score-elf (score7.o, score3.o): Update.
3131         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
3132         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
3133         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
3134         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
3135         (rs6000.o): Remove.
3136         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
3137         * config/m32c/t-m32c (m32c-pragma.o): Update.
3138         * config/ia64/t-ia64 (ia64-c.o): Update.
3139         * config/i386/x-mingw32 (host-mingw32.o): Update.
3140         * config/i386/x-i386 (driver-i386.o): Update.
3141         * config/i386/x-darwin (host-i386-darwin.o): Update.
3142         * config/i386/x-cygwin (host-cygwin.o): Update.
3143         * config/i386/t-nwld (nwld.o): Update.
3144         * config/i386/t-netware (netware.o): Update.
3145         * config/i386/t-interix (winnt.o): Update.
3146         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
3147         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
3148         msformat-c.o): Update.
3149         * config/bfin/t-bfin-linux (generated_files): Add
3150         linux-sysroot-suffix.h.
3151         * config/arm/t-wince-pe (pe.o): Update.
3152         * config/arm/t-strongarm-pe (pe.o): Update.
3153         * config/arm/t-pe (pe.o): Update.
3154         * config/arm/t-arm (arm-c.o): Update.
3155         * doc/install.texi (Prerequisites): Require make 3.80.
3156         * Makefile.in: Remove .o targets.
3157         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
3158         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
3159         (simple_generated_h, simple_generated_c): Move earlier.
3160         (generated_files): New variable.
3161         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
3162         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
3163         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
3164         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
3165         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
3166         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
3167         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
3168         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
3169         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
3170         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
3171         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
3172         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
3173         (.c.o): Remove.
3174         (COMPILE.base, COMPILE): New variables.
3175         (%.o): New pattern rule.
3176         (ALL_HOST_OBJS): New variable.
3177         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
3178         (dummy-checksum.o, cc1-checksum.o): Remove.
3179         (DRIVER_SHLIB): New variable.
3180         (DRIVER_DEFINES): Use it.
3181         (gencondmd.c): Move out of build/.
3182         (s-conditions): Update.
3183         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
3184         (ALL_BUILD_OBJS): Likewise.
3185         (build/%.o): Use BUILDCOMPILE.
3186         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
3187         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
3188         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
3189         build/gencheck.o, build/gencodes.o, build/genconditions.o,
3190         build/genconfig.o, build/genconstants.o, build/genemit.o,
3191         build/genextract.o, build/genflags.o, build/genmddeps.o,
3192         build/genopinit.o, build/genoutput.o, build/genpeep.o,
3193         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
3194         build/gen-protos.o, build/scan.o, build/fix-header.o,
3195         build/scan-decls.o): Simplify.
3196         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
3197         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
3198         prefix.o, toplev.o): Reduce to variable setting.
3199         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
3200         ($(out_object_file), gcc-options.o): New targets.
3201         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
3202         * configure: Rebuilt.
3203         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
3204         * doc/sourcebuild.texi (Front End Directory): Document new variable.
3205
3206 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
3207
3208         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
3209         complain when we hit an error, return ERROR_MARK_NODE.
3210
3211 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
3212
3213         * config/sh/constraints.md (Pso, Psz): New constraints.
3214         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
3215         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
3216
3217 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
3218
3219         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
3220         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
3221
3222 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
3223
3224         * config/sh/sh.md (prefetch): Add condition for SH2A target.
3225         (prefetch_sh2a): New.   
3226
3227 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
3228             Naveen.H.S  <naveen.hs@kpitcummins.com>
3229
3230         * config/sh/constraints.md (I28): New constraint.
3231         * config/sh/sh.c (broken_move): Add support for movi20s.
3232         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
3233
3234 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
3235             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
3236             Naveen.H.S  <naveen.hs@kpitcummins.com>
3237
3238         * config/sh/sh.c (SH_ATTRIBUTES): Define.
3239         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
3240         (print_operand): Handle resbank in %@ operand code.
3241         (sh_encode_section_info): New.
3242         (push_regs): Add conditions for resbank.
3243         (sh_expand_epilogue): Likewise.
3244         (sh_insert_attributes): Likewise.
3245         (sh_attribute_table): Likewise.
3246         (sh_handle_resbank_handler_attribute): New.
3247         (sh2a_handle_function_vector_handler_attribute): New.
3248         (sh2a_is_function_vector_call): New.
3249         (sh2a_get_function_vector_number): New.
3250         (sh2a_function_vector_p): New.
3251         (sh_cfun_resbank_handler_p): New.
3252         * config/sh/sh.md (calli): Emit jsr/n if possible.
3253         (calli_tbr_rel): New.
3254         (calli_pcrel): Emit jsr/n if possible.
3255         (return_i): Emit rts/n if possible.
3256         (call_valuei_tbr_rel): New.
3257         (call_valuei_pcrel): Add condition for SH2A target.
3258         (call_value): Likewise.
3259         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
3260         (sh2a_get_function_vector_number): Likewise.
3261         (sh2a_is_function_vector_call): Likewise.
3262         * doc/extend.texi: Document TBR relative addressing of SH2A.
3263         (resbank): Add description for SH2A.
3264
3265 2008-03-24  Richard Guenther  <rguenther@suse.de>
3266
3267         PR c/22371
3268         * gimplify.c (gimplify_modify_expr): For frontend type-correct
3269         pointer assignments change conversions according to middle-end rules.
3270         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
3271         * configure.ac: Include type checking in yes.
3272         * configure: Regenerate.
3273
3274 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3275
3276         * diagnostic.c (diagnostic_count_diagnostic): Delete.
3277         (diagnostic_report_diagnostic): Update. Handle ICEs here.
3278         
3279 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
3280
3281         * gthr-vxworks.h (UNUSED): Define.
3282
3283 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
3284
3285         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
3286
3287 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
3288
3289         * doc/extend.texi (Function Attributes): Add missing comma in the
3290         example of the "alloc_size" attribute.
3291         
3292 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
3293
3294         Revert:
3295         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
3296
3297         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
3298         32bit host.
3299
3300         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
3301
3302         PR target/35496
3303         * stor-layout.c (update_alignment_for_field): Set minimum alignment
3304         of the underlying type of a MS bitfield layout to the natural
3305         alignment of the type.
3306
3307         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
3308
3309         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
3310         to their natural alignment to avoid store forwarding stalls.
3311
3312 2008-03-22  Richard Guenther  <rguenther@suse.de>
3313
3314         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
3315         For PHI nodes verify the address is invariant.
3316         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
3317         (get_symbol_constant_value): Use is_gimple_min_invariant.
3318         (maybe_fold_stmt_indirect): Likewise.
3319
3320 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
3321
3322         PR rtl-optimization/33927
3323         * Makefile.in (dse.o): Depend on $(TM_P_H).
3324         * expr.h (extract_low_bits): Declare.
3325         * expmed.c (extract_low_bits): New function.
3326         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
3327         * dse.c: Include tm_p.h.
3328         (find_shift_sequence): Remove the read_reg argument and return the
3329         read value.  Emit the instructions instead of returning them.
3330         Iterate on new_mode rather than calculating it each time.
3331         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
3332         source to NEW_MODE and extract_low_bits to convert the shifted
3333         value to READ_MODE.
3334         (replace_read): Allow the load and store to have different mode
3335         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
3336         or extraction instructions before trying the replacement.  Update
3337         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
3338
3339 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
3340
3341         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
3342         to their natural alignment to avoid store forwarding stalls.
3343
3344 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3345
3346         PR target/27946
3347         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
3348         encouraging but not allowing gprs for input;
3349         change the input constraint to !f#r.
3350         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
3351         gprs for output;
3352         change the output constraint to !f#r.
3353
3354 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
3355
3356         PR target/13958
3357         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
3358         corresponding post-reload splitters.
3359         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
3360         when x87 FP math is selected.
3361         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
3362         New function prototype.
3363         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
3364         unreachable function to ease macroization of insn patterns.
3365
3366 2008-03-21  Martin Jambor  <mjambor@suse.cz>
3367
3368         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
3369         reference dumps if ddr is NULL or dependence is unknown.
3370
3371 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3372
3373         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
3374         unsigned extension into account.
3375         (ATOMIC_COMPARE_AND_SWAP): Likewise.
3376         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
3377         Do computations on a scratch register.
3378
3379 2008-03-21  Richard Guenther  <rguenther@suse.de>
3380
3381         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
3382         Use is_gimple_min_invariant instead of TREE_INVARIANT.
3383         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
3384         * tree-ssa-dom.c (record_equality): Likewise.
3385         * tree-inline.c (copy_body_r): Likewise.
3386         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
3387         TREE_INVARIANT.
3388
3389 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3390
3391         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
3392         as 'delete_unused' argument.
3393
3394 2008-03-20  Richard Guenther  <rguenther@suse.de>
3395
3396         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
3397         special casing of constant qualifiers.
3398         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
3399         care about them in general.
3400         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
3401         regardless of their type.
3402         (fold_stmt_r): Forcefully fold *& if we end up with that.
3403
3404 2008-03-20  Paul Brook  <paul@codesourcery.com>
3405
3406         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
3407         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
3408         linker flags.
3409         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
3410         definition.
3411         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
3412         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
3413
3414 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
3415
3416         * common.opt (Wmudflap): New option.
3417         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
3418         (mx_register_decls): Likewise.
3419         (mudflap_finish_file): Likewise.
3420         * doc/invoke.texi: Document -Wno-mudflap.
3421
3422 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
3423
3424         * c-format.c (replace_format_name_to_system_name): New.
3425         (cmp_attribs): New.
3426         (convert_format_name_to_system_name): New.
3427         (decode_format_attr): Add use of convert_format_name_to_system_name.
3428         (format_types_orig): Add gnu_ prefix to names.
3429         (check_format_info_main): Special treating of \0 escaped names for
3430         supporting multi-character format specifiers as I32, I64.
3431         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
3432         (gnu_target_overrides_format_attributes): New.
3433         * c-format.h: Add structure target_ovr_attr to hold
3434         system specific formatter names.
3435         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
3436         msformat-c.o file to c_target_objs and cxx_target_objs.
3437         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
3438         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
3439         (TARGET_N_FORMAT_TYPES): New.
3440         * config/i386/msformat-c.c: New.
3441         * config/i386/t-cygming: Add build rule for msformat-c.o.
3442         * doc/extend.texi: Add new format names gnu_* and ms_* and
3443         further details.
3444         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
3445
3446 2008-03-20  Ira Rosen  <irar@il.ibm.com>
3447
3448         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
3449         optimizations turned on under -O3.
3450         (ftree-vectorize): Add that the flag is turned on with -O3.
3451
3452 2008-03-20  Ben Elliston  <bje@au.ibm.com>
3453
3454         * regmove.c (try_auto_increment): Fix spelling error in comment.
3455         * final.c (final_scan_insn): Likewise.
3456
3457 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
3458
3459         PR target/14552
3460         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
3461         allocator preferences for "y" and "r" class registers.
3462         ("*mov<mode>_internal"): Ditto.
3463         ("*movv2sf_internal_rex64"): Ditto.
3464         ("*movv2sf_internal"): Ditto.
3465
3466 2008-03-19  Michael Matz  <matz@suse.de>
3467
3468         PR middle-end/35616
3469         * calls.c (expand_call): Check overlap of arguments with call
3470         address for sibcalls.
3471
3472 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
3473
3474         PR target/35496
3475         * stor-layout.c (update_alignment_for_field): Set minimum alignment
3476         of the underlying type of a MS bitfield layout to the natural
3477         alignment of the type.
3478
3479 2008-03-19  Jan Hubicka  <jh@suse.cz>
3480
3481         PR other/35094
3482         * toplev.c (decode_d_option): Handle all CPP flags.
3483         * tree-vrp.c: Update tree_pass descriptors.
3484         * regrename.c: Update tree_pass descriptors.
3485         * fwprop.c: Update tree_pass descriptors.
3486         * doc/invoke.texi: Remove documentation of dropped -d? flags.
3487         * tree-into-ssa.c: Update tree_pass descriptors.
3488         * tree-dump.c: Update tree_pass descriptors.
3489         * tree-complex.c: Update tree_pass descriptors.
3490         * tree-dump.h: Update tree_pass descriptors.
3491         * see.c: Update tree_pass descriptors.
3492         * cgraphbuild.c: Update tree_pass descriptors.
3493         * tracer.c: Update tree_pass descriptors.
3494         * tree-loop-distribution.c: Update tree_pass descriptors.
3495         * cgraph.c: Update tree_pass descriptors.
3496         * postreload-gcse.c: Update tree_pass descriptors.
3497         * postreload.c: Update tree_pass descriptors.
3498         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
3499         * tree-tailcall.c: Update tree_pass descriptors.
3500         * tree-pass.h (tree_opt_pass): Rename to ...
3501         (opt_pass) ... this one; add "type" field and remove letter field.
3502         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
3503         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
3504         all_lowering_passes): Update declaration.
3505         * ipa-cp.c: Update tree_pass descriptors.
3506         * final.c: Update tree_pass descriptors.
3507         * omp-low.c: Update tree_pass descriptors.
3508         * tree-ssa-dse.c: Update tree_pass descriptors.
3509         * ipa-reference.c: Update tree_pass descriptors.
3510         * tree-ssa-uncprop.c: Update tree_pass descriptors.
3511         * auto-inc-dec.c: Update tree_pass descriptors.
3512         * reorg.c: Update tree_pass descriptors.
3513         * cgraphunit.c: Update tree_pass descriptors.
3514         * tree-ssa-copyrename.c: Update tree_pass descriptors.
3515         * tree-ssa-ccp.c: Update tree_pass descriptors.
3516         * df-core.c: Update tree_pass descriptors.
3517         * mode-switching.c: Update tree_pass descriptors.
3518         * tree-nomudflap.c: Update tree_pass descriptors.
3519         * modulo-sched.c: Update tree_pass descriptors.
3520         * ipa-pure-const.c: Update tree_pass descriptors.
3521         * cse.c: Update tree_pass descriptors.
3522         * web.c: Update tree_pass descriptors.
3523         * tree-stdarg.c: Update tree_pass descriptors.
3524         * tree-ssa-math-opts.c: Update tree_pass descriptors.
3525         * tree-ssa-dom.c: Update tree_pass descriptors.
3526         * tree-nrv.c: Update tree_pass descriptors.
3527         * tree-ssa-alias.c: Update tree_pass descriptors.
3528         * loop-init.c: Update tree_pass descriptors.
3529         * gimple-low.c: Update tree_pass descriptors.
3530         * ipa-inline.c: Update tree_pass descriptors.
3531         * tree-ssa-sink.c: Update tree_pass descriptors.
3532         * global.c: Update tree_pass descriptors.
3533         * ifcvt.c: Update tree_pass descriptors.
3534         * jump.c: Update tree_pass descriptors.
3535         * predict.c: Update tree_pass descriptors.
3536         * tree-ssa-loop.c: Update tree_pass descriptors.
3537         * recog.c: Update tree_pass descriptors.
3538         * dse.c: Update tree_pass descriptors.
3539         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
3540         * tree-eh.c: Update tree_pass descriptors.
3541         * regmove.c: Update tree_pass descriptors.
3542         * local-alloc.c
3543         * function.c: Update tree_pass descriptors.
3544         * tree-vectorizer.c: Update tree_pass descriptors.
3545         * gcse.c: Update tree_pass descriptors.
3546         * ipa-type-escape.c: Update tree_pass descriptors.
3547         * tree-if-conv.c: Update tree_pass descriptors.
3548         * init-regs.c: Update tree_pass descriptors.
3549         * ipa.c: Update tree_pass descriptors.
3550         * tree-ssa-phiopt.c: Update tree_pass descriptors.
3551         * rtl-factoring.c: Update tree_pass descriptors.
3552         * lower-subreg.c: Update tree_pass descriptors.
3553         * bt-load.c: Update tree_pass descriptors.
3554         * tree-dfa.c: Update tree_pass descriptors.
3555         * except.c: Update tree_pass descriptors.
3556         * emit-rtl.c: Update tree_pass descriptors.
3557         * cfgexpand.c: Update tree_pass descriptors.
3558         * tree-cfgcleanup.c: Update tree_pass descriptors.
3559         * cfgcleanup.c: Update tree_pass descriptors.
3560         * tree-ssa-pre.c: Update tree_pass descriptors.
3561         * tree-sra.c: Update tree_pass descriptors.
3562         * tree-mudflap.c: Update tree_pass descriptors.
3563         * tree-ssa-copy.c: Update tree_pass descriptors.
3564         * cfglayout.c: Update tree_pass descriptors.
3565         * tree-ssa-forwprop.c: Update tree_pass descriptors.
3566         * tree-ssa-dce.c: Update tree_pass descriptors.
3567         * tree-ssa.c: Update tree_pass descriptors.
3568         * regclass.c: Update tree_pass descriptors.
3569         * integrate.c: Update tree_pass descriptors.
3570         * tree-optimize.c: Update tree_pass descriptors.
3571         * tree-ssa-phiprop.c: Update tree_pass descriptors.
3572         * tree-object-size.c: Update tree_pass descriptors.
3573         * combine.c: Update tree_pass descriptors.
3574         * tree-outof-ssa.c: Update tree_pass descriptors.
3575         * bb-reorder.c: Update tree_pass descriptors.
3576         * stack-ptr-mod.c: Update tree_pass descriptors.
3577         * var-tracking.c: Update tree_pass descriptors.
3578         * tree-profile.c: Update tree_pass descriptors.
3579         * tree-vect-generic.c: Update tree_pass descriptors.
3580         * reg-stack.c: Update tree_pass descriptors.
3581         * sched-rgn.c: Update tree_pass descriptors.
3582         * tree-ssa-structalias.c: Update tree_pass descriptors.
3583         * tree-cfg.c: Update tree_pass descriptors.
3584         * passes.c (current_pass): Update declaration.
3585         (finish_optimization_passes): Update.
3586         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
3587         (register_one_dump_file, register_dump_files_1, next_pass_1):
3588         Update arguments.
3589         (init_optimization_passes): Update handling of new types.
3590         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
3591         * ipa-struct-reorg.c: Update tree_pass descriptors.
3592         * tree-ssa-reassoc.c: Update tree_pass descriptors.
3593         * combine-stack-adj.c: Update tree_pass descriptors.
3594         * cfgrtl.c: Update tree_pass descriptors.
3595         * dce.c: Update tree_pass descriptors.
3596         * tree-ssanames.c: Update tree_pass descriptors.
3597
3598 2008-03-19  Richard Guenther  <rguenther@suse.de>
3599
3600         PR middle-end/35609
3601         * tree-ssa.c (walk_data): New structure.
3602         (warn_uninitialized_var): If not always_executed warn with "maybe"
3603         instead of "is".
3604         (execute_early_warn_uninitialized): Compute post-dominators.
3605         Initialize always_executed before processing each basic block.
3606
3607 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
3608
3609         PR target/35504
3610         * config/i386/i386.c (x86_this_parameter): Calculate correct location
3611         of "this" pointer when "regparm = N" or "fastcall" is in effect.
3612
3613 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3614
3615         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
3616
3617 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
3618
3619         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
3620         is true.
3621         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
3622         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
3623         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
3624         target after ignore has been set, and move there also the commputation
3625         of subtarget and original_target.
3626         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
3627         (LANG_HOOKS_INITIALIZER): Remove it.
3628         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
3629
3630 2008-03-18  Richard Guenther  <rguenther@suse.de>
3631
3632         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
3633         found an expression with constants, note that in the VN for the lhs.
3634         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
3635         fold them to constants if possible.  Run cleanup_cfg if done so.
3636         (execute_pre): Return todo.
3637         (do_pre): Likewise.
3638         (execute_fre): Likewise.
3639         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
3640         of constants.
3641         (get_prop_source_stmt): Look through pointer conversions.
3642
3643 2008-03-18  Jan Hubicka  <jh@suse.cz>
3644
3645         * tree-pretty-print.c: Include predict.h.
3646         (dump_generic_node): Dump predictor.
3647         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
3648         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
3649         * gimple-low.c (lower_stmt): Likewise.
3650         * expr.c (expand_expr_real): Likewise.
3651         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
3652         them.
3653         (build_predict_expr, build_predict_expr): New.
3654         * predict.h (predictor_name, build_predict_expr): Update.
3655         * c-typeck.c (c_finish_bc_stmt): Add prediction.
3656         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
3657         * predict.def (PRED_CONTINUE): Update hitrate.
3658         * tree.def (PREDICT_EXPR): Define.
3659         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
3660         do not handle BIND_EXPR.
3661         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
3662         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
3663         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
3664         operands.
3665
3666 2008-03-18  Michael Matz  <matz@suse.de>
3667
3668         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
3669
3670 2008-03-18  Richard Guenther  <rguenther@suse.de>
3671
3672         * tree-gimple.h (is_gimple_invariant_address): Declare.
3673         (is_gimple_constant): Likewise.
3674         * tree-gimple.c (is_gimple_constant): New function.
3675         (is_gimple_invariant_address): Likewise.
3676         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
3677         and is_gimple_invariant_address.
3678         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
3679         previous change.
3680         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
3681         an addressable base.
3682
3683 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
3684
3685         PR middle-end/35611
3686         * gimplify.c (gimplify_expr): Gimplify second operand of
3687         OMP_ATOMIC_LOAD.
3688
3689 2008-03-17  Richard Guenther  <rguenther@suse.de>
3690
3691         PR tree-optimization/19637
3692         * fold-const.c (fold_unary): Remove restrictions of removing
3693         intermediate pointer-conversions (P2)(P1)P0.
3694         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
3695         conversion to void pointer.
3696         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
3697
3698 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
3699
3700         PR debug/31510
3701         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
3702         emulated thread local variables.
3703
3704 2008-03-16  Richard Guenther  <rguenther@suse.de>
3705
3706         PR middle-end/35607
3707         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
3708         expand TREE_INVARIANT operations that are not gimple invariant.
3709
3710 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
3711
3712         * doc/extend.texi (Alignment): Say that the ABI controls
3713         the __alignof__ for non-strict-alignment targets rather
3714         than being a recommendation.
3715
3716 2008-03-15  Paul Brook  <paul@codesourcery.com>
3717
3718         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
3719         annotations.
3720         (arm_output_fn_unwind): Mark functions that can not be unwound.
3721
3722 2008-03-15  Paul Brook  <paul@codesourcery.com>
3723
3724         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
3725         extension instructions.
3726
3727 2008-03-15  Richard Guenther  <rguenther@suse.de>
3728
3729         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
3730         and fold constant aggregate refs.
3731         (fold_const_aggregate_ref): Handle string constants
3732         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
3733         (evaluate_stmt): Simplify now that ccp_fold folds constant
3734         aggregate refs.
3735
3736 2008-03-15  Paul Brook  <paul@codesourcery.com>
3737
3738         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
3739         (extzv): Use gen_extzv_t2.
3740         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
3741
3742 2008-03-15  Richard Guenther  <rguenther@suse.de>
3743
3744         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
3745         (fold_const_aggregate_ref): Likewise.
3746         (get_value): Return NULL if we don't have any values.
3747         (ccp_finalize): Set const_val to NULL after freeing it.
3748         * tree-flow.h (get_symbol_constant_value): Declare.
3749         (fold_const_aggregate_ref): Likewise.
3750         * tree-ssa-sccvn.c (try_to_simplify): Use them.
3751
3752 2008-03-15  Richard Guenther  <rguenther@suse.de>
3753
3754         PR middle-end/35593
3755         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
3756         to not produce negative array indices if not allowed.  Add
3757         parameter to indicate that.
3758         (maybe_fold_offset_to_component_ref): Allow negative array
3759         indices only for the first member of a structure.
3760         (maybe_fold_offset_to_reference): Allow negative array indices.
3761         (maybe_fold_stmt_addition): Likewise.
3762
3763 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
3764             Anatoly Sokolov <aesok@post.ru>
3765
3766         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
3767         (avr_arch): Add ARCH_AVR6.
3768         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
3769         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
3770         instead of fixed value 2.
3771         (print_operand_address): Use gs() asm specifier instead of pm().
3772         (avr_assemble_integer): (Ditto.).
3773         (avr_output_addr_vec_elt): (Ditto.).
3774         (print_operand): Handle "!" code.
3775         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
3776         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
3777         (AVR_HAVE_EIJMP_EICALL): Define.
3778         (AVR_3_BYTE_PC): Redefine.
3779         (AVR_2_BYTE_PC): (Ditto.).
3780         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
3781         (LINK_SPEC): Add atmega2560 and atmega2561.
3782         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
3783         (crtm2561.o).
3784         * config/avr/avr.md (call_insn): Use eicall instead of icall 
3785         for 3 byte PC devices.
3786         (call_value_insn): (Ditto.).
3787         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
3788         (indirect_jump): Use only for for 2 byte PC devices.
3789         (*tablejump): (Ditto.).
3790         (*indirect_jump_avr6): Add insn.
3791         (*tablejump_rjmp): Don't use for 3 byte PC devices.
3792         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
3793         instead of ijmp for 3 byte PC devices.
3794         (__tablejump2__): (Ditto.).
3795         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
3796         (MULITLIB_DIRNAMES): (Ditto.). 
3797         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
3798
3799 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
3800
3801         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
3802         "sse2_umulsidi3".  Use V1DI mode for operand 0.
3803         ("mmx_psadbw"): Use V1DI mode for operand 0.
3804         * config/i386/i386-modes.def (V1SI): New vector mode.
3805         * config/i386/i386.c (struct builtin_description)
3806         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
3807         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
3808         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
3809         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
3810         v1di_ftype_v8qi_v8qi type.
3811         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
3812
3813         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
3814         __builtin_ia32_pmuludq]: Fix the mode of return value.
3815
3816 2008-03-15  Richard Guenther  <rguenther@suse.de>
3817
3818         PR middle-end/35595
3819         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
3820         being a PHI_NODE.
3821
3822 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
3823         
3824         * doc/invoke.texi (Option Summary, Xtensa Options): Document
3825         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
3826         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
3827         unless TARGET_SERIALIZE_VOLATILE is enabled.
3828         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
3829         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
3830         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
3831
3832 2008-03-14  Richard Guenther  <rguenther@suse.de>
3833
3834         PR tree-optimization/34172
3835         * tree-flow.h (refs_may_alias_p): Declare.
3836         (get_single_def_stmt): Likewise.
3837         (get_single_def_stmt_from_phi): Likewise.
3838         (get_single_def_stmt_with_phi): Likewise.
3839         * tree-dfa.c (refs_may_alias_p): New function.
3840         (get_single_def_stmt): Likewise.
3841         (get_single_def_stmt_from_phi): Likewise.
3842         (get_single_def_stmt_with_phi): Likewise.
3843         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
3844         (vn_reference_lookup_1): New helper function.
3845         (vn_reference_lookup): Walk the virtual use-def chain to
3846         continue searching for a match if the def does not alias the
3847         reference we are looking for.
3848
3849 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
3850
3851         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
3852         archive and Perzl.  Update The Written Word listing.
3853
3854 2008-03-14  Richard Guenther  <rguenther@suse.de>
3855
3856         PR tree-optimization/34043
3857         PR tree-optimization/33989
3858         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
3859         when doing FRE.
3860         (bitmap_find_leader): Use extra argument to verify dominance
3861         relationship inside a basic-block.
3862         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
3863         (find_leader_in_sets): Adjust.
3864         (create_component_ref_by_pieces): Take extra argument for
3865         dominance check, handle lookup failures.
3866         (find_or_generate_expression): Likewise.
3867         (create_expression_by_pieces): Likewise.
3868         (insert_into_preds_of_block): Adjust.
3869         (create_value_expr_from): If asked for, verify all operands
3870         are in the blocks AVAIL_OUT set.
3871         (make_values_for_stmt): Check for SSA_NAMEs that are life
3872         over an abnormal edge.
3873         (compute_avail): Remove such check.
3874         (do_SCCVN_insertion): New function.
3875         (eliminate): If we do not find a leader suitable for replacement
3876         insert a replacement expression from SCCVN if available.
3877         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
3878         (struct vn_ssa_aux): Add needs_insertion flag.
3879         * tree-ssa-sccvn.c (may_insert): New global flag.
3880         (copy_reference_ops_from_ref): Value-number union member access
3881         based on its size, not type and member if insertion is allowed.
3882         (visit_reference_op_load): For a weak match from union type
3883         punning lookup a view-converted value and insert a SSA_NAME
3884         for that value if that is not found.
3885         (visit_use): Make dumps shorter.  Do not disallow value numbering
3886         SSA_NAMEs that are life over an abnormal edge to constants.
3887         (free_scc_vn): Release inserted SSA_NAMEs.
3888         (run_scc_vn): New flag to specify whether insertion is allowed.
3889         Process SSA_NAMEs in forward order.
3890         * tree-ssa-loop-im.c (for_each_index): Handle invariant
3891         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
3892         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
3893         pointer type to/from integral types that do not change the
3894         precision to regular conversions.
3895
3896 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
3897
3898         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
3899         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
3900         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
3901         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
3902         input arguments and the mode of return value.  Built-in functions
3903         that operate on whole 64-bit MMX register now use V1DI mode.
3904
3905 2008-03-13  Alon Dayan  <alond@il.ibm.com>
3906             Olga Golovanevsky  <olga@il.ibm.com>
3907
3908         PR tree-optimization/35041
3909         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
3910         to locate the right position in a statement.
3911
3912 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
3913
3914         PR target/34000
3915         PR target/35553
3916         * config/i386/xmmintrin.h:  Change all static inline functions to
3917         extern inline and add __gnu_inline__ attribute.
3918         * config/i386/bmintrin.h: Ditto.
3919         * config/i386/smmintrin.h: Ditto.
3920         * config/i386/tmmintrin.h: Ditto.
3921         * config/i386/mmintrin-common.h: Ditto.
3922         * config/i386/ammintrin.h: Ditto.
3923         * config/i386/emmintrin.h: Ditto.
3924         * config/i386/pmmintrin.h: Ditto.
3925         * config/i386/mmintrin.h: Ditto.
3926         * config/i386/mm3dnow.h: Ditto.
3927
3928 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
3929
3930         PR middle-end/35185
3931         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
3932         (lower_omp_2): New function.
3933         (lower_omp_1, lower_omp): Rewritten.
3934
3935 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
3936
3937         PR 35054
3938         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
3939         with the phrase "Microsoft Windows compilers".
3940         (Push/Pop Macro Pragmas): New subsection. Document
3941         #pragma push_macro and pragma pop_macro.
3942
3943 2008-03-12  Paul Brook  <paul@codesourcery.com>
3944
3945         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
3946
3947 2008-03-12  Paul Brook  <paul@codesourcery.com>
3948
3949         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
3950         (thumb2_alusi3_short): Exclude PLUS and MINUS.
3951         (thumb2_addsi_shortim): Rename ...
3952         (thumb2_addsi_short): ... to this.  Allow register operands.
3953         (thumb2_subsi_short): New pattern.
3954         (thumb2_one_cmplsi2_short,
3955         thumb2_negsi2_short): New patterns and peepholes.
3956
3957 2008-03-12  Paul Brook  <paul@codesourcery.com>
3958
3959         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
3960
3961 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
3962
3963         * config/i386/i386.md (int_cond): New code iterator.
3964         (fp_cond): Ditto.
3965         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
3966         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
3967         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
3968         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
3969         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
3970         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
3971         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
3972         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
3973
3974 2008-03-12  Paul Brook  <paul@codesourcery.com>
3975
3976         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
3977         instead of {arm,thumb}_compute_save_reg_mask.
3978         (output_return_instruction): Ditto.
3979         (thumb_unexpanded_epilogue): Ditto.
3980         (thumb1_expand_prologue): Ditto.
3981         (thumb1_output_function_prologue): Ditto.
3982         (arm_set_return_address): Ditto.
3983         (thumb_set_return_address): Ditto.
3984         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
3985         regs to achieve stack alignment.
3986         (thumb1_compute_save_reg_mask): Fix compiler warning.
3987         (arm_output_epilogue): Use offsets->saved_regs_mask.
3988         Adjust stack pointer by poping call clobered registers.
3989         (arm_expand_prologue): Use offsets->saved_regs_mask.
3990         Adjust stack pointer by pushing extra registers.
3991         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
3992
3993 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
3994
3995         PR tree-opt/35422
3996         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
3997         conversion to the operands of a multiplication.
3998
3999 2008-03-12  Richard Guenther  <rguenther@suse.de>
4000
4001         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
4002         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
4003         * timevar.def (TV_TREE_PHIPROP): Add.
4004         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
4005         pass description.  Use TV_TREE_PHIPROP.
4006         * tree-ssa-forwprop.c: Remove phiprop code.
4007
4008 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
4009
4010         PR middle-end/35549
4011         * omp-low.c (maybe_lookup_decl): Constify first argument.
4012         (use_pointer_for_field): Change last argument from bool to
4013         omp_context *.  Disallow shared copy-in/out in nested
4014         parallel if decl is shared in outer parallel too.
4015         (build_outer_var_ref, scan_sharing_clauses,
4016         lower_rec_input_clauses, lower_copyprivate_clauses,
4017         lower_send_clauses, lower_send_shared_vars): Adjust callers.
4018
4019 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
4020             Ira Rosen  <irar@il.ibm.com>
4021
4022         * tree-vectorizer.c (free_stmt_vec_info): New function.
4023         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
4024         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
4025         * tree-vectorizer.h (free_stmt_vec_info): Declare.
4026         * tree-vect-transform.c (vectorizable_conversion): Free
4027         vec_oprnds0 if it was allocated.
4028         (vect_permute_store_chain): Remove unused VECs.
4029         (vectorizable_store): Free VECs that are allocated in the..
4030         function.
4031         (vect_transform_strided_load, vectorizable_load): Likewise.
4032         (vect_remove_stores): Simplify the code.
4033         (vect_transform_loop): Move code to vect_remove_stores().
4034         Call vect_remove_stores() and free_stmt_vec_info().
4035
4036 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4037
4038         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
4039         TARGET_HPUX.  Revise comment.
4040         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
4041         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
4042         Use sr4 variant of `be' instruction when not generating PIC code.
4043         (attr_length_call): Adjust for above change.
4044
4045 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4046
4047         * ipa-reference.c (static_execute): Remove module_statics_const and
4048         associated setting code.
4049
4050 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
4051
4052         PR target/35540
4053         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
4054         predicate for operand 1.
4055         (paritysi2_cmp): Use register_operand predicate for operand 2.
4056         Use earlyclobber modifier for operand 1.  Remove support for
4057         memory operands.
4058         (paritydi2_cmp): Use register_operand predicate for operand 3.
4059         Use earlyclobber modifier for operand 1.  Remove support for
4060         memory operands.
4061
4062 2008-03-11  Paul Brook  <paul@codesourcery.com>
4063             Vladimir Prus  <vladimir@codesourcery.com>
4064
4065         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
4066         (arm_compute_save_reg0_reg12_mask): Always
4067         check if register 11 must be saved.  Always safe hard frame pointer
4068         when frame_pointer_needeed.
4069         (arm_compute_save_reg_mask): Save IP and PC
4070         only with apcs frames.
4071         (arm_output_epilogue): Adjust Thumb2 codepath to
4072         be also invoked and work for ARM non-apcs frames.
4073         (arm_expand_prologue): Don't bother saving IP
4074         for non-apcs frame, since it's not clobbered by
4075         prologue code.  Implement non-apcs frame
4076         layout.
4077
4078 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
4079
4080         PR rtl-optimization/35281
4081         * expr.c (convert_move): Use a new pseudo for the intermediate
4082         from_mode->word_mode result.
4083
4084 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
4085
4086         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
4087         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
4088         * toplev.c (compile_file): Don't call it.
4089
4090 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
4091
4092         PR middle-end/35526
4093         * expr.c (store_expr): Call emit_block_move if the mode
4094         of "temp" RTX is BLKmode.
4095
4096 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4097             Richard Guenther  <rguenther@suse.de>
4098
4099         PR tree-optimization/31358
4100         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
4101         the step with a NULL_TREE.
4102         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
4103         to sizetype if type is a pointer type.
4104         (add_candidate_1): Don't convert the base and step to
4105         the generic type if the orginal type is a pointer type.
4106         (add_iv_value_candidates): Use sizetype for the step
4107         if type is a pointer type.
4108         (cand_value_at): Likewise.
4109         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
4110         for pointer types.
4111         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
4112         Don't convert the tem affine to the type.
4113         (add_elt_to_tree): Use sizetype for the step if a pointer.
4114         Use POINTER_PLUS_EXPR for pointers.
4115         (aff_combination_to_tree): Use sizetype for the step if a
4116         pointer.
4117
4118 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
4119
4120         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
4121         Remove commutativity hint.
4122
4123 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
4124
4125         PR c/35438
4126         PR c/35439
4127         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
4128         errorneous type.  Check that v is a VAR_DECL.
4129
4130         PR middle-end/35099
4131         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
4132
4133 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
4134
4135         PR tree-optimization/35494
4136         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
4137         may be overriden at link and run time.
4138
4139 2008-03-10  Richard Guenther  <rguenther@suse.de>
4140
4141         PR tree-optimization/34677
4142         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
4143         (poolify_tree): Likewise.
4144         (modify_expr_template): Likewise.
4145         (poolify_modify_stmt): Likewise.
4146         (insert_fake_stores): Handle all component-ref style stores
4147         in addition to INDIRECT_REF.  Also handle complex types.
4148         Do not poolify the inserted load.
4149         (realify_fake_stores): Do not rebuild the tree but only
4150         make it a SSA_NAME copy.
4151         (init_pre): Remove initialzation of modify_expr_template.
4152         Do not allocate modify_expr_node_pool.
4153         (fini_pre): Do not free modify_expr_node_pool.
4154
4155 2008-03-10  Paul Brook  <paul@codesourcery.com>
4156
4157         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
4158         to avoid conflicts.
4159
4160 2008-03-10  Paul Brook  <paul@codesourcery.com>
4161             Mark Shinwell  <shinwell@codesourcery.com>
4162
4163         * config/arm/cortex-r4.md: New.
4164         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
4165         insn attributes.
4166         * config/arm/arm.md: Include cortex-r4.md.
4167         (insn): Add smmls, sdiv and udiv values.
4168         (generic_sched): Don't use generic scheduling for Cortex-R4.
4169         (arm_issue_rate): New function.
4170         (TARGET_SCHED_ISSUE_RATE): Define.
4171
4172 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
4173
4174         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
4175
4176 2008-03-10  Richard Guenther  <rguenther@suse.de>
4177
4178         * tree-ssa-pre.c (get_sccvn_value): Simplify.
4179         (compute_avail): Do not add stmt uses to AVAIL_OUT.
4180
4181 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
4182
4183         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
4184         Set default to true.
4185
4186 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4187
4188         * c.opt (Wsynth): Deprecate.
4189         * doc/invoke.texi (Option Summary, Warning Options): Document
4190         -Wno-format-contains-nul.
4191
4192 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
4193
4194         PR target/35496
4195         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
4196         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
4197
4198 2008-03-09  Ira Rosen  <irar@il.ibm.com>
4199
4200         * config/rs6000/rs6000.c (builtin_description): Rename vector
4201         left shift operations.
4202         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
4203         (altivec_vsl<VI_char>): Rename to ...
4204         (ashl<mode>3): ... new name.
4205         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
4206         gen_ashlv4si3.
4207         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
4208
4209 2008-03-08  Richard Guenther  <rguenther@suse.de>
4210
4211         * coverage.h (tree_coverage_counter_addr): Declare.
4212         * coverage.c (tree_coverage_counter_addr): New function.
4213         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
4214         before using again.
4215         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
4216         (tree_gen_one_value_profiler): Likewise.
4217         (tree_gen_ic_profiler): Likewise.
4218         (tree_gen_average_profiler): Likewise.
4219         (tree_gen_ior_profiler): Likewise.
4220
4221 2008-03-08  Richard Guenther  <rguenther@suse.de>
4222
4223         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
4224         (vn_binary_op_insert): Likewise.
4225         (vn_unary_op_lookup): Likewise.
4226         (vn_unary_op_insert): Likewise.
4227         (vn_nary_op_lookup): Declare.
4228         (vn_nary_op_insert): Likewise.
4229         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
4230         and binary hashes, use a single obstack for unary_op_pool
4231         and binary_op_pool.
4232         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
4233         a single struct vn_nary_op_s.  Store tree code length and
4234         a variable number of operands.
4235         (struct vn_reference_op_struct): Remove unused op2.
4236         (vn_reference_op_eq): Do not compare op2.
4237         (vn_reference_op_compute_hash): Do not compute hash of op2.
4238         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
4239         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
4240         with vn_nary_op_compute_hash.
4241         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
4242         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
4243         vn_nary_op_lookup.
4244         (vn_unary_op_insert, vn_binary_op_insert): Replace with
4245         vn_nary_op_insert.
4246         (visit_unary_op): Call nary functions.
4247         (visit_binary_op): Likewise.
4248         (process_scc): Adjust for struct vn_tables_s changes.
4249         (allocate_vn_table): Likewise.
4250         (free_vn_table): Likewise.
4251         * tree-vn.c (vn_add): Call nary functions.
4252         (vn_lookup): Likewise.
4253
4254 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
4255
4256         PR target/35498
4257         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
4258         wdst back after sync_compare_and_swapqhi_internal.
4259
4260 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
4261
4262         PR target/22152
4263         * config/i386/i386-modes.def (V1DI): New vector mode.
4264         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
4265         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
4266         (MMXMODE248): Ditto.
4267         (MMXMODE): Add V1DI mode.
4268         (mmxvecsize): Change DI mode to V1DI mode.
4269         ("mov<mode>): Use MMXMODEI8 mode iterator.
4270         ("*mov<mode>_internal_rex64"): Ditto.
4271         ("*mov<mode>_internal"): Ditto.
4272         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
4273         ("mmx_sub<mode>3"): Ditto.
4274         ("mmx_adddi3"): Remove insn pattern.
4275         ("mmx_subdi3"): Ditto.
4276         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
4277         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
4278         ("mmx_ashl<mode>3"): Ditto.
4279         ("mmx_lshrdi3"): Remove insn pattern.
4280         ("mmx_ashldi3"): Ditto.
4281         * config/i386/i386.c (classify_argument): Handle V1DImode.
4282         (function_arg_advance_32): Ditto.
4283         (function_arg_32): Ditto.
4284         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
4285         mmx_addv1di3 insn pattern.
4286         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
4287         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
4288         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
4289         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
4290         Remove definitions of built-in functions.
4291         (V1DI_type_node): New node.
4292         (v1di_ftype_v1di_int): Ditto.
4293         (v1di_ftype_v1di_v1di): Ditto.
4294         (v2si_ftype_v2si_si): Ditto.
4295         (v4hi_ftype_v4hi_di): Remove node.
4296         (v2si_ftype_v2si_di): Ditto.
4297         (ix86_init_mmx_sse_builtins): Handle V1DImode.
4298         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
4299         Redefine builtins using def_builtin_const with *_ftype_*_int node.
4300         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
4301         Add new builtins using def_builtin_const.
4302         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
4303         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
4304         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
4305         * config/i386/mmintrin.h (__v1di): New typedef.
4306         (_mm_add_si64): Cast arguments to __v1di type.
4307         (_mm_sub_si64): Ditto.
4308         (_mm_sll_pi16): Cast __count to __v4hi type.
4309         (_mm_sll_pi32): Cast __count to __v2si type.
4310         (_mm_sll_si64): Cast arguments to __v1di type.
4311         (_mm_srl_pi16): Cast __count to __v4hi type.
4312         (_mm_srl_pi32): Cast __count to __v2si type.
4313         (_mm_srl_si64): Cast arguments to __v1di type.
4314         (_mm_sra_pi16): Cast __count to __v4hi type.
4315         (_mm_sra_pi32): Cast __count to __v2si type.
4316         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
4317         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
4318         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
4319         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
4320         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
4321         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
4322         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
4323         (_mm_srai_pi32): Use __builtin_ia32_psradi.
4324         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
4325         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
4326         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
4327         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
4328
4329 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
4330
4331         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
4332
4333 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
4334
4335         PR target/35373
4336         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
4337         reg+const addressing for Altivec modes.  Don't generate reg+reg
4338         addressing for TFmode or TDmode quantities.
4339
4340 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
4341
4342         * c-common.c (vector_types_convertible_p): Call langhook
4343         instead of comptypes.
4344
4345 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4346
4347         PR tree-opt/35402
4348         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
4349         integral and scalar float variables which have a
4350         NULL DECL_INITIAL.
4351
4352 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
4353
4354         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
4355         dwarf_register_span hook when emitting unwind information for
4356         register-to-memory saves.
4357         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
4358         (rs6000_frame_related): Remove call to spe_synthesize_frame.
4359
4360 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
4361
4362         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
4363         for the same VAR_DECL.
4364
4365 2008-03-06  Tom Tromey  <tromey@redhat.com>
4366
4367         * treelang: Delete.
4368         * doc/standards.texi (Standards): Don't mention treelang.
4369         * doc/invoke.texi (Overall Options): Don't mention treelang.
4370         * doc/install.texi (Prerequisites): Don't mention bison or
4371         treelang.
4372         (Configuration): Don't mention treelang.
4373         (Building): Likewise.
4374         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
4375
4376 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
4377
4378         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
4379         word-extractions out of a multi-word object.
4380
4381 2008-03-06  Richard Guenther  <rguenther@suse.de>
4382
4383         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
4384         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
4385         result type and precision.
4386         * expr.c (get_inner_reference): Set unsignedp based on the result
4387         type of BIT_FIELD_REF.
4388         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
4389         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
4390         (try_instantiate_multiple_fields): Likewise.  Use the correct type
4391         for BIT_FIELD_REF.
4392         (sra_build_assignment): Likewise.
4393         (sra_build_elt_assignment): Likewise.
4394         (sra_explode_bitfield_assignment): Likewise.
4395         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
4396         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
4397         set BIT_FIELD_REF_UNSIGNED.
4398         (vectorizable_load): Likewise.
4399
4400 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
4401
4402         * cse.c (cse_extended_basic_block): Invalidate artificial defs
4403         at bb start.
4404
4405 2008-03-06  Richard Guenther  <rguenther@suse.de>
4406
4407         * alias.c (struct alias_set_entry): Move has_zero_child field
4408         to pack with alias_set.
4409
4410 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
4411
4412         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
4413         32bit host.
4414
4415 2008-03-05  Ian Lance Taylor  <iant@google.com>
4416
4417         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
4418
4419 2008-03-05  Kenneth Zadeck <zadeck@naturalbridge.com>
4420
4421         * fwprop.c (update_df): Support width and offset parameters of
4422         df_ref_create.
4423         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
4424         global_conflicts): Change DF_REF_EXTRACT to either
4425         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
4426         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
4427         * df-scan.c (df_ref_record, df_defs_record,
4428         df_ref_create_structure, df_def_record_1, df_uses_record,
4429         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
4430         df_bb_refs_collect, df_entry_block_defs_collect,
4431         df_exit_block_uses_collect): Support new width and offset fields.
4432         (ref_extract_pool): New storage pool.
4433         (df_free_ref): New function.
4434         (df_reg_chain_unlink, df_free_collection_rec,
4435         df_sort_and_compress_refs): Call df_free_ref.
4436         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
4437         of df_ref_extract.
4438         (df_ref_create_structure): Allocate df_ref_extract if offset and
4439         width fields are used.
4440         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
4441         (df_uses_record): Get offset and width from ZERO_EXTRACT 
4442         and SIGN_EXTRACT.
4443         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
4444         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
4445         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
4446         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
4447         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
4448         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
4449         (df_ref_extract): New structure.
4450         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
4451         (df_ref_create): Add width and offset parameters.
4452         
4453 2008-03-05  Richard Guenther  <rguenther@suse.de>
4454
4455         * tree-ssa-structalias.c (get_constraint_for_component_ref):
4456         Use ranges_overlap_p.
4457         (offset_overlaps_with_access): Rename
4458         to ranges_overlap_p and move ...
4459         * tree-flow-inline.h (ranges_overlap_p): ... here.
4460
4461         * tree.h (get_inner_reference, handled_component_p): Update
4462         comments.
4463
4464         * tree.h (record_component_aliases, get_alias_set,
4465         alias_sets_conflict_p, alias_sets_must_conflict_p,
4466         objects_must_conflict_p): Move declarations ...
4467         * alias.h (record_component_aliases, get_alias_set,
4468         alias_sets_conflict_p, alias_sets_must_conflict_p,
4469         objects_must_conflict_p): ... here.
4470         Include coretypes.h.
4471         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
4472
4473 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
4474
4475         * cfg.c: Include tree-flow.h.
4476         (remove_edge_raw): Call redirect_edge_var_map_clear.
4477         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
4478         * tree-flow-inline.h (redirect_edge_var_map_def): New.
4479         (redirect_edge_var_map_result): New.
4480         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
4481         PENDING_STMT use with redirect_edge_var_map_*.
4482         * tree-ssa.c (edge_var_maps): New definition.
4483         (redirect_edge_var_map_add): New.
4484         (redirect_edge_var_map_clear): New.
4485         (redirect_edge_var_map_dup): New.
4486         (redirect_edge_var_map_vector): New.
4487         (redirect_edge_var_map_destroy): New.
4488         (ssa_redirect_edge): Replace PENDING_STMT use with
4489         redirect_edge_var_map_*.
4490         (flush_pending_stmts): Same.
4491         (delete_tree_ssa): Destroy edge var map.
4492         * tree-flow.h (struct _edge_var_map): New.
4493         Define edge_var_map vector type.
4494         Declare redirect_edge_var_map_* prototypes.
4495         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
4496         * tree-cfg.c (reinstall_phi_args): Replace
4497         PENDING_STMT use with redirect_edge_var_map_*.
4498
4499 2008-03-05  Richard Guenther  <rguenther@suse.de>
4500
4501         PR tree-optimization/35472
4502         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
4503         whose single use_stmt has a overlapping set of loaded and
4504         stored symbols as that use_stmt might be a noop assignment then.
4505
4506 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
4507
4508         * gthr-rtems.h: Implement __gthread_mutex_destroy.
4509
4510 2008-03-05  Richard Guenther  <rguenther@suse.de>
4511
4512         PR c++/35336
4513         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
4514         should be constants.
4515         * tree-cfg.c (verify_expr): Verify it.
4516         * fold-const.c (fold_truthop): Remove code generating
4517         BIT_FIELD_REFs of structure bases.
4518         (fold_binary): Likewise.
4519         (fold_ternary): Position and size of BIT_FIELD_REFs are
4520         always host integers.
4521         (make_bit_field_ref): Remove.
4522         (optimize_bit_field_compare): Remove.
4523         (all_ones_mask_p): Remove.
4524
4525 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
4526
4527         PR gcc/33009
4528         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
4529         (split_block_and_df_analyze): New. Split basic block and rebuild
4530         dataflow.
4531         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
4532         SPLIT_BLOCK.
4533         (split_pattern_seq): Likewise.
4534         (erase_matching_seqs): Likewise.
4535         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
4536
4537 2008-03-04  Geoff Keating  <geoffk@apple.com>
4538
4539         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
4540         declaration and code.
4541         (tree_invalid_nonnegative_warnv_p): Likewise.
4542
4543 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
4544
4545         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
4546         examples.  Truncate option-names then causing overfull hbox.
4547
4548 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4549
4550         PR target/35222
4551         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
4552         on hpux10.
4553         * configure: Rebuilt.
4554
4555 2008-03-04  Rafael Espindola  <espindola@google.com>
4556
4557         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
4558         (tree_unary_nonnegative_warnv_p): New.
4559         (tree_binary_nonnegative_warnv_p): New.
4560         (tree_single_nonnegative_warnv_p): New.
4561         (tree_invalid_nonnegative_warnv_p): New.
4562         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
4563
4564 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4565
4566         PR 28322
4567         * opts.c (handle_option): Postpone 'unknown option' errors only for
4568         warning options.
4569
4570 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
4571
4572         PR target/35453
4573         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
4574         (_SIDD_XXX): This.
4575
4576 2008-03-04  Rafael Espindola  <espindola@google.com>
4577
4578         * fold-const.c (tree_unary_nonzero_warnv_p): New.
4579         (tree_binary_nonzero_warnv_p): New.
4580         (tree_single_nonzero_warnv_p): New.
4581         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
4582
4583 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
4584
4585         PR middle-end/35456
4586         * fold-const.c (fold_cond_expr_with_comparison): Prevent
4587         transformations for modes that have signed zeros.
4588         * ifcvt.c (noce_try_abs): Ditto.
4589
4590 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
4591
4592         * config/i386/i386.c (override_options): Force
4593         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
4594
4595 2008-03-04  Jan Hubicka  <jh@suse.cz>
4596
4597         PR c++/35262
4598         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
4599         in last commit.
4600
4601 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
4602
4603         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
4604         label to probe the stack.
4605
4606 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
4607
4608         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
4609         (__gthr_win32_mutex_destroy): Declare.
4610         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
4611         __gthr_win32_mutex_destroy.
4612         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
4613
4614 2008-03-03  Jan Hubicka  <jh@suse.cz>
4615
4616         PR c++/35262
4617         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
4618         aggressive on inlining cold calls.
4619
4620 2008-03-03  Richard Guenther  <rguenther@suse.de>
4621
4622         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
4623         struct copies into the expression table.
4624         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
4625         (try_to_simplify): Likewise.
4626         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
4627         integral and pointer arguments which do not change the
4628         precision to NOP_EXPRs.
4629         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
4630         VIEW_CONVERT_EXPR case.
4631
4632 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
4633
4634         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
4635         defined in a loop at depth 0 is invariant.
4636         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
4637         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
4638         be called at loop depth 0.
4639
4640 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
4641
4642         PR driver/35420
4643         * gcc.c (process_command): Update copyright notice dates.
4644         * gcov.c (print_version): Likewise.
4645         * gcov-dump.c (print_version): Likewise.
4646         * mips-tfile.c (main): Likewise.
4647         * mips-tdump.c (main): Likewise.
4648
4649 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4650
4651         PR 24924
4652         * c-common.c (flag_permissive): Delete.
4653         (constant_expression_warnings): Check flags first.
4654         (constant_expression_error): New.
4655         * c-common.h (flag_permissive): Delete.
4656         (constant_expression_error): Declare.
4657         * flags.h (flag_permissive): Declare. Update description.
4658         * diagnostic.c (pedwarn): Update.
4659         (permerror): New.
4660         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
4661         (permissive_error_kind): New.
4662         * toplev.c (flag_permissive): Define. Update description.
4663         * toplev.h (permissive_error_kind): Declare.
4664         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
4665         (pedwarn_c90): Use pedantic_warning_kind.
4666         * c-opts.c (c_common_post_options): flag_permissive does not affect
4667         flag_pedantic_errors.
4668
4669 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
4670
4671         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
4672         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
4673         __absvsi2, __absvDI2): Use unsigned arithmetic.
4674
4675 2008-03-02  Andi Kleen  <ak@suse.de>
4676             Richard Guenther  <rguenther@suse.de>
4677
4678         * struct-equiv.c: Remove file.
4679         * cfg_cleanup.c (condjump_equiv_p): Remove.
4680         * Makefile.in (OBJS-common): Remove struct-equiv.o.
4681         (struct-equiv.o): Remove rule.
4682         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
4683         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
4684         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
4685
4686 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
4687
4688         * ifcvt.c (noce_process_if_block): Try to handle only the then
4689         block if the else block exists but isn't suitable.
4690
4691 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
4692
4693         PR gcc/35063
4694         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
4695         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
4696         regression from previous patch.
4697
4698 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
4699
4700         PR gcc/35063
4701         * gthr.h: Add __gthread_mutex_destroy as a function that must be
4702         implemented.
4703         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
4704         * gthr-single.h (__gthread_mutex_destroy): Likewise.
4705         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
4706         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
4707         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
4708         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
4709         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
4710         (__gthread_mutex_destroy_function): Rename to
4711         __gthread_mutex_destroy.
4712         * gthr-dce.h (__gthread_mutex_destroy): Call
4713         pthread_mutex_destroy.
4714         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
4715         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
4716         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
4717
4718 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
4719
4720         * df-scan.c (df_ref_chain_change_bb): Simplify.
4721         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
4722         set_block_for_insn if there's any change.
4723         * df.h ((df_insn_change_bb): Fix prototype.
4724         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
4725         df_insn_change_bb, don't call set_block_for_insn.
4726         * emit-rtl.c (reorder_insns): Likewise.
4727         * haifa-sched.c (move_insn): Likewise.
4728
4729 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
4730
4731         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
4732
4733 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
4734
4735         * tree-flow-inline.h (next_readonly_imm_use): Return
4736         NULL_USE_OPERAND_P after the end.
4737
4738 2008-03-01  Richard Guenther  <rguenther@suse.de>
4739
4740         PR tree-optimization/35411
4741         * tree-sra.c (sra_build_assignment): Split conversion to
4742         final type to a separate statement if we are not assigning
4743         to a register.
4744
4745 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4746
4747         * fold-const.c (fold_convertible_p): Correct the logic to follow
4748         that in fold_convert().
4749
4750 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
4751
4752         PR c++/35315
4753         * tree-inline.c (build_duplicate_type): When we make a
4754         duplicate type, make it unique in the canonical types system.
4755
4756 2008-02-29  Tom Tromey  <tromey@redhat.com>
4757
4758         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
4759         input_file_stack_history, input_file_stack_restored): Remove.
4760         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
4761         * input.h (struct file_stack): Remove.
4762         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
4763         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
4764         Likewise.
4765         * diagnostic.h (struct diagnostic_context) <last_module>: Change
4766         type.
4767         (diagnostic_last_module_changed): Add 'map' argument.
4768         (diagnostic_set_last_function): Likewise.
4769         * diagnostic.c (undiagnostic_report_current_module): Iterate using
4770         line map, not input_file_stack.
4771         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
4772
4773 2008-02-29  Paul Brook  <paul@codesourcery.com>
4774
4775         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
4776
4777 2008-02-29  Paul Brook  <paul@codesourcery.com>
4778
4779         * config/arm/ieee754-df.S (muldf3): Use RET macros.
4780
4781 2008-02-29  Richard Guenther  <rguenther@suse.de>
4782
4783         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
4784         vn_lookup_or_add.
4785         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
4786         value for comparing for a store match.
4787         (simplify_unary_expression): Do nothing for SSA_NAMEs.
4788         (try_to_simplify): Do not do a full-blown reference lookup.
4789
4790 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
4791
4792         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
4793         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
4794
4795         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
4796
4797 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
4798
4799         * tree-loop-linear.c (try_interchange_loops): Compare memory access
4800         strides against cache sizes.
4801
4802 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
4803
4804         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
4805         constant to fpul.
4806
4807 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
4808
4809         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
4810         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
4811         is smaller than the original promoted value.
4812         (simplify_subreg): If OP is a SUBREG, try to preserve its
4813         SUBREG_PROMOTED_VAR_P information.
4814
4815 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
4816
4817         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
4818         (VN_INFO_GET): Allocate new objects on the obstack.
4819         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
4820         for rpo_numbers_temp, for consistency.
4821         (free_scc_vn): Free the obstack.
4822
4823 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
4824
4825         * doc/invoke.texi: Document -ftree-loop-distribution.
4826         * tree-loop-distribution.c: New.
4827         * tree-pass.h (pass_loop_distribution): New.
4828         * graphds.h (struct graph): Add htab_t indices.
4829         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
4830         * tree-vectorizer.c (rename_variables_in_loop): Extern.
4831         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
4832         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
4833         * tree-data-ref.c (debug_data_dependence_relations): New.
4834         (dump_data_dependence_relation): Also print data references.
4835         (free_data_ref): Extern.
4836         (same_access_functions): Moved...
4837         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
4838         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
4839         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
4840         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
4841         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
4842         (stmts_from_loop): Skip LABEL_EXPR.
4843         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
4844         New.
4845         (build_rdg): Initialize rdg->indices htab.
4846         (free_rdg, stores_from_loop, ref_base_address,
4847         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
4848         have_similar_memory_accesses_1, ref_base_address_1,
4849         remove_similar_memory_refs): New.
4850         * tree-data-ref.h: Depend on tree-chrec.h.
4851         (debug_data_dependence_relations, free_data_ref): Declared.
4852         (same_access_functions): ... here.
4853         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
4854         New.
4855         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
4856         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
4857         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
4858         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
4859         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
4860         rdg_vertex_for_stmt): Declared.
4861         (struct rdg_edge): Add level.
4862         (RDGE_LEVEL): New.
4863         (free_rdg, stores_from_loop, remove_similar_memory_refs,
4864         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
4865         Declared.
4866         (rdg_has_similar_memory_accesses): New.
4867         * tree-vect-analyze.c: Remove unused static decls.
4868         * lambda.h (dependence_level): New.
4869         * common.opt (ftree-loop-distribution): New.
4870         * tree-flow.h (mark_virtual_ops_in_bb, 
4871         slpeel_tree_duplicate_loop_to_edge_cfg,
4872         rename_variables_in_loop): Declared.
4873         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
4874         (OBJS-common): Add tree-loop-distribution.o.
4875         (tree-loop-distribution.o): New rule.
4876         * tree-cfg.c (mark_virtual_ops_in_bb): New.
4877         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
4878         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
4879
4880 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
4881
4882         PR target/33963
4883         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
4884         other than structures and unions.
4885
4886 2008-02-28  Richard Guenther  <rguenther@suse.de>
4887
4888         Revert:
4889         2008-02-26  Richard Guenther  <rguenther@suse.de>
4890
4891         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
4892         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
4893         (lookup_decl_from_uid): Declare.
4894         (remove_decl_from_map): Likewise.
4895         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
4896         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
4897         (decl_for_uid_map): New global hashtable mapping DECL_UID
4898         to the decl tree.
4899         (init_ttree): Allocate it.
4900         (insert_decl_to_uid_decl_map): New helper function.
4901         (make_node_stat): Insert new decls into the map.
4902         (copy_node_stat): Likewise.
4903         (lookup_decl_from_uid): New function.
4904         (remove_decl_from_map): Likewise.
4905         (print_decl_for_uid_map_statistics): New helper.
4906         (dump_tree_statistics): Call it.
4907
4908         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
4909         (referenced_var_iterator): Adjust.
4910         (FOR_EACH_REFERENCED_VAR): Adjust.
4911         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
4912         (num_referenced_vars): Adjust.
4913         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
4914         (first_referenced_var): Remove.
4915         (end_referenced_vars_p): Likewise.
4916         (next_referenced_var): Likewise.
4917         (referenced_var_iterator_set): New helper function.
4918         * tree-dfa.c (referenced_var_lookup): Adjust.
4919         (referenced_var_check_and_insert): Likewise.
4920         (remove_referenced_var): Likewise.
4921         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
4922         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4923         (verify_call_clobbering): Likewise.
4924         (verify_memory_partitions): Likewise.
4925         (init_tree_ssa): Allocate bitmap instead of hashtable for
4926         referenced_vars.
4927         (delete_tree_ssa): Adjust.
4928         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
4929         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4930         (compute_tag_properties): Likewise.
4931         (set_initial_properties): Likewise.
4932         (find_partition_for): Likewise.
4933         (update_reference_counts): Likewise.
4934         (dump_may_aliases_for): Likewise.
4935         * tree-ssa-operands.c (add_virtual_operand): Likewise.
4936         (add_call_clobber_ops): Likewise.
4937         (add_call_read_ops): Likewise.
4938         (get_asm_expr_operands): Likewise.
4939         * tree-into-ssa.c (dump_decl_set): Likewise.
4940         (update_ssa): Likewise.
4941         * tree-sra.c (scan_function): Likewise.
4942         (decide_instantiations): Likewise.
4943         (scalarize_parms): Likewise.
4944         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
4945         (dsa_named_for): Likewise.
4946         * tree-ssa-structalias.c (update_alias_info): Likewise.
4947         (merge_smts_into): Likewise.
4948
4949 2008-02-27  David Daney  <ddaney@avtrex.com>
4950
4951         PR target/34409
4952         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
4953         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
4954         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
4955         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
4956         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
4957
4958 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
4959
4960         PR target/25477
4961         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
4962         (BUILT_IN_NEXTTOWARD): Remove.
4963         (BUILT_IN_NEXTTOWARDF): Ditto.
4964         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
4965         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
4966
4967 2008-02-27  Tom Tromey  <tromey@redhat.com>
4968
4969         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
4970         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
4971
4972 2008-02-27  Jan Beulich  <jbeulich@novell.com>
4973
4974         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
4975         update the respective field on newdecl.
4976
4977 2008-02-27  Revital Eres  <eres@il.ibm.com>
4978
4979         PR rtl-optimization/34999
4980         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
4981         crossing edges that ends with a call insn.
4982         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
4983         call insn and clear the EDGE_CROSSING flag of the crossing edge
4984         when fixing fallthru edges.
4985
4986 2008-02-27  Richard Guenther  <rguenther@suse.de>
4987
4988         PR middle-end/35390
4989         * fold-const.c (fold_unary): Return the correct argument,
4990         converted to the result type.
4991
4992 2008-02-27  Richard Guenther  <rguenther@suse.de>
4993
4994         PR middle-end/34971
4995         * expr.c (expand_expr_real_1): Assert on rotates that operate
4996         on partial modes.
4997         * fold-const.c (fold_binary): Use the types precision, not the
4998         bitsize of the mode if folding rotate expressions.  Build rotates
4999         only for full modes.
5000
5001 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
5002
5003         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
5004         and CPP_PRAGMA_EOL.
5005         * c-pragma.c (pragma_ns_name): New typedef.
5006         (registered_pp_pragmas): New variable.
5007         (c_pp_lookup_pragma): New function.
5008         (c_register_pragma_1): If flag_preprocess_only, do nothing
5009         for non-expanded pragmas, for expanded ones push pragma's
5010         namespace and name into registered_pp_pragmas vector.
5011         (c_invoke_pragma_handler): Register OpenMP pragmas even when
5012         flag_preprocess_only, don't register GCC pch_preprocess
5013         pragma if flag_preprocess_only.
5014         * c-opts.c (c_common_init): Call init_pragma even if
5015         flag_preprocess_only.
5016         * c-pragma.c (c_pp_lookup_pragma): New prototype.
5017         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
5018         cpp_register_pragma if flag_preprocess_only.
5019
5020 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5021
5022         PR c/28800
5023         * c-parser.c (c_parser_translation_unit): Warn for empty
5024         translation unit, not empty source file.
5025
5026 2008-02-26  Paul Brook  <paul@codesourcery.com>
5027
5028         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
5029         operand for Thumb-2.
5030         * config/arm/arm.h (reg_class): Add CORE_REGS.
5031         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
5032         (BASE_REG_CLASS): Use CORE_REGS.
5033         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
5034         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
5035         (REGNO_OK_FOR_INDEX_P): Exclude SP.
5036         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
5037         ARM_REGNO_OK_FOR_INDEX_P.
5038         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
5039         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
5040         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
5041         (ldm/stm peepholes): Ditto.
5042         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
5043         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
5044         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
5045         * config/arm/constraints.md: Enable "k" constraint on ARM.
5046
5047 2008-02-27  Ben Elliston  <bje@au.ibm.com>
5048
5049         * config/rs6000/rs6000.c: Annotate cache line size field in all
5050         instances of struct processor_costs.
5051
5052 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
5053
5054         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
5055         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
5056         jump_bypass): New counters.
5057         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
5058         * dce.c (gate_ud_dce): Same.
5059         (gate_fast_dce): Same.
5060         * dse.c (gate_dse1): New function.
5061         (gate_dse2): New function.
5062         (gate_dse): Merge results of new gate functions.
5063         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
5064         (gate_handle_jump_bypass): Add dbg_cnt.
5065         (gate_handle_gcse): Add dbg_cnt.
5066         * ifcvt.c (gate_handle_if_conversion): Same.
5067         (gate_handle_if_after_combine): Same.
5068         (gate_handle_if_after_reload): Same.
5069         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
5070
5071 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
5072
5073         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
5074         line sizes.
5075         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
5076
5077 2008-02-26  Jason Merrill  <jason@redhat.com>
5078
5079         PR c++/35315
5080         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
5081         alone if it's the naming decl for the type's main variant.
5082
5083 2008-02-26  Tom Tromey  <tromey@redhat.com>
5084
5085         * system.h (USE_MAPPED_LOCATION): Poison.
5086         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
5087         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
5088         (make_goto_expr_edges): Likewise.
5089         (remove_bb): Likewise.
5090         (execute_warn_function_return): Likewise.
5091         * basic-block.h (struct edge_def) <goto_locus>: Change type to
5092         location_t.
5093         * c-common.c (fname_decl): Remove old location code.
5094         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
5095         location code.
5096         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
5097         variant.
5098         (ASM_INPUT_SOURCE_LOCATION): Likewise.
5099         (gen_rtx_ASM_INPUT): Likewise.
5100         (gen_rtx_ASM_INPUT_loc): Likewise.
5101         (get_rtx_asm_OPERANDS): Remove.
5102         * cfglayout.c (insn_locators_alloc): Remove old location code.
5103         (set_curr_insn_source_location): Likewise.
5104         (curr_insn_locator): Likewise.
5105         * print-tree.c (print_node): Remove old location code.
5106         * tree-mudflap.c (mf_varname_tree): Remove old location code.
5107         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
5108         * cfgexpand.c (expand_gimple_cond_expr): Don't use
5109         location_from_locus.
5110         (construct_exit_block): Remove old location code.
5111         * emit-rtl.c (force_next_line_note): Remove old location code.
5112         * profile.c (branch_prob): Remove old location code.
5113         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
5114         LOC_LINE): Remove old-location variants.
5115         * langhooks.c (lhd_print_error_function): Remove old location
5116         code.
5117         * configure, config.in: Rebuilt.
5118         * configure.ac (--enable-mapped-location): Remove.
5119         * c-decl.c (c_init_decl_processing): Remove old location code.
5120         (finish_function): Likewise.
5121         * recog.c (decode_asm_operands): Remove old location code.
5122         * c-pch.c (c_common_read_pch): Remove old location code.
5123         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
5124         variants.
5125         * gimple-low.c (lower_function_body): Remove old location code.
5126         * toplev.c (unknown_location): Remove.
5127         (push_srcloc): Remove old-location variant.
5128         (process_options): Remove old location code.
5129         (lang_dependent_init): Likewise.
5130         * input.h (UNKNOWN_LOCATION): Move definition.
5131         (location_t): Undeprecate.
5132         (source_locus): Remove.
5133         (location_from_locus): Remove.
5134         (struct location_s): Remove.
5135         Remove all old-location code.
5136         (input_line, input_filename): Remove.
5137         * final.c (final_scan_insn): Remove old location code.
5138         * diagnostic.c (diagnostic_build_prefix): Remove
5139         USE_MAPPED_LOCATION test.
5140         * tree.h (gimple_stmt) <locus>: Now a location_t.
5141         (tree_exp) <locus>: Likewise.
5142         (DECL_IS_BUILTIN): Remove old-location variant.
5143         (annotate_with_file_line, annotate_with_locus): Likewise.
5144         (expr_locus, set_expr_locus): Update.
5145         * tree.c (build1_stat): Remove old location code.
5146         (last_annotated_node): Remove.
5147         (annotate_with_file_line): Remove old-location variant.
5148         (annotate_with_locus): Likewise.
5149         (expr_location): Remove old location code.
5150         (set_expr_location): Likewise.
5151         (expr_has_location): Likewise.
5152         (expr_locus): Likewise.
5153         (set_expr_locus): Likewise.
5154         (expr_filename): Don't use location_from_locus.
5155         (expr_lineno): Likewise.
5156         * rtl-error.c (location_for_asm): Remove old location code.
5157         * c-lex.c (cb_line_change): Remove old location code.
5158         (fe_file_change): Likewise.
5159         (cb_def_pragma): Likewise.
5160         (c_lex_with_flags): Likewise.
5161         * gengtype.c (do_typedef): Don't special-case location types.
5162         (define_location_structures): Remove.
5163         (main): Don't call define_location_structures.
5164         * tree-pretty-print.c (dump_implicit_edges): Remove old location
5165         code.
5166
5167 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5168
5169         PR 26264
5170         * builtins.def (BUILT_IN_STDARG_START): Remove.
5171         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
5172         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
5173         * tree-inline.c (inline_forbidden_p_1): Likewise.
5174         
5175 2008-02-26  Richard Guenther  <rguenther@suse.de>
5176
5177         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
5178         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
5179         (lookup_decl_from_uid): Declare.
5180         (remove_decl_from_map): Likewise.
5181         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
5182         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
5183         (decl_for_uid_map): New global hashtable mapping DECL_UID
5184         to the decl tree.
5185         (init_ttree): Allocate it.
5186         (insert_decl_to_uid_decl_map): New helper function.
5187         (make_node_stat): Insert new decls into the map.
5188         (copy_node_stat): Likewise.
5189         (lookup_decl_from_uid): New function.
5190         (remove_decl_from_map): Likewise.
5191         (print_decl_for_uid_map_statistics): New helper.
5192         (dump_tree_statistics): Call it.
5193
5194         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
5195         (referenced_var_iterator): Adjust.
5196         (FOR_EACH_REFERENCED_VAR): Adjust.
5197         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
5198         (num_referenced_vars): Adjust.
5199         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
5200         (first_referenced_var): Remove.
5201         (end_referenced_vars_p): Likewise.
5202         (next_referenced_var): Likewise.
5203         (referenced_var_iterator_set): New helper function.
5204         * tree-dfa.c (referenced_var_lookup): Adjust.
5205         (referenced_var_check_and_insert): Likewise.
5206         (remove_referenced_var): Likewise.
5207         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
5208         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5209         (verify_call_clobbering): Likewise.
5210         (verify_memory_partitions): Likewise.
5211         (init_tree_ssa): Allocate bitmap instead of hashtable for
5212         referenced_vars.
5213         (delete_tree_ssa): Adjust.
5214         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
5215         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5216         (compute_tag_properties): Likewise.
5217         (set_initial_properties): Likewise.
5218         (find_partition_for): Likewise.
5219         (update_reference_counts): Likewise.
5220         (dump_may_aliases_for): Likewise.
5221         * tree-ssa-operands.c (add_virtual_operand): Likewise.
5222         (add_call_clobber_ops): Likewise.
5223         (add_call_read_ops): Likewise.
5224         (get_asm_expr_operands): Likewise.
5225         * tree-into-ssa.c (dump_decl_set): Likewise.
5226         (update_ssa): Likewise.
5227         * tree-sra.c (scan_function): Likewise.
5228         (decide_instantiations): Likewise.
5229         (scalarize_parms): Likewise.
5230         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
5231         (dsa_named_for): Likewise.
5232         * tree-ssa-structalias.c (update_alias_info): Likewise.
5233         (merge_smts_into): Likewise.
5234
5235 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5236
5237         PR 34351
5238         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
5239         * c-opts.c (c_common_handle_option): Wall enables
5240         Wvolatile-register-var.
5241         * common.opt: Move Wvolatile-register-var to...
5242         * c.opt: ...here.
5243         
5244 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5245
5246         * common.opt (Wlarger-than=): New.
5247         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
5248         -Wlarger-than=.
5249         * opts.c (common_handle_option): Handle -Wlarger-than=.
5250         * optc-gen.awk: Likewise.
5251         * opth-gen.awk: Likewise.
5252         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
5253         * tree-optimize.c (tree_rest_of_compilation): Likewise.
5254         
5255 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5256
5257         * c-common.c (match_case_to_enum_1): Add appropriate
5258         OPT_W* parameter to warning.
5259         (c_do_switch_warnings): Likewise.
5260         * c-typeck.c (warning_init): Add one more parameter following
5261         'warning' function.
5262         (push_init_level): Update call to warning_init.
5263         (pop_init_level): Likewise.
5264         (add_pending_init): Likewise.
5265         (output_init_element: Likewise.
5266
5267 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5268
5269         PR 28322
5270         * toplev.c (toplev_main): If there are warnings or error, print
5271         errors for ignored options.
5272         * opts.c (ignored_options): New static variable.
5273         (postpone_unknown_option_error): New.
5274         (print_ignored_options): New.
5275         (handle_option): Postpone errors for unknown -Wno-* options.
5276         * opts.h (print_ignored_options): Declare.
5277         
5278 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
5279
5280         * config/mips/mips.md (loadgp_blockage, blockage): Change type
5281         to "ghost".
5282
5283 2008-02-25  Richard Guenther  <rguenther@suse.de>
5284
5285         Revert:
5286         2008-02-25  Richard Guenther  <rguenther@suse.de>
5287
5288         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
5289         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
5290         (lookup_decl_from_uid): Declare.
5291         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
5292         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
5293         (decl_for_uid_map): New global hashtable mapping DECL_UID
5294         to the decl tree.
5295         (init_ttree): Allocate it.
5296         (insert_decl_to_uid_decl_map): New helper function.
5297         (make_node_stat): Insert new decls into the map.
5298         (copy_node_stat): Likewise.
5299         (lookup_decl_from_uid): New function.
5300         (print_decl_for_uid_map_statistics): New helper.
5301         (dump_tree_statistics): Call it.
5302
5303         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
5304         (referenced_var_iterator): Adjust.
5305         (FOR_EACH_REFERENCED_VAR): Adjust.
5306         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
5307         (num_referenced_vars): Adjust.
5308         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
5309         (first_referenced_var): Remove.
5310         (end_referenced_vars_p): Likewise.
5311         (next_referenced_var): Likewise.
5312         (referenced_var_iterator_set): New helper function.
5313         * tree-dfa.c (referenced_var_lookup): Adjust.
5314         (referenced_var_check_and_insert): Likewise.
5315         (remove_referenced_var): Likewise.
5316         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
5317         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5318         (verify_call_clobbering): Likewise.
5319         (verify_memory_partitions): Likewise.
5320         (init_tree_ssa): Allocate bitmap instead of hashtable for
5321         referenced_vars.
5322         (delete_tree_ssa): Adjust.
5323         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
5324         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5325         (compute_tag_properties): Likewise.
5326         (set_initial_properties): Likewise.
5327         (find_partition_for): Likewise.
5328         (update_reference_counts): Likewise.
5329         (dump_may_aliases_for): Likewise.
5330         * tree-ssa-operands.c (add_virtual_operand): Likewise.
5331         (add_call_clobber_ops): Likewise.
5332         (add_call_read_ops): Likewise.
5333         (get_asm_expr_operands): Likewise.
5334         * tree-into-ssa.c (dump_decl_set): Likewise.
5335         (update_ssa): Likewise.
5336         * tree-sra.c (scan_function): Likewise.
5337         (decide_instantiations): Likewise.
5338         (scalarize_parms): Likewise.
5339         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
5340         (dsa_named_for): Likewise.
5341         * tree-ssa-structalias.c (update_alias_info): Likewise.
5342         (merge_smts_into): Likewise.
5343
5344 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
5345
5346         PR fortran/29549
5347         * doc/invoke.texi (-fcx-limited-range): Document new option.
5348         * toplev.c (process_options): Handle -fcx-fortran-rules.
5349         * common.opt: Add documentation for -fcx-fortran-rules.
5350
5351 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
5352
5353         PR c/35162
5354         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
5355         actual behaviour and C99.
5356         
5357 2008-02-26  Ben Elliston  <bje@au.ibm.com>
5358
5359         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
5360         (ASM_CPU_POWER6_SPEC): Likewise.
5361         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
5362         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
5363         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
5364
5365 2008-02-25  Richard Guenther  <rguenther@suse.de>
5366
5367         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
5368         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
5369         (lookup_decl_from_uid): Declare.
5370         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
5371         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
5372         (decl_for_uid_map): New global hashtable mapping DECL_UID
5373         to the decl tree.
5374         (init_ttree): Allocate it.
5375         (insert_decl_to_uid_decl_map): New helper function.
5376         (make_node_stat): Insert new decls into the map.
5377         (copy_node_stat): Likewise.
5378         (lookup_decl_from_uid): New function.
5379         (print_decl_for_uid_map_statistics): New helper.
5380         (dump_tree_statistics): Call it.
5381
5382         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
5383         (referenced_var_iterator): Adjust.
5384         (FOR_EACH_REFERENCED_VAR): Adjust.
5385         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
5386         (num_referenced_vars): Adjust.
5387         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
5388         (first_referenced_var): Remove.
5389         (end_referenced_vars_p): Likewise.
5390         (next_referenced_var): Likewise.
5391         (referenced_var_iterator_set): New helper function.
5392         * tree-dfa.c (referenced_var_lookup): Adjust.
5393         (referenced_var_check_and_insert): Likewise.
5394         (remove_referenced_var): Likewise.
5395         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
5396         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5397         (verify_call_clobbering): Likewise.
5398         (verify_memory_partitions): Likewise.
5399         (init_tree_ssa): Allocate bitmap instead of hashtable for
5400         referenced_vars.
5401         (delete_tree_ssa): Adjust.
5402         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
5403         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5404         (compute_tag_properties): Likewise.
5405         (set_initial_properties): Likewise.
5406         (find_partition_for): Likewise.
5407         (update_reference_counts): Likewise.
5408         (dump_may_aliases_for): Likewise.
5409         * tree-ssa-operands.c (add_virtual_operand): Likewise.
5410         (add_call_clobber_ops): Likewise.
5411         (add_call_read_ops): Likewise.
5412         (get_asm_expr_operands): Likewise.
5413         * tree-into-ssa.c (dump_decl_set): Likewise.
5414         (update_ssa): Likewise.
5415         * tree-sra.c (scan_function): Likewise.
5416         (decide_instantiations): Likewise.
5417         (scalarize_parms): Likewise.
5418         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
5419         (dsa_named_for): Likewise.
5420         * tree-ssa-structalias.c (update_alias_info): Likewise.
5421         (merge_smts_into): Likewise.
5422
5423 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
5424
5425         PR target/35258
5426         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
5427         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
5428         * alias.h (nonoverlapping_memrefs_p): Likewise.
5429
5430 2008-02-25  Jan Beulich  <jbeulich@novell.com>
5431
5432         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
5433         * config/i386/netware-libgcc.exp: Add __bswap?i2,
5434         __emultls_get_address, __emultls_register_common,
5435         __floatundi?f, and _Unwind_GetIPInfo.
5436         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
5437         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
5438         (gen_regparm_prefix): Likewise.
5439         (i386_nlm_encode_section_info): Sync with
5440         config/i386/winnt.c:i386_pe_encode_section_info().
5441         (i386_nlm_maybe_mangle_decl_assembler_name): New.
5442         i386_nlm_mangle_decl_assembler_name): New.
5443         (netware_override_options): New.
5444         * config/i386/netware.h (netware_override_options): Declare.
5445         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
5446         (i386_nlm_mangle_decl_assembler_name): Declare.
5447         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
5448
5449 2008-02-25  Ben Elliston  <bje@au.ibm.com>
5450
5451         PR other/32948
5452         * c-decl.c (grokdeclarator): Remove unused local variables
5453         `typedef_type' and `type_as_written'.
5454         * bb-reorder.c
5455         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
5456         unused local variable `has_hot_blocks'.
5457         (fix_crossing_conditional_branches): Remove unused local variable
5458         `prev_bb'.
5459         
5460 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
5461
5462         PR middle-end/19984
5463         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
5464         using DEF_C99_BUILTIN.
5465         (BUILT_IN_NANF): Ditto.
5466         (BUILT_IN_NANL): Ditto.
5467
5468 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
5469             Revital Eres  <eres@il.ibm.com>
5470
5471         * modulo-sched.c (calculate_must_precede_follow): Address TODO
5472         regarding the order of two dependent insns in the same row.
5473
5474 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
5475
5476         * stor-layout.c (layout_decl): Do not bump the alignment of a
5477         bit-field to more than byte alignment if it is packed.
5478
5479 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
5480
5481         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
5482         e300c2 and e300c3.
5483
5484 2008-02-24  Diego Novillo  <dnovillo@google.com>
5485
5486         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
5487
5488         PR 33738
5489         * tree-vrp.c (vrp_evaluate_conditional): With
5490         -Wtype-limits, emit a warning when comparing against a
5491         constant outside the natural range of OP0's type.
5492         * c.opt (Wtype-limits): Move ...
5493         * common.opt (Wtype-limits): ... here.
5494
5495 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
5496
5497         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
5498         * config/rs6000/e300c2c3.md: New file.
5499         * config/rs6000/rs6000.c (processor_costs): Add new costs for
5500         e300c2 and e300c3.
5501         (rs6000_override_options): Add e300c2 and e300c3 cases to
5502         processor_target_table. Do not allow usage of Altivec or Spe
5503         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
5504         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
5505         * config/rs6000/rs6000.h (processor_type): Add
5506         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
5507         (ASM_CPU_SPEC): Add e300c2 and e300c3.
5508         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
5509         and ppce300c3. Include e300c2c3.md.
5510
5511 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
5512
5513         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
5514         instead of TARGET_STRICT_ALIGN.
5515
5516 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
5517
5518         * explow.c (memory_address): Assert that the generated address is
5519         valid.
5520
5521 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
5522
5523         PR target/25477
5524         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
5525         * config/darwin-ppc-ldouble-patch.def: New file.
5526         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
5527         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
5528         SUBTARGET_INIT_BUILTINS if defined.
5529         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
5530         New functions.
5531
5532 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5533
5534         PR rtl-opt/33512
5535         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
5536         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
5537
5538 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5539
5540         PR pch/35027
5541         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
5542         file" warning condtional on -Winvalid-PCH.
5543
5544 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
5545
5546         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
5547
5548 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
5549
5550         PR target/22076
5551         PR target/34256 
5552         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
5553         prevent reload from using MMX registers.
5554         (*mov<mode>_internal): Ditto.
5555         (*movv2sf_internal_rex64): Ditto.
5556         (*movv2sf_internal): Ditto.
5557
5558 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5559
5560         PR documentation/31569
5561         * doc/install.texi2html: Use makeinfo --no-number-sections.
5562
5563 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
5564
5565         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
5566         ensure that we can address an entire entity > 8 bytes.  Don't
5567         generate reg+reg addressing for such data.
5568
5569 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
5570
5571         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
5572         strings when optimizing for size, unless the target cares about
5573         alignment.
5574
5575 2008-02-22  Tom Tromey  <tromey@redhat.com>
5576
5577         * regclass.c (current_pass): Remove declaration.
5578
5579 2008-02-22  Anatoly Sokolov <aesok@post.ru>
5580
5581         * config/avr/libgcc.S (__RAMPZ__): Define.
5582         (__do_copy_data): Add for devices with 128KB code memory.
5583
5584 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
5585
5586         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
5587         Use spe_abi.
5588         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
5589
5590 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
5591
5592         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
5593         GENNONACR_REGS.
5594
5595 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5596
5597         PR c/19999
5598         * c-typeck.c (build_binary_op): Warn about floating point
5599         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
5600
5601 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
5602
5603         PR target/34526
5604         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
5605         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
5606         add vrsave.
5607         (rs6000_override_options): Set altivec_abi as default, not override,
5608         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
5609         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
5610         is used; use new member spe_abi.
5611         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
5612         spe_abi and altivec_abi.
5613
5614 2008-02-22  Tomas Bily  <tbily@suse.cz>
5615
5616         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
5617
5618 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5619
5620         PR bootstrap/35273
5621         * config.build (build_file_translate): Set to `CMD //c' only if
5622         it works.
5623         * Makefile.in (build_file_translate): Improve comment.
5624
5625 2008-02-21  Jan Hubicka  <jh@suse.cz>
5626
5627         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
5628         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
5629         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
5630
5631 2008-02-21  Michael Matz  <matz@suse.de>
5632
5633         PR target/35264
5634         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
5635
5636 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
5637
5638         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
5639         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
5640         as insn constraint.
5641         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
5642         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
5643         SSE_VEC_FLOAT_MODE_P as insn constraint.
5644         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
5645         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
5646         sse4a_movntdf using MODEF mode iterator.
5647         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
5648         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
5649         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
5650         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
5651         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
5652         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
5653         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
5654
5655 2008-02-21  Richard Guenther  <rguenther@suse.de>
5656
5657         * tree.def (PAREN_EXPR): New tree code.
5658         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
5659         and PAREN_EXPR.
5660         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
5661         * expr.c (expand_expr_real_1): Likewise.
5662         * tree-inline.c (estimate_num_insns_1): Likewise.
5663         * tree-complex.c (expand_complex_move): Likewise.
5664         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
5665         as plain x.
5666
5667 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
5668
5669         PR target/35225
5670         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
5671
5672 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
5673
5674         PR target/35190
5675         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
5676
5677         * config/sh/sh.c (find_barrier): Don't go past
5678         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
5679
5680 2008-02-20  DJ Delorie  <dj@redhat.com>
5681
5682         * config/h8300/h8300.md (insv): Force source operand to be a register.
5683
5684         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
5685         as a jump, not as a plain insn.
5686         
5687 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
5688
5689         * doc/invoke.texi (Warning Options): Add new option
5690         -Wframe-larger-than=.
5691         (-Wframe-larger-than): Document.
5692
5693         * flags.h (warn_frame_larger_than, frame_larger_than_size):
5694         Add declarations for new option variables.
5695
5696         * final.c (final_start_function): Check the frame size
5697         before emission and issue a Wframe-larger-than warning.
5698
5699         * opts.c (warn_frame_larger_than, frame_larger_than_size):
5700         Add definitions for new option variables.
5701         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
5702
5703         * common.opt (Wframe-larger-than=): New option.
5704
5705 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
5706
5707         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
5708         (<sse>_div<mode>3): Ditto.
5709         (<sse>_vmdiv<mode>3): Ditto.
5710         (<sse>_vmsqrt<mode>2): Ditto.
5711         (*smax<mode>3): Ditto.
5712         (sse5_frcz<mode>2): Ditto.
5713         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
5714         as insn constraint.
5715
5716 2008-02-20  Richard Guenther  <rguenther@suse.de>
5717
5718         PR middle-end/35265
5719         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
5720         be happy with INTEGRAL_TYPE_P.
5721
5722 2008-02-20  Richard Guenther  <rguenther@suse.de>
5723
5724         * fold-const.c (split_tree): Associate floatig-point expressions
5725         if flag_associative_math is set.
5726
5727 2008-02-20  Richard Guenther  <rguenther@suse.de>
5728
5729         * tree.h (fold_real_zero_addition_p): Declare.
5730         * fold-const.c (fold_real_zero_addition_p): Export.
5731         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
5732         floating-point operations with zero and one.
5733
5734 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
5735
5736         * doc/install.texi: Correct references to CFLAGS, replacing them
5737         with BOOT_CFLAGS.  Document flags used during bootstrap for
5738         target libraries.
5739                                 
5740 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
5741
5742         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
5743         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
5744         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
5745         insn constraint.
5746         (smin<mode>3): Ditto from similar patterns.
5747         (smax<mode>3): Ditto.
5748         (*ieee_smin<mode>3): Ditto.
5749         (*ieee_smax<mode>3): Ditto.
5750         * config/i386/sse.md (sse): New mode attribute.
5751         (mov<mode>): Macroize expander from movv4sf and movv2df using
5752         SSEMODEF2P mode iterator.
5753         (<sse>_movnt<mode>): Ditto from similar patterns. Use
5754         SSE_VEC_FLOAT_MODE_P as insn constraint.
5755         (storent<mode>): Ditto.
5756         (storent<mode>): Macroize expander from storentsf and storentdf using
5757         MODEF mode iterator.
5758         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
5759         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
5760         (abs<mode>2): Ditto from similar patterns.
5761         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
5762         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
5763         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
5764         (<sse>_vmsqrt<mode>2): Ditto.
5765         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
5766         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
5767         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
5768         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
5769         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
5770         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
5771         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
5772         insn constraint.
5773         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
5774         iterator and SSE_FLOAT_MODE_P as insn constraint.
5775         (<sse>_ucomi): Ditto from similar patterns.
5776         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
5777         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
5778         SSE_VEC_FLOAT_MODE_P as insn constraint.
5779         (vcond<mode>): Ditto from similar patterns.
5780         (and<mode>3, *and<mode>3): Ditto.
5781         (<sse>_nand<mode>3): Ditto.
5782         (ior<mode>3, *ior<mode>3): Ditto.
5783         (xor<mode>3, *xor<mode>3): Ditto.
5784         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
5785         iterator and SSE_FLOAT_MODE_P as insn constraint.
5786         (*nand<mode>3): Ditto from similar patterns.
5787         (*ior<mode>3): Ditto.
5788         (*xor<mode>3): Ditto.
5789
5790 2008-02-20  Ira Rosen  <irar@il.ibm.com>
5791
5792         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
5793         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
5794         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
5795
5796 2008-02-19  Jan Hubicka  <jh@suse.cz>
5797
5798         * predict.c (tree_bb_level_predictions): Remove variable next
5799         mistakely introduced by previous commit.
5800
5801 2008-02-19  Jan Hubicka  <jh@suse.cz>
5802
5803         * predict.c (predict_paths_leading_to): Rewrite.
5804         (predict_paths_for_bb): New.
5805         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
5806
5807 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5808
5809         PR bootstrap/35218
5810         * Makefile.in (build_file_translate): New.
5811         (gcc-vers.texi): Use it for translating $(abs_srcdir).
5812         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
5813         * configure.ac (build_file_translate): Substitute it.
5814         * configure: Regenerate.
5815
5816 2008-02-19  Jan Hubicka  <jh@suse.cz>
5817
5818         PR rtl-optimization/34408
5819         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
5820         invalid sharing.
5821
5822 2008-02-19  Jan Hubicka  <jh@suse.cz>
5823
5824         PR middle-end/28779
5825         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
5826         call_expr.
5827
5828 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
5829
5830         PR Ada/35186
5831         * config/i386/i386-modes.def: Revert the last DI alignment
5832         change until Ada people can look into it.
5833
5834 2008-02-19  Nick Clifton  <nickc@redhat.com>
5835
5836         * opts.c (print_specific_help): Fix typo in --help text.
5837
5838 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
5839
5840         PR target/35239
5841         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
5842         32-bit inline asm without asm alternatives for host GCC < 3.0.
5843
5844 2008-02-19  Richard Guenther  <rguenther@suse.de>
5845
5846         PR tree-optimization/34989
5847         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
5848         Allow propagation to INDIRECT_REF if we can simplify only.
5849
5850 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5851
5852         * c-common.c (warn_for_collisions_1): Use appropriate option when
5853         warning.
5854
5855 2008-02-19  Nick Clifton  <nickc@redhat.com>
5856
5857         PR other/31349
5858         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
5859         (handle_options): Fix indentation.
5860         (print_filtered_help): If no language-specific options were
5861         displayed tell the user how to list all the options supported by
5862         the language's front-end.
5863         (print_specific_help): Fix indentation and remove duplicate line.
5864         (common_handle_option): Handle the -v option.
5865         For --help enable the display of undocumented options if the -v
5866         switch has been included on the command line.
5867         For --help= check for overlaps in the arguments between the option
5868         classes and the language names and issue a warning when they
5869         cannot be disambiguated.
5870         * c.opt (v): Pass on to the common option handler.
5871
5872 2008-02-19  Revital Eres  <eres@il.ibm.com> 
5873
5874         * modulo-sched.c (sms_schedule): Change dump message when
5875         create_ddg function fails.
5876         (try_scheduling_node_in_cycle): Rename row to cycle.
5877         (print_partial_schedule): Rename CYCLE to ROW.
5878
5879 2008-02-19  Christian Bruel  <christian.bruel@st.com>
5880             Zdenek Dvorak  <ook@ucw.cz>
5881
5882         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
5883
5884 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
5885
5886         PR target/33555
5887         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
5888         (*x86_movdicc_0_m1_se): Ditto.
5889
5890 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
5891
5892         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
5893         (CMPtype): Define as __gcc_CMPtype.
5894         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
5895         (CMPtype): Define as __gcc_CMPtype.
5896
5897 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
5898
5899         Support valgrind 3.3 for --enable-checking=valgrind.
5900         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
5901         here.
5902         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
5903         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
5904         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
5905         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
5906         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
5907         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
5908         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
5909         respectively.
5910         * ggc-zone.c: Similar.
5911         * ggc-page.c: Similar.
5912
5913 2008-02-19  Paul Brook  <paul@codesourcery.com>
5914
5915         PR target/35071
5916         * config/arm/ieee754-df.S: Fix do_it typo.
5917         * config/arm/ieee754-sf.S: Fix do_it typo.
5918
5919 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
5920
5921         PR target/35189
5922         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
5923         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
5924         (OPTION_MASK_ISA_SSE_SET): Likewise.
5925         (OPTION_MASK_ISA_SSE2_SET): Likewise.
5926         (OPTION_MASK_ISA_SSE3_SET): Likewise.
5927         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
5928         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
5929         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
5930         (OPTION_MASK_ISA_SSE4_SET): Likewise.
5931         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
5932         (OPTION_MASK_ISA_SSE5_SET): Likewise.
5933         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
5934         (OPTION_MASK_ISA_MMX_UNSET): Updated.
5935         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
5936         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
5937         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
5938         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
5939         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
5940         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
5941         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
5942         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
5943         (OPTION_MASK_ISA_SSE4): Removed.
5944         (ix86_handle_option): Turn on bits in ix86_isa_flags and
5945         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
5946         (override_options): Don't turn on implied SSE/MMX bits in
5947         ix86_isa_flags.
5948
5949 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
5950
5951         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
5952         32bit host.
5953
5954 2008-02-18  Joey Ye  <joey.ye@intel.com>
5955
5956         PR middle-end/34921
5957         * tree-nested.c (insert_field_into_struct): Set type alignment
5958         to field alignment if the former is less than the latter.
5959
5960 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
5961
5962         * BASE-VER: Set to 4.4.0.
5963
5964 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5965
5966         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
5967         * doc/cfg.texi: Likewise.
5968         * doc/extend.texi: Likewise.
5969         * doc/gty.texi: Likewise.
5970         * doc/invoke.texi: Likewise.
5971         * doc/loop.texi: Likewise.
5972         * doc/md.texi: Likewise.
5973         * doc/passes.texi: Likewise.
5974         * doc/rtl.texi: Likewise.
5975         * doc/sourcebuild.texi: Likewise.
5976         * doc/tm.texi: Likewise.
5977         * doc/tree-ssa.texi: Likewise.
5978
5979 2008-02-17  Richard Guenther  <rguenther@suse.de>
5980
5981         PR middle-end/35227
5982         * tree-complex.c (init_parameter_lattice_values): Handle parameters
5983         without default definition.
5984
5985 2008-02-17  Richard Guenther  <rguenther@suse.de>
5986
5987         PR tree-optimization/35231
5988         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
5989         if A | B != 1.
5990
5991 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
5992
5993         Revert:
5994         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
5995         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
5996         libgcc_cmp_return mode.
5997
5998 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5999
6000         PR c/28368
6001         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
6002
6003 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
6004
6005         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
6006         multilibs.
6007
6008 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6009
6010         * doc/c-tree.texi: Use `@.' where appropriate.
6011         * doc/extend.texi: Likewise.
6012         * doc/install.texi: Likewise.
6013         * doc/invoke.texi: Likewise.
6014         * doc/loop.texi: Likewise.
6015         * doc/makefile.texi: Likewise.
6016         * doc/md.texi: Likewise.
6017         * doc/passes.texi: Likewise.
6018         * doc/standards.texi: Likewise.
6019         * doc/tm.texi: Likewise.
6020
6021 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
6022
6023         PR middle-end/35196
6024         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
6025         in entry_bb.
6026         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
6027         rather than in entry_bb.
6028
6029 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
6030
6031         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
6032         libgcc_cmp_return mode.
6033
6034 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
6035
6036         PR middle-end/35130
6037         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
6038         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
6039
6040 2008-02-15  Richard Guenther  <rguenther@suse.de>
6041             Zdenek Dvorak  <ook@ucw.cz>
6042
6043         PR tree-optimization/35164
6044         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
6045         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
6046         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
6047         Only propagate addresses which do not have abnormal SSA_NAMEs
6048         in their operands.
6049
6050 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
6051
6052         PR target/35088
6053         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
6054
6055 2008-02-15  Jan Hubicka  <jh@suse.cz>
6056
6057         PR middle-end/35149
6058         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
6059
6060 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
6061
6062         PR middle-end/34621
6063         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
6064         when calculating alignment_pad.
6065
6066 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
6067
6068         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
6069         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
6070         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
6071         and STACK_BOUNDARY define.
6072
6073 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
6074
6075         PR preprocessor/35061
6076         * c-pragma.c (handle_pragma_pop_macro): Check that
6077         pushed_macro_table has been allocated.
6078
6079 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
6080
6081         PR middle-end/35136
6082         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
6083         (force_gimple_operand): Likewise.
6084         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
6085         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
6086         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
6087         (find_interesting_uses_address): Check addressability and alignment
6088         of the base expression only after substituting bases of IVs into it.
6089
6090 2008-02-14  Michael Matz  <matz@suse.de>
6091
6092         PR target/34930
6093         * function.c (instantiate_virtual_regs_in_insn): Reload address
6094         before falling back to reloading the whole operand.
6095
6096 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
6097
6098         * config/s390/s390.c (s390_mainpool_start): Emit the pool
6099         before the first section switch note.
6100
6101 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6102
6103         * doc/bugreport.texi: Update copyright years.
6104         * doc/c-tree.texi: Likewise.
6105         * doc/cfg.texi: Likewise.
6106         * doc/cpp.texi: Likewise.
6107         * doc/cppinternals.texi: Likewise.
6108         * doc/fragments.texi: Likewise.
6109         * doc/frontends.texi: Likewise.
6110         * doc/gcc.texi: Likewise.
6111         * doc/gty.texi: Likewise.
6112         * doc/hostconfig.texi: Likewise.
6113         * doc/implement-c.texi: Likewise.
6114         * doc/libgcc.texi: Likewise.
6115         * doc/loop.texi: Likewise.
6116         * doc/makefile.texi: Likewise.
6117         * doc/options.texi: Likewise.
6118         * doc/passes.texi: Likewise.
6119         * doc/rtl.texi: Likewise.
6120         * doc/sourcebuild.texi: Likewise.
6121         * doc/standards.texi: Likewise.
6122         * doc/tree-ssa.texi: Likewise.
6123         * doc/trouble.texi: Likewise.
6124
6125         * doc/extend.texi: Use @: or add comma where appropriate.
6126         * doc/invoke.texi: Likewise.
6127         * doc/tm.texi: Likewise.
6128
6129 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
6130
6131         PR target/34393
6132         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
6133         to a reg.
6134
6135 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
6136
6137         * doc/md.texi (clz, ctz): Add reference.
6138         * doc/rtl.texi (clz, ctz): Likewise.
6139
6140 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6141
6142         PR other/35148
6143         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
6144         srcdir.
6145
6146 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
6147
6148         * config/s390/s390.c (struct constant_pool): New field
6149         emit_pool_after added.
6150         (s390_mainpool_start): Set the emit_pool_after flag according
6151         to the section switch notes.
6152         (s390_mainpool_finish): Consider emit_pool_after when emitting
6153         the literal pool at the end of the function.
6154         (s390_chunkify_start): Force literal pool splits at section
6155         switch notes.
6156
6157 2008-02-13  Michael Matz  <matz@suse.de>
6158
6159         PR debug/35065
6160         * var-tracking.c (clobber_variable_part): Correctly traverse the
6161         list.
6162
6163 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6164
6165         PR 29673
6166         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
6167         Add -fdump-ipa-inline.
6168         * tree-dump.c (dump_files): Remove tree-inlined dump.
6169         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
6170         
6171 2008-02-12  Richard Guenther  <rguenther@suse.de>
6172
6173         PR tree-optimization/35171
6174         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
6175         default defs.
6176
6177 2008-02-12  Richard Guenther  <rguenther@suse.de>
6178
6179         PR middle-end/35163
6180         * fold-const.c (fold_widened_comparison): Use get_unwidened in
6181         value-preserving mode.  Disallow final truncation.
6182
6183 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
6184
6185         PR middle-end/35136
6186         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
6187         code from here to...
6188         (force_gimple_operand): ...here.
6189
6190 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
6191
6192         PR c++/35144
6193         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
6194         non-compatible pointers.
6195         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
6196         different FIELD_DECLs, try harder by comparing field offsets, sizes
6197         and types.
6198
6199         PR inline-asm/35160
6200         * function.c (match_asm_constraints_1): Don't replace the same input
6201         multiple times.
6202
6203 2008-02-12  Anatoly Sokolov <aesok@post.ru>
6204
6205         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
6206         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
6207         (expand_epilogue): Restore RAMPZ register.
6208         * config/avr/avr.md (RAMPZ_ADDR): New constant.
6209
6210 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
6211
6212         * config/i386/cygwin.asm: (__alloca): Correct calling
6213         convention and alignment.
6214         (__chkstk): Force 8 byte stack alignment.
6215
6216 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
6217             Richard Guenther  <rguenther@suse.de>
6218
6219         PR tree-optimization/33992
6220         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
6221         the zero we compare against.
6222
6223 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
6224
6225         PR libfortran/35063
6226         * gthr-win32.h (__gthread_mutex_destroy_function): New function
6227         to CloseHandle after unlocking to prevent accumulation of handle
6228         count.
6229
6230 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6231
6232         PR middle_end/34150
6233         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
6234         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
6235         and update LABEL_NUSES during and after reload.
6236
6237 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
6238
6239         PR middle-end/34627
6240         * combine.c (simplify_if_then_else): Make sure the comparison is
6241         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
6242
6243 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
6244
6245         PR bootstrap/35051
6246         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
6247         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
6248         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
6249         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
6250         * tree.h (get_type_static_bounds): Likewise.
6251
6252 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6253
6254         * doc/invoke.texi (Option Summary, C++ Dialect Options)
6255         (Objective-C and Objective-C++ Dialect Options, Warning Options):
6256         Make -Wfoo language annotations match what the compiler outputs.
6257
6258 2008-02-08  Sa Liu  <saliu@de.ibm.com>
6259
6260         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
6261         intrinsics spu_convts, spu_convtu, spu_convtf.
6262
6263 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
6264
6265         * doc/extend.texi (Function Attributes) <noinline>: Mention
6266         asm ("") as method to keep calls.
6267
6268 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6269
6270         PR other/32754
6271         * doc/options.texi (Options): Replace references to opts.sh with
6272         optc-gen.awk.
6273         * opts-common.c: Likewise.
6274         * optc-gen.awk: Likewise.
6275         
6276 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
6277
6278         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
6279
6280 2008-02-07  Richard Henderson  <rth@redhat.com>
6281
6282         PR rtl-opt/33410
6283         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
6284         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
6285         funny mode.
6286
6287 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
6288
6289         PR tree-optimization/35085
6290         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
6291         for operand entry oe2 in addition to operand entry oe3 in order to
6292         expose more opportunities for vectorizer sum reduction.
6293
6294 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6295
6296         PR other/35107
6297         * Makefile.in (LIBS): Remove $(GMPLIBS).
6298         (cc1-dummy, cc1): Add $(GMPLIBS).
6299
6300 2008-02-06  Jan Hubicka  <jh@suse.cz>
6301
6302         PR target/23322
6303         * i386.md (moddf_integer): Do not produce partial memory stalls for
6304         targets where it hurts.
6305
6306 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
6307
6308         PR target/35083
6309         * optabs.c (expand_float): Do not check for decimal modes when
6310         expanding unsigned integer through signed conversion.
6311
6312 2008-02-06  Nick Clifton  <nickc@redhat.com>
6313
6314         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
6315         inside the clobber with a match_operand and duplicated operand
6316         number in the constraint.
6317         (ineqbranchsi): Delete redundant comment.
6318
6319 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
6320
6321         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
6322         builtin_define ("__USE_INIT_FINI__").
6323         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
6324         -msx multilibs.
6325         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
6326
6327 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6328
6329         PR documentation/30330
6330         * doc/invoke.texi (C++ Dialect Options)
6331         (Objective-C and Objective-C++ Dialect Options, Warning Options):
6332         For each warning option -Wfoo that allows -Wno-foo, ensure both
6333         -Wfoo and -Wno-foo are listed in the option index.  Fix index
6334         entry of -Wswitch-default, index -Wnormalized= including the
6335         `=', and -Wlarger-than-@var{len} including @var{len}.
6336
6337 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
6338
6339         * config/i386/i386.md (floatunssisf2): Use
6340         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
6341         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
6342         Macroize expander using MODEF mode iterator.
6343
6344 2008-02-05  Diego Novillo  <dnovillo@google.com>
6345
6346         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
6347
6348         PR 33738
6349         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
6350
6351 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6352
6353         PR other/35070
6354         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
6355
6356 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
6357
6358         PR target/35084
6359         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
6360         to indicate if a message should be generated.
6361         (init_cumulative_args): Updated.
6362         (function_value_32): Likewise.
6363
6364 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
6365
6366         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
6367
6368 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
6369
6370         PR target/35083
6371         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
6372         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
6373
6374 2008-02-04  Diego Novillo  <dnovillo@google.com>
6375
6376         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
6377
6378         PR 33738
6379         * tree-vrp.c (vrp_evaluate_conditional): With
6380         -Wtype-limits, emit a warning when comparing against a
6381         constant outside the natural range of OP0's type.
6382
6383 2008-02-04  Richard Guenther  <rguenther@suse.de>
6384
6385         PR middle-end/33631
6386         * expr.c (count_type_elements): Give for unions instead of
6387         guessing.
6388
6389 2008-02-04  Richard Guenther  <rguenther@suse.de>
6390
6391         PR middle-end/35043
6392         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
6393         to TYPE_DOMAINs base type instead of using bitsizetype here.
6394
6395 2008-02-03  Jason Merrill  <jason@redhat.com>
6396
6397         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
6398
6399 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6400
6401         PR other/29972
6402         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
6403         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
6404         (RS/6000 and PowerPC Options): Fix typos and markup.
6405         * doc/passes.texi (Tree-SSA passes): Likewise.
6406
6407 2008-02-02  Michael Matz  <matz@suse.de>
6408
6409         PR target/35045
6410         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
6411         from record_last_reg_set_info.
6412         (record_last_reg_set_info): Take an RTX argument, iterate over all
6413         constituent hardregs.
6414         (record_last_set_info, record_opr_changes): Change calls to
6415         new signature or to record_last_reg_set_info_regno.
6416
6417 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
6418
6419         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
6420
6421 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
6422
6423         PR rtl-optimization/34773
6424         * reg-notes.def (EQUAL): Mention significance of combination of
6425         REG_EQUAL and REG_RETVAL.
6426         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
6427         insn that has a REG_RETVAL.
6428
6429 2008-02-01  Roger Sayle  <roger@eyesopen.com>
6430
6431         PR bootstrap/33781
6432         * configure.ac (--enable-fixed-point): Disable unless explicitly
6433         requested on IRIX.
6434         * configure: Regenerate.
6435
6436 2008-02-01  Richard Guenther  <rguenther@suse.de>
6437
6438         PR other/35042
6439         * invoke.texi (-finline-limit): Remove no longer true parts
6440         of the documentation.  Note that there is no default value.
6441
6442 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
6443             Mark Mitchell  <mark@codesourcery.com>
6444             Ben Elliston  <bje@au.ibm.com>
6445
6446         PR c/29326
6447         * doc/extend.texi (Other Builtins): Document.
6448
6449 2008-01-31  Tom Browder <tom.browder@gmail.com>
6450
6451         * doc/c-tree.texi (Types): Fix grammar.
6452         (Expression trees): Ditto.
6453         * doc/passes.texi (Tree-SSA passes): Ditto.
6454         
6455         * doc/configterms.texi (Configure Terms): Fix typo.
6456         * doc/cpp.texi (Common Predefined Macros): Ditto.
6457         * doc/md.texi (Machine Constraints): Ditto.
6458         
6459         * doc/makefile.texi (Makefile): Add comma.
6460
6461 2008-01-31  Tom Browder  <tom.browder@gmail.com>
6462             Gerald Pfeifer  <gerald@pfeifer.com>
6463         
6464         * doc/sourcebuild.texi (Front End): Remove references to CVS
6465         and CVSROOT/modules.
6466         (Texinfo Manuals): Replace reference to CVS by one to SVN.
6467         (Back End): Remove reference to CVS.
6468
6469 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
6470
6471         PR target/34900
6472         * config/mips/mips.c (gen_load_const_gp): New function, taking a
6473         comment from...
6474         (mips16_gp_pseudo_reg): ...here.
6475         * config/mips/mips.md (load_const_gp): Replace with...
6476         (load_const_gp_<mode>): ...this :P-based insn.
6477
6478 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6479
6480         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
6481         options. Minor fixes.
6482         (-std): Move reference to standards closer to where language
6483         standards are first mentioned.
6484         
6485 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
6486
6487         PR rtl-optimization/34995
6488         * reload.c (alternative_allows_const_pool_ref): Take an rtx
6489         parameter and return a bool.  If the rtx parameter is nonnull,
6490         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
6491         (find_reloads): Update call accordingly.  Pass the new operand
6492         if it needed no address reloads, otherwise pass null.
6493
6494 2008-01-30  Richard Henderson  <rth@redhat.com>
6495
6496         PR c/34993
6497         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
6498         for unbounded arrays.
6499
6500 2008-01-30  Silvius Rus  <rus@google.com>
6501
6502         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
6503
6504 2008-01-30  Jan Hubicka  <jh@suse.cz>
6505
6506         PR target/34982
6507         * i386.c (init_cumulative_args): Use real function declaration when
6508         calling locally.
6509
6510 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
6511
6512         PR rtl-optimization/34998
6513         * global.c (build_insn_chain): Treat non-subreg_lowpart
6514         SUBREGs of pseudos as clobbering all the words covered by the
6515         SUBREG, not just all the bytes.
6516         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
6517         original df_ref rather than an extract parameter.
6518         (global_conflicts): Update call accordingly.
6519
6520 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
6521
6522         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
6523         the overflow check to make it easier to read.
6524         (__fixtfdi): Change the type of the ll member in union
6525         long_double to UDItype_x.
6526
6527 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
6528
6529         PR middle-end/34969
6530         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
6531         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
6532         * tree-inline.c (fold_marked_statements): Call
6533         cgraph_update_edges_for_call_stmt if folding a call statement.
6534         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
6535         debug_generic_stmt calls, reset it back afterwards.
6536
6537         PR c/35017
6538         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
6539         static decls.
6540         * c-typeck.c (build_external_ref): Don't pedwarn about
6541         static vars in current function's scope.
6542
6543 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
6544
6545         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
6546
6547 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
6548
6549         PR c/35002
6550         * ipa-struct-reorg.c: Fix spelling.
6551         * params.def: Ditto.
6552
6553 2008-01-29  Richard Guenther  <rguenther@suse.de>
6554
6555         PR middle-end/35006
6556         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
6557         field.
6558         * tree-inline.c (remap_type): Increment remapping_type_depth
6559         around remapping types.
6560         (copy_body_r): Only add referenced variables if they are referenced
6561         from code, not types.
6562
6563 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
6564
6565         PR c++/34055
6566         PR c++/34103
6567         PR c++/34219
6568         PR c++/34606
6569         PR c++/34753
6570         PR c++/34754
6571         PR c++/34755
6572         PR c++/34919
6573         PR c++/34961
6574         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
6575         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
6576
6577 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
6578
6579         PR target/34412
6580         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
6581         pointer for tiny stack.
6582
6583 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
6584
6585         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
6586
6587 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
6588
6589         * config/vx-common.h: Fix typo in comment.
6590
6591 2008-01-28  Ian Lance Taylor  <iant@google.com>
6592
6593         PR c++/34862
6594         PR c++/33407
6595         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
6596         coalesce pointers if they have different DECL_NO_TBAA_P values.
6597         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
6598         between variables with different DECL_NO_TBAA_P values.
6599
6600 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
6601
6602         PR 31535
6603         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
6604         are not legitimate small data references on SPE targets.
6605
6606 2008-01-28  David Daney  <ddaney@avtrex.com>
6607
6608         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
6609
6610 2008-01-28  David Daney  <ddaney@avtrex.com>
6611
6612         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
6613
6614 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
6615
6616         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
6617         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
6618         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
6619         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
6620         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
6621         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
6622         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
6623         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
6624
6625 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
6626
6627         * basic-block.h (condjump_equiv_p): Fix comment.
6628
6629 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
6630
6631         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
6632         print_generic_stmt_indented): Fix comment.
6633
6634 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
6635
6636         * configure.ac (__stack_chk_fail): Add detecion for availability
6637         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
6638         * configure: Regenerate.
6639
6640 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
6641
6642         PR middle-end/34688
6643         * final.c (output_addr_const): Handle TRUNCATE.
6644
6645 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
6646
6647         PR target/34711
6648         * tree-ssa-loop-ivopts.c (comp_cost): New type.
6649         (zero_cost, infinite_cost): New constants.
6650         (struct cost_pair): Change type of cost to comp_cost.
6651         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
6652         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
6653         New functions.
6654         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
6655         split_address_cost, ptr_difference_cost, difference_cost,
6656         get_computation_cost_at, get_computation_cost,
6657         determine_use_iv_cost_generic, determine_use_iv_cost_address,
6658         determine_use_iv_cost_condition, determine_use_iv_costs,
6659         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
6660         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
6661         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
6662         Change type of cost to comp_cost.
6663         (determine_iv_cost): Increase cost of non-original ivs, instead
6664         of decreasing the cost of original ones.
6665         (get_address_cost): Indicate the complexity of the addressing mode 
6666         in comp_cost.
6667         (try_add_cand_for): Prefer using ivs not specific to some object.
6668         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
6669
6670 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
6671             Janis Johnson  <janis187@us.ibm.com>
6672
6673         PR target/34814
6674         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
6675         (TARGET_INSTANTIATE_DECLS): Likewise.
6676         * target.h (expand_to_rtl_hook): New target hook.
6677         (instantiate_decls): Likewise.
6678         * function.c (instantiate_decl): Make non-static.  Rename to...
6679         (instantiate_decl_rtl): ... this.
6680         (instantiate_expr): Use instantiate_decl_rtl.
6681         (instantiate_decls_1): Likewise.
6682         (instantiate_decls): Likewise.
6683         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
6684         * function.h (instantiate_decl_rtl): Add prototype.
6685         * cfgexpand.c (target.h): New include.
6686         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
6687         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
6688         (TARGET_INSTANTIATE_DECLS): Likewise.
6689         (TARGET_INITIALIZER): New target hooks added.
6690         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
6691         New prototype.
6692         * config/rs6000/rs6000.c (tree-flow.h): New include.
6693         (machine_function): Add sdmode_stack_slot field.
6694         (rs6000_alloc_sdmode_stack_slot): New function.
6695         (rs6000_instantiate_decls): Likewise.
6696         (rs6000_secondary_memory_needed_rtx): Likewise.
6697         (rs6000_check_sdmode): Likewise.
6698         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
6699         (TARGET_INSTANTIATE_DECLS): Likewise.
6700         (rs6000_hard_regno_mode_ok): Allow SDmode.
6701         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
6702         (rs6000_emit_move): Handle SDmode.
6703         (function_arg_advance): Likewise.
6704         (function_arg): Likewise.
6705         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
6706         SDmode var args for 32-bit compiles.
6707         (rs6000_secondary_reload_class): Handle SDmode.
6708         (rs6000_output_function_epilogue): Likewise.
6709         (rs6000_function_value): Simplify if statement.
6710         (rs6000_libcall_value): Likewise.
6711         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
6712         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
6713         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
6714         (movsd_hardfloat): New define_insn.
6715         (movsd_softfloat): Likewise.
6716         (movsd_store): Likewise.
6717         (movsd_load): Likewise.
6718         (extendsddd2): Likewise.
6719         (extendsdtd2): Likewise.
6720         (truncddsd2): Likewise.
6721         (movdd_hardfloat64): Fixup comment.
6722         (UNSPEC_MOVSD_LOAD): New constant.
6723         (UNSPEC_MOVSD_STORE): Likewise.
6724
6725 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
6726
6727         PR c++/34965
6728         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
6729         TRUTH_XOR_EXPR.
6730         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
6731         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
6732         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
6733         and TRUTH_XOR_EXPR.
6734
6735 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
6736
6737         PR target/34794
6738         * config.gcc: Separate AIX 5.3 from AIX 6.1.
6739         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
6740         __LONGDOUBLE128 too.
6741         * config/rs6000/aix61.h: New file.
6742
6743 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
6744
6745         PR rtl-optimization/34959
6746         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
6747         popcount and parity rtxes the same mode as their operand.
6748         Truncate or extend the result to the return value's mode
6749         if necessary.
6750
6751 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
6752
6753         PR target/34981
6754         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
6755         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
6756         to GOT_VERSION_REGNUM.
6757         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
6758         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
6759         * config/mips/mips.c (mips_emit_call_insn): New function.
6760         (mips_call_tls_get_addr): Call mips_expand_call directly.
6761         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
6762         emit_call_insn.
6763         (mips16_build_call_stub): Likewise.  Return the call insn or null.
6764         (mips_expand_call): Update the call to mips16_build_call_stub
6765         accordingly and a remove redundant condition.  Assert that MIPS16
6766         stubs do not use lazy binding.  Use mips_emit_call_insn and return
6767         the call insn.
6768         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
6769         TARGET_USE_GOT.
6770         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
6771         (mips_avoid_hazard): Remove hazard_set handling.
6772         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
6773         (UNSPEC_RESTORE_GP): ...this.
6774         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
6775         (FAKE_CALL_REGNO): Rename to...
6776         (GOT_VERSION_REGNUM): ...this.
6777         (type): Add "ghost" value.  Add an associated insn reservation.
6778         (hazard_set): Remove.
6779         (exception_receiver): Rename to...
6780         (restore_gp): ...this and update the unspec identifier accordingly.
6781         (exception_receiver, nonlocal_got_receiver): New expanders.
6782         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
6783         FAKE_CALL_REGNO.  Remove hazard_set attribute.
6784         (set_got_version, update_got_version): New patterns.
6785
6786 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
6787
6788         PR target/34970
6789         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
6790
6791 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
6792
6793         PR other/31955
6794         * doc/install.texi2html: Generate gcc-vers.texi.
6795
6796 2008-01-25  DJ Delorie  <dj@redhat.com>
6797
6798         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
6799
6800 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
6801
6802         * config/c4x: Remove directory.
6803         * config.gcc (crx-*, mt-*): Mark obsolete.
6804         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
6805         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
6806         sh-*-rtemscoff*): Remove cases.
6807         * defaults.h (C4X_FLOAT_FORMAT): Remove.
6808         * real.c (encode_c4x_single, decode_c4x_single,
6809         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
6810         c4x_extended_format): Remove.
6811         * real.h (c4x_single_format, c4x_extended_format): Remove.
6812         * doc/extend.texi (interrupt, naked): Remove mention of attributes
6813         on C4x.
6814         (Pragmas): Remove comment about c4x pragmas.
6815         * doc/install.texi (c4x): Remove target-specific instructions.
6816         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
6817         * doc/md.texi (Machine Constraints): Remove C4x documentation.
6818         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
6819         refer to C4x source files as examples.
6820         (C4X_FLOAT_FORMAT): Remove documentation.
6821
6822 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
6823
6824         * config/bfin/bfin.c (override_options): Reorder tests so that
6825         flag_pic gets enabled for -msep-data.
6826
6827 2008-01-25  Richard Guenther  <rguenther@suse.de>
6828
6829         PR middle-end/32244
6830         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
6831         to its bitfield precision if required.
6832
6833 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
6834
6835         PR middle-end/33880
6836         * tree-nested.c (walk_omp_for): New function.
6837         (convert_nonlocal_reference, convert_local_reference): Call
6838         walk_omp_for on OMP_FOR.
6839         (convert_call_expr): Call walk_body on OMP_FOR's
6840         OMP_FOR_PRE_INIT_BODY.
6841
6842 2008-01-25  Richard Guenther  <rguenther@suse.de>
6843
6844         PR tree-optimization/34966
6845         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
6846         default defs and PHI_NODEs we have to insert after the
6847         defining statement.
6848
6849 2008-01-24  Nick Clifton  <nickc@redhat.com>
6850
6851         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
6852         Provide a default definition.
6853         (LIBGCC2_UNITS_PER_WORD): Likewise.
6854
6855         * config/stormy16/stormy16.c: Include df.h for the prototype
6856         for df_regs_ever_live_p.
6857         (xstormy16_expand_builtin_va_start): Convert the stack offset
6858         into a component_ref and then use POINTER_PLUS_EXPR to add it
6859         to the incoming_virtual_args_rtx.
6860         (xstormy16_gimplify_va_arg_expr): Rename to
6861         xstormy16_gimplify_va_arg_expr.
6862         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
6863         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
6864         xstormy16_gimplify_va_arg_expr.
6865         Fix up some formatting issues.
6866
6867         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
6868         Move to predicates.md.
6869         (xs_hi_general_operand): Likewise.
6870         (xs_hi_nonmemory_operand): Likewise.
6871         * config/stormy16/predicates.md:
6872         (xstormy16_carry_plus_operand): New predicate.
6873         (xs_hi_general_operand): New predicate.
6874         (xs_hi_nonmemory_operand): New predicate.
6875         * config/stormy16/stormy16-protos.h:
6876         (xstormy16_carry_plus_operand): Delete prototype.
6877         (xs_hi_general_operand): Likewise.
6878         (xs_hi_nonmemory_operand): Likewise.
6879
6880         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
6881         modifiers as they are no longer needed and they can trigger
6882         reload spill failures.
6883
6884         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
6885         with a match_operand in order to help reload.
6886
6887         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
6888         constraint with 'e' for the 8th alternative as this version of
6889         the mov.w instruction only accepts the lower 8 registers.
6890
6891 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
6892
6893         PR target/34856
6894         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
6895         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
6896         vector elements.
6897
6898 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
6899
6900         PR middle-end/33333
6901         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
6902
6903 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
6904
6905         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
6906         New functions.
6907         (remove_structure): Update allocations list before removing structure.
6908         
6909 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
6910
6911         * ipa-struct-reorg.c (is_safe_cond_expr, 
6912         create_new_stmts_for_cond_expr): Use integer_zerop function,
6913         that recognize not only zero-pointer, but zero-integer too.
6914
6915 2008-01-25  Ben Elliston  <bje@au.ibm.com>
6916
6917         PR other/22232
6918         * fixproto: Escape "." in sed expression that strips leading "./".
6919
6920 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
6921
6922         PR driver/34904
6923         * gcc.c (SWITCH_OK): Removed.
6924         (SWITCH_LIVE): Changed to bit.
6925         (SWITCH_FALSE): Likewise.
6926         (SWITCH_IGNORE): Likewise.
6927         (switchstr): Change live_cond to unsigned int.
6928         (process_command): Replace SWITCH_OK with 0.
6929         (do_self_spec): Likewise.
6930         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
6931         (give_switch): Likewise.
6932         (used_arg): Likewise.
6933         (do_spec_1): Set the SWITCH_IGNORE bit.
6934         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
6935         bits.  Set the SWITCH_LIVE bit.
6936
6937 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
6938
6939         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
6940
6941 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
6942
6943         PR tree-optimization/34472
6944         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
6945         parameter to a "bool *" and set *DATA to false if there is
6946         an unsafe access.  Do not delete the structure here.
6947         (check_cond_exprs): Delete it here instead.
6948         (check_cond_exprs, exclude_cold_structs): Do not increase
6949         I when removing a structure.
6950
6951 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
6952
6953         PR target/34856
6954         * config/i386/i386.c (ix86_expand_vector_init): Consider only
6955         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
6956
6957 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
6958
6959         PR middle-end/34934
6960         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
6961         a fixed vector for stack.
6962
6963 2008-01-24  Ben Elliston  <bje@au.ibm.com>
6964
6965         PR c++/25701
6966         * doc/gcc.texi (Software development): Add a direntry for g++.
6967         
6968 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
6969
6970         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
6971         stale and straggling -fforce-addr comments above.
6972
6973         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
6974         define.
6975         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
6976         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
6977
6978 2008-01-23  Michael Matz  <matz@suse.de>
6979
6980         PR debug/34895
6981         * dwarf2out.c (force_type_die): Use modified_type_die instead of
6982         gen_type_die.
6983
6984 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
6985
6986         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
6987         malloc result type.
6988
6989 2008-01-23 Anatoly Sokolov <aesok@post.ru>
6990
6991         * config/avr/avr.c (avr_current_arch): New variable.
6992         (avr_arch_types): Add 'avr31' and 'avr51' entries.
6993         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
6994         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
6995         (avr_override_options): Init 'avr_current_arch'. 
6996         (base_arch_s): Move from here...
6997         * config/avr/avr.h (base_arch_s): ... here. Add new members 
6998         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
6999         'mega' to 'have_jmp_call'.
7000         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
7001         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
7002         macros.
7003         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
7004         architectures.
7005         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
7006         MULTILIB_MATCHES): (Ditto.).
7007
7008 2008-01-23  Richard Guenther  <rguenther@suse.de>
7009
7010         PR middle-end/31529
7011         * cgraphunit.c (cgraph_reset_node): Always mark the node
7012         not reachable if it is not queued already.
7013
7014 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
7015
7016         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
7017         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
7018         (cputype_selected): New static variable.
7019         (bfin_handle_option): Set it if -mcpu is used.
7020         (override_option): Select default set of workarounds if no cpu type
7021         selected on the command line.
7022         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
7023
7024         From  Michael Frysinger  <michael.frysinger@analog.com>
7025         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
7026         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
7027
7028         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
7029         for bf547, bf523, bf524, and bf526.
7030         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
7031         bf526.
7032         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
7033         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
7034         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
7035         __ADSPBF547__ and __ADSPBF54x__ for bf547.
7036         * doc/invoke.texi (Blackfin Options): Document that
7037         -mcpu now accept bf547, bf523, bf524, and bf526.
7038
7039 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
7040
7041         PR rtl-optimization/34628
7042         * combine.c (try_combine): Stop and undo after the first combination
7043         if an autoincrement side-effect on the first insn has effectively
7044         been lost.
7045
7046 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
7047
7048         PR target/34529
7049         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
7050         Offset addresses are not valid for Altivec or paired float modes.
7051
7052 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
7053
7054         PR c++/34607
7055         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
7056         if DECL_INITIAL (decl) is error_mark_node.
7057
7058         PR c++/34914
7059         * c-common.c (handle_vector_size_attribute): Only allow
7060         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
7061         the same way as pointer, array etc. types.
7062         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
7063
7064         PR c++/34917
7065         * tree.c (build_type_attribute_qual_variant): Call
7066         build_qualified_type if attributes are equal, but quals are not.
7067
7068 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7069
7070         PR 32102
7071         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
7072         * flags.h (warn_strict_aliasing): Remove.
7073         (warn_strict_overflow): Remove.
7074         * opts.c (warn_strict_aliasing): Remove.
7075         (warn_strict_overflow): Remove.
7076         * c-opts.c (c_common_handle_option): -Wall only sets
7077         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
7078         (c_common_post_options): Give default values to -Wstrict-aliasing
7079         and -Wstrict-overflow if they are uninitialized.
7080         * common.opt (Wstrict-aliasing): Specify Var and Init.
7081         (Wstrict-overflow): Likewise.
7082
7083 2008-01-22  Kenneth Zadeck <zadeck@naturalbridge.com>
7084
7085         PR rtl-optimization/26854
7086         PR rtl-optimization/34400
7087         PR rtl-optimization/34884
7088         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
7089         DF_RD->gen.
7090         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
7091         (df_rd_bb_info.expanded_lr_out): Deleted
7092         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
7093         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
7094         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
7095         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
7096         Removed code to allocate, initialize or free expanded_lr_out.
7097         (df_rd_bb_local_compute_process_def): Restructured to make more
7098         understandable.
7099         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
7100         sets if the sets are being trimmed.
7101
7102 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
7103
7104         PR bootstrap/32287
7105         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
7106         (as_vers): Likewise.
7107         * configure: Regenerated.
7108
7109 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7110
7111         PR middle-end/33092
7112         * tree-pass.h (pass_build_alias): New pass.
7113         * tree-ssa-alias.c (gate_build_alias): New.
7114         (pass_build_alias): New.
7115         * passes.c (init_optimization_passes): Add pass_build_alias after
7116         pass_create_structure_vars.
7117
7118 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
7119
7120         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
7121         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
7122         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
7123         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
7124         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
7125         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
7126         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
7127         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
7128         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
7129         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
7130         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
7131         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
7132         * config/s390/s390.md (FP_ALL): New mode iterator.
7133         (_d): New mode attribute.
7134         ("*signbit<mode>2>"): Changed mode of first operand.
7135         ("isinf<mode>2"): Changed mode of first operand.
7136         ("*TDC_insn"): Adaptation for DFP modes.
7137
7138 2008-01-22  Ben Elliston  <bje@au.ibm.com>
7139
7140         * tree.c (check_qualified_type): Improve function description.
7141
7142 2008-01-21  Jason Merrill  <jason@redhat.com>
7143
7144         PR c++/34196
7145         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
7146         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
7147         if it is set.
7148
7149 2008-01-21  DJ Delorie  <dj@redhat.com>
7150
7151         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
7152         return zero.
7153
7154 2008-01-21  Richard Guenther  <rguenther@suse.de>
7155
7156         PR middle-end/34856
7157         * tree-cfg.c (verify_expr): Allow all invariant expressions
7158         instead of just constant class ones as reference argument.
7159         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
7160         like any other constant.
7161         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
7162
7163 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
7164
7165         * regmove.c (fixup_match_1): Update call crossed frequencies.
7166
7167 2008-01-21  Richard Guenther  <rguenther@suse.de>
7168
7169         PR c/34885
7170         * tree-inline.c (setup_one_parameter): Deal with mismatched
7171         types using a VIEW_CONVERT_EXPR.
7172
7173 2008-01-21  Alon Dayan  <alond@il.ibm.com>
7174             Olga Golovanevsky  <olga@il.ibm.com>
7175         
7176         PR tree-optimization/34701
7177         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
7178         when the structure size is not a power of 2.
7179
7180 2008-01-20  Kenneth Zadeck <zadeck@naturalbridge.com>
7181
7182         * doc/install.texi: Add doc for --enable-checking=df.
7183         
7184 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7185
7186         PR rtl-optimization/34808
7187         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
7188
7189 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
7190
7191         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
7192         input.
7193
7194 2008-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
7195
7196         PR rtl-optimization/26854
7197         PR rtl-optimization/34400
7198         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
7199         DF_RD->gen.
7200         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
7201         (df_rd_bb_info.expanded_lr_out): New.
7202         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
7203         * loop_iv.c (iv_analysis_loop_init): Ditto.
7204         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
7205         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
7206         Added code to allocate, initialize or free expanded_lr_out.
7207         (df_rd_bb_local_compute_process_def): Restructured to make
7208         more understandable.
7209         (df_rd_confluence_n): Add code to do nothing with fake edges and
7210         code to no apply invalidate_by_call sets if the sets are being trimmed.
7211         (df_lr_local_finalize): Renamed to df_lr_finalize.
7212         (df_live_local_finalize): Renamed to df_live_finalize.
7213
7214 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
7215
7216         PR target/34831
7217         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
7218         deciding whether to use reciprocal instructions.
7219
7220 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
7221
7222         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
7223         dwarf2out_note_section_used if cold_text_section is NULL.
7224
7225 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
7226
7227         PR gcov-profile/34610
7228         * tree-cfg.c (make_edges): Mark both outgoing edges from
7229         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
7230         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
7231         from OMP_FOR and OMP_CONTINUE outgoing edges.
7232
7233         * tree-profile.c (tree_profiling): Return early if
7234         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
7235         at the end.
7236         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
7237         from cfun to child_cfun.
7238         * function.h (struct function): Add after_tree_profile bit.
7239
7240 2008-01-19 Anatoly Sokolov <aesok@post.ru>
7241
7242         * config/avr/avr.S (_exit): Disable interrupt.
7243
7244 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
7245             Steven Bosscher  <stevenb.gcc@gmail.com>
7246
7247         PR rtl-optimization/26854
7248         PR rtl-optimization/34400
7249         * df-problems.c (df_live_scratch): New scratch bitmap.
7250         (df_live_alloc): Allocate df_live_scratch when doing df_live.
7251         (df_live_reset): Clear the proper bitmaps.
7252         (df_live_bb_local_compute): Only process the artificial defs once
7253         since the order is not important.
7254         (df_live_init): Init the df_live sets only with the variables
7255         found live by df_lr.
7256         (df_live_transfer_function): Use the df_lr sets to prune the
7257         df_live sets as they are being computed.  
7258         (df_live_free): Free df_live_scratch.
7259
7260 2008-01-18  Ian Lance Taylor  <iant@google.com>
7261
7262         * common.opt: Add fmerge-debug-strings.
7263         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
7264         flag_merge_debug_strings rather than flag_merge_constants.
7265         * doc/invoke.texi (Option Summary): Mention
7266         -fmerge-debug-strings.
7267         (Debugging Options): Document -fmerge-debug-strings.
7268
7269 2008-01-18  Ian Lance Taylor  <iant@google.com>
7270
7271         PR c++/33407
7272         * tree.h (DECL_IS_OPERATOR_NEW): Define.
7273         (struct tree_function_decl): Add new field operator_new_flag.
7274         * tree-inline.c (expand_call_inline): When inlining a call to
7275         operator new, force the return value to go into a variable, and
7276         set DECL_NO_TBAA_P on that variable.
7277         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
7278
7279 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
7280
7281         PR debug/34484
7282         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
7283         DWARF2_DEBUGGING_INFO.
7284         (dwarf2out_note_section_used): Ditto.  Add prototype.
7285         (have_multiple_function_sections, text_section_used,
7286         cold_text_section_used, *cold_text_sections): Move declarations
7287         before their uses.
7288
7289 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
7290
7291         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
7292         field and add signal_ra.
7293         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
7294         assignments to frame state pc.  Move end of stack check after
7295         MD_FALLBACK_FRAME_STATE_FOR.
7296         (uw_update_context_1): Use frame state signal_regs if set, instead
7297         of checking signal_frame flag.
7298         (uw_update_context): Use frame state signal_ra if set.
7299         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
7300         * config/xtensa/linux-unwind.h: New file.
7301
7302 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
7303
7304         * modulo-sched.c (get_sched_window): Fix comment typo.
7305
7306 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
7307
7308         PR tree-optimization/34648
7309         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
7310
7311 2008-01-17  Anatoly Sokolov <aesok@post.ru>
7312
7313         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
7314         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
7315
7316 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
7317
7318         PR rtl-optimization/34400
7319         * df-core.c (df_worklist_dataflow_overeager,
7320         df_worklist_dataflow_doublequeue): New functions.
7321         (df_worklist_dataflow): Two different worklist solvers.
7322         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
7323         New param.
7324
7325 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7326
7327         PR testsuite/34821
7328         * doc/invoke.texi: Document the dependence on pthread for fopenmp
7329         and ftree-parallelize-loops.
7330
7331 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
7332
7333         PR rtl-optimization/34826
7334         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
7335
7336 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
7337
7338         * global.c (find_reg): Mark the eh regs as used if necessary.
7339         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
7340         * ra.h (struct allocno): no_eh_reg field added.  Changed
7341         no_stack_reg type to bitfield.
7342
7343 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
7344
7345         * tree.c (substitute_in_expr): Add missing 'break'.
7346
7347 2008-01-17  Richard Guenther  <rguenther@suse.de>
7348
7349         PR tree-optimization/34825
7350         * tree-ssa-math-opts.c (is_division_by): Do not recognize
7351         x / x as division to handle.
7352
7353 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7354
7355         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
7356         "-pthread" is specified.
7357         * pa-hpux11.h (LIB_SPEC): Likewise.
7358
7359 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
7360             Peter Bergner  <bergner@vnet.ibm.com>
7361
7362         PR rtl-optimization/33796
7363         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
7364
7365 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7366
7367         PR libgfortran/34699
7368         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
7369         static links.
7370         * pa-hpux10.h (LINK_SPEC): Likewise.
7371         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
7372
7373 2008-01-16  Richard Guenther  <rguenther@suse.de>
7374
7375         PR middle-end/32628
7376         * fold-const.c (fold_convert_const_int_from_int): Do not
7377         set overflow if that occured only because of a sign extension
7378         change when converting from/to a sizetype with the same
7379         precision and signedness.
7380
7381 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
7382
7383         PR debug/34249
7384         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
7385         location address to the correct place.  Update copyright year.
7386
7387 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7388
7389         * lambda-code.c (lambda_transform_legal_p): Handle the case of
7390         no dependences in the dependence_relations vector.
7391
7392 2008-01-16  Jan Hubicka  <jh@suse.cz>
7393
7394         PR rtl-optimization/31396
7395         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
7396         * cfg.c (dump_reg_info): Print it.
7397         * regs.h (struct reg_info_t): add freq_calls_crossed.
7398         (REG_FREQ_CALLS_CROSSED): New macro.
7399         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
7400         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
7401         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
7402         regmove_optimize): Update call crossed frequencies.
7403         * local-alloc.c (struct qty): Add freq_calls_crossed.
7404         (alloc_qty): Copute freq_calls_crossed.
7405         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
7406         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
7407         * ra.h (struct allocno): Add freq_calls_crossed.
7408
7409 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7410
7411         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
7412         libgomp when compiling with ftree-parallelize-loops.
7413         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
7414
7415 2008-01-16  Richard Guenther  <rguenther@suse.de>
7416
7417         PR tree-optimization/34769
7418         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
7419         * tree.c (int_cst_value): Instead make this function more
7420         permissive in what it accepts as valid input.  Document this
7421         function always sign-extends the value.
7422
7423 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
7424             Richard Guenther  <rguenther@suse.de>
7425
7426         PR c/34668
7427         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
7428         (gimple_fold_indirect_ref_rhs): ... this.
7429         (gimple_fold_indirect_ref): New function with foldings
7430         that preserve lvalueness.
7431         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
7432         * tree-flow.h (gimple_fold_indirect_ref): Declare.
7433         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
7434         to fold an INDIRECT_REF, fall back to the old use of
7435         fold_indirect_ref_1.
7436
7437 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7438
7439         * tree-data-ref.c (subscript_dependence_tester_1): Call 
7440         free_conflict_function.
7441         (compute_self_dependence): Same.
7442
7443 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
7444
7445         PR debug/34249
7446         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
7447         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
7448         function global.
7449         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
7450         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
7451         for DWARF2_UNWIND_INFO targets.
7452
7453 2008-01-16  Richard Guenther  <rguenther@suse.de>
7454
7455         PR c/34768
7456         * c-typeck.c (common_pointer_type): Do not merge inconsistent
7457         type qualifiers for function types.
7458
7459 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
7460
7461         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
7462         loop_iterator li from previous commit.
7463
7464 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
7465
7466         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
7467
7468 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
7469
7470         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
7471         (parallelize_loops): Don't parallelize irreducible components.
7472
7473 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7474
7475         PR c++/24924
7476         * c-opts (c_common_post_options): Do not enable CPP
7477         flag_pedantic_errors by default.
7478         
7479 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
7480
7481         PR rtl-optimization/31944
7482         * cse.c (remove_pseudo_from_table): New function.
7483         (merge_equiv_classes): Use above function to remove pseudo-registers.
7484         (invalidate): Likewise.
7485
7486 2008-01-13  Richard Guenther  <rguenther@suse.de>
7487
7488         PR middle-end/34601
7489         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
7490         instead of TYPE_MODE to deal with calls from expand_one_error_var.
7491
7492 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
7493
7494         * gcse.c (cprop_jump): Call validate_unshare_change instead of
7495         validate_change to unshare the source of the PC set.
7496
7497 2008-01-12  Jan Hubicka  <jh@suse.cz>
7498
7499         PR middle-end/32135
7500         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
7501         references above array bounds.  This might trigger bounds checks for
7502         pointers to arrays.
7503
7504 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
7505
7506         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
7507         new_replaceable_dependencies.
7508
7509 2008-01-12  Doug Kwan  <dougkwan@google.com>
7510
7511         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
7512         instead of OPT_Wreturn_type in warning due to ignored return type
7513         qualifiers.
7514         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
7515         options included in -Wextra.
7516         * c.opt: New option -Wignored_qualifiers.
7517         * doc/invoke.texi (Warning Options, -Wextra): Add new option
7518         -Wignore_qualifiers.
7519         (-Wignored-qualifiers): Document.
7520         (-Wreturn-type): Remove description of functionality now handled
7521         by -Wignored-qualifiers.
7522
7523 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
7524
7525         PR ada/33788
7526         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
7527         NOP_EXPR if it is between integral types with the same precision.
7528
7529 2008-01-12  Jan Hubicka  <jh@suse.cz>
7530
7531         PR other/28023
7532         * invoke.texi (max-inline-recursive-depth): Fix default value.
7533
7534 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
7535
7536         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
7537         correct type.
7538
7539 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
7540         
7541         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
7542         
7543 2008-01-11  James E. Wilson  <wilson@specifix.com>
7544
7545         PR target/26015
7546         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
7547
7548 2008-01-11  Anatoly Sokolov <aesok@post.ru>
7549
7550         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
7551         save/restore frame pointer register and don't use 'call-prologues' 
7552         optimization in function with "OS_task" attribute.
7553
7554 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
7555
7556         PR middle-end/31309
7557         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
7558         when copying to memory.
7559
7560 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
7561
7562         PR rtl-optimization/30905
7563         * cfgcleanup.c: Include dce.h
7564         (crossjumps_occured): New global variable.
7565         (try_crossjump_bb): Exit loop after finding a fallthru edge.
7566         If something changed, set crossjumps_occured to true.
7567         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
7568         Don't add/remove fake edges to exit here...
7569         (cleanup_cfg): ...but do it here, when crossjumping.
7570         Run a fast DCE when successful crossjumps occured in the latest
7571         iteration of try_optimize_cfg.
7572
7573 2008-01-11  Richard Guenther  <rguenther@suse.de>
7574
7575         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
7576         (struct vn_unary_op_s): Likewise.
7577         (vn_reference_insert): Free old reference on hash collision.
7578
7579 2008-01-10  Raksit Ashok  <raksit@google.com>
7580
7581         PR rtl-optimization/27971
7582         * combine.c (find_split_point): Split PLUS expressions which are
7583         inside a MEM rtx, and whose first operand is complex.
7584
7585 2008-01-10  DJ Delorie  <dj@redhat.com>
7586
7587         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
7588         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
7589         (m32c_hard_regno_ok): Call the underlying function.
7590
7591 2008-01-10  Richard Guenther  <rguenther@suse.de>
7592
7593         PR middle-end/34683
7594         * tree-cfg.c (tree_merge_blocks): Do not go through the
7595         full-blown folding and stmt updating path if we just deal
7596         with virtual operands.
7597         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
7598         test for abnormal SSA_NAMEs.
7599
7600 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
7601
7602         PR middle-end/34641
7603         * reload.c (push_reload): Add assertions.  All constants from
7604         reg_equiv_constant should have been used for replacing the respective
7605         pseudo earlier.
7606         (find_reloads_address): Invoke find_reloads_address_part for
7607         constant taken from the reg_equiv_constant array.
7608
7609 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
7610
7611         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
7612         field (valnum) the first in the struct.  Replace bools with
7613         unit bit fields.
7614
7615 2008-01-10  Richard Guenther  <rguenther@suse.de>
7616
7617         PR tree-optimization/34651
7618         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
7619         types and ordering for masking and converting.
7620
7621 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
7622
7623         PR tree-optimization/34017
7624         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
7625         also for PHI_NODE expressions.
7626
7627 2008-01-09  Jan Hubicka  <jh@suse.cz>
7628
7629         PR tree-optimization/34708
7630         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
7631         based on number of case labels.
7632         (init_inline_once): Remove switch_cost.
7633         * tree-inline.h (eni_weights_d): Remove switch_cost.
7634
7635 2008-01-09  Richard Guenther  <rguenther@suse.de>
7636         Andrew Pinski  <andrew_pinski@playstation.sony.com>
7637
7638         PR middle-end/30132
7639         * gimplify.c (gimplify_cond_expr): Do not create an addressable
7640         temporary if an rvalue is ok or an lvalue is not required.
7641
7642 2008-01-09  Richard Guenther  <rguenther@suse.de>
7643
7644         PR middle-end/34458
7645         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
7646         adjust return type.
7647
7648 2008-01-09  Richard Guenther  <rguenther@suse.de>
7649
7650         PR middle-end/34679
7651         * tree.c (host_integerp): Check for sizetype only if the
7652         type is an integer type.
7653
7654 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
7655
7656         PR debug/26364
7657         * opts.c (decode_options): Disable inlining of functions called
7658         once if not in unit-at-a-time mode.
7659
7660 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
7661
7662         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
7663
7664 2008-01-08  Richard Guenther  <rguenther@suse.de>
7665
7666         PR middle-end/31863
7667         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
7668         out early if the result will be unused.
7669
7670 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
7671
7672         PR target/34709
7673         Revert:
7674
7675         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
7676         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
7677         for TARGET_RECIP.       
7678         
7679 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
7680         
7681         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
7682         for vectorization tuned.
7683         
7684 2008-01-08  Richard Guenther  <rguenther@suse.de>
7685
7686         PR tree-optimization/34683
7687         * tree-ssa-operands.c (operand_build_cmp): Export.
7688         * tree-ssa-operands.h (operand_build_cmp): Declare.
7689         * tree-vn.c (vuses_compare): Remove.
7690         (sort_vuses): Use operand_build_cmp.
7691         (sort_vuses_heap): Likewise.
7692         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
7693         to re-use old VEC if available.  Do not sort already sorted VUSEs.
7694         (vdefs_to_vec): Do not sort already sorted VDEFs.
7695
7696 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
7697
7698         PR middle-end/34694
7699         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
7700
7701 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
7702
7703         PR target/34702
7704         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
7705         limitations of reciprocal sequences on x86 targets.
7706
7707 2008-01-08  Richard Guenther  <rguenther@suse.de>
7708
7709         PR tree-optimization/34683
7710         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
7711
7712 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
7713
7714         PR target/34622
7715         * config/darwin.c (darwin_mergeable_string_section): Don't use
7716         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
7717
7718 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
7719
7720         PR target/34682
7721         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
7722         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
7723         predicates of op0 and op1 to register_operand.
7724         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
7725         expander using X87MODEF mode iterator.  Change predicates of
7726         op0 and op1 to register_operand.
7727         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
7728         corresponding patterns and macroize using MODEF macro.  Change
7729         predicates of op0 and op1 to register_operand and remove
7730         "m" constraint. Disparage "r" alternative with "!".
7731         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
7732         macroize using X87MODEF macro.  Change predicates of op0 and op1
7733         to register_operand and remove "m" constraint.  Disparage "r"
7734         alternative with "!".
7735         (absneg splitter with memory operands): Remove.
7736         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
7737         patterns and macroize using X87MODEF mode iterator.
7738         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
7739         Change predicate of op1 to register_operand.
7740         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
7741         for memory operands.
7742
7743 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
7744
7745         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
7746
7747 2008-01-07  Richard Guenther  <rguenther@suse.de>
7748
7749         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
7750         fields.
7751
7752 2008-01-07  Richard Guenther  <rguenther@suse.de>
7753
7754         PR tree-optimization/34683
7755         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
7756         VOPs of the needed size to save memory.  Use VEC_quick_push
7757         to save compile-time.
7758         (vdefs_to_vec): Likewise.
7759
7760 2008-01-07  Sa Liu  <saliu@de.ibm.com>
7761
7762         * config/spu/spu.md (divdf3): Genetate inline code for double
7763         division.  The implementation doesn't handle INF or NAN, therefore it
7764         only applies when -ffinite-math-only is given.
7765
7766 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
7767
7768         PR libstdc++/34680
7769         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
7770         * doc/cpp.texi ([Common Predefined Macros]): Document.
7771
7772 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
7773
7774         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
7775         order to use commutative addition instead of subtraction.
7776
7777 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7778             Mircea Namolaru  <namolaru@il.ibm.com>
7779             Vladimir Yanovsky  <yanov@il.ibm.com>
7780             Revital Eres  <eres@il.ibm.com>
7781
7782         PR tree-optimization/34263
7783         * tree-outof-ssa.c (process_single_block_loop_latch,
7784         contains_tree_r): New functions.
7785         (analyze_edges_for_bb): Call process_single_block_loop_latch
7786         function to empty single-basic-block latch block if possible.
7787
7788 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
7789
7790         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
7791         for TARGET_RECIP.
7792         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
7793
7794 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
7795
7796         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
7797
7798 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
7799
7800         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
7801
7802 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
7803
7804         PR tree-optimization/34618
7805         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
7806         flag from T.
7807
7808 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
7809
7810         PR target/34673
7811         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
7812         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
7813         Update copyright year.
7814
7815         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
7816         Update copyright year.
7817         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
7818         using NR fixup.
7819
7820 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
7821
7822         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
7823         edge does not point to current bb before changing need_assert.
7824
7825 2008-01-04  Richard Guenther  <rguenther@suse.de>
7826
7827         PR middle-end/34029
7828         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
7829         for verifying purposes if they are is_gimple_min_invariant.
7830
7831 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
7832
7833         PR tree-optimization/34448
7834         PR tree-optimization/34465
7835         * gimplify.c (gimplify_init_constructor): Add new parameter
7836         notify_temp_creation.  Use it.
7837         (gimplify_modify_expr_rhs): Take volatiles into account when
7838         optimizing constructors.
7839         Do not optimize constructors if gimplify_init_constructor will dump to
7840         memory.
7841         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
7842         * gcc.c-torture/compile/pr34448.c: New.
7843
7844 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
7845
7846         PR gcov-profile/34609
7847         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
7848         return_slot if result is TREE_ADDRESSABLE.
7849
7850 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
7851
7852         * config/mips/mips.md (sqrt_condition): Tweak comment.
7853         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
7854
7855 2008-01-03  Tom Tromey  <tromey@redhat.com>
7856
7857         PR c/34457
7858         * c-common.c (c_type_hash): Handle VLAs.
7859
7860 2008-01-03  Jan Hubicka  <jh@suse.cz>
7861
7862         PR tree-optimization/31081
7863         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
7864         0 when inlining and not inlining to first basic block.
7865         (remap_decl): When var is initialized to 0, don't set default_def.
7866         (expand_call_inline): Set entry_bb.
7867         * tree-inline.h (copy_body_data): Add entry_bb.
7868
7869 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
7870
7871         PR c++/34619
7872         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
7873         before returning.
7874
7875         PR tree-optimization/29484
7876         * tree-inline.c (inline_forbidden_p_2): New function.
7877         (inline_forbidden_p): Disallow inlining if some static var
7878         has an address of a local LABEL_DECL in its initializer.
7879         * doc/extend.texi (Labels as Values): Document &&foo behaviour
7880         vs. inlining.
7881
7882 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
7883
7884         PR tree-optimization/34635
7885         * tree-data-ref.c (add_other_self_distances): Make sure that the
7886         evolution step is constant.
7887
7888 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
7889
7890         PR middle-end/34608
7891         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
7892
7893 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
7894
7895         * tree-sra.c (scalarize_init): Insert the generate_element_init
7896         statements after the generate_element_zero statements.
7897
7898 2008-01-02  Richard Guenther  <rguenther@suse.de>
7899
7900         PR middle-end/34093
7901         PR middle-end/31976
7902         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
7903         for very large number of operands instead of ICEing.
7904
7905 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
7906
7907         PR target/34013
7908         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
7909         while stack probing.
7910
7911 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
7912
7913         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
7914         in C++0x mode.
7915
7916 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
7917
7918         PR libmudflap/26442
7919         * tree-mudflap.c (mx_register_decls): Guard warning by
7920         !DECL_ARTIFICIAL check.
7921
7922 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
7923
7924         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
7925         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
7926         sse5_perm<mode>): Fix constraints.