OSDN Git Service

* c-ppoutput.c (init_pp_output): Initialize src_line to 1.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-08-21  Nathan Sidwell  <nathan@codesourcery.com>
2
3         * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
4
5 2008-08-21  Richard Henderson  <rth@redhat.com>
6
7         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
8         spurrious comma from test.
9         * configure: Rebuild.
10
11 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12
13         PR 30457
14         * builtins.c (fold_builtin_next_arg): Add warning about undefined
15         behaviour.
16         
17 2008-08-21  Aldy Hernandez  <aldyh@redhat.com>
18
19         * c-tree.h (grokfield): New argument.
20         * c-decl.c (grokfield): Handle new location argument.
21         * c-parser.c (c_parser_struct_declaration): Pass location to
22         grokfield.
23
24 2008-08-21  Richard Guenther  <rguenther@suse.de>
25
26         * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
27
28 2008-08-21  Jan Hubicka  <jh@suse.cz>
29
30         * cgraph.c (first_cgraph_function_insertion_hook): New variable.
31         (cgraph_add_function_insertion_hook, cgraph_remove_function_insertion_hook,
32         cgraph_call_function_insertion_hooks): New functions.
33         * cgraph.h (cgraph_add_function_insertion_hook, cgraph_remove_function_insertion_hook,
34         cgraph_call_function_insertion_hooks): Declare.
35         * ipa-reference.c (function_insertion_hook_holder): New variable.
36         (check_operand, look_for_address_of): When checking late, do not care
37         about module bitmaps.
38         (add_new_function): New function.
39         (generate_summary): Register hooks; zero module bitmaps.
40         (propagate): Unregister hooks.
41         * ipa-pure-const.c (function_insertion_hook_holder): New variable.
42         (add_new_function): New function.
43         (generate_summary): Register hook.
44         (propagate): Remove hook.
45
46         * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
47
48         * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
49         * ipa-cp.c (ipcp_update_cloned_node): New function.
50         (build_const_val): Handle functions correctly; bring type logic
51         into sync with tree-inline.c
52         (ipcp_init_stage):  Take care of computing stuff needed by
53         indirect inlining; update clones.
54         (ipcp_generate_summary): Break out of ipcp_driver.
55         (ipcp_driver): Do only execution and transformation.
56         (pass_ipa_cp): Make IPA_PASS.
57         * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
58         offset to address.
59         * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
60         ipcp, some info is already available.
61         * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
62         * tree-inline.c (remap_ssa_name): Unshare expression.
63
64 2008-08-21  Richard Guenther  <rguenther@suse.de>
65
66         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
67         a PHI ask VN if it is already available.
68         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
69         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
70
71 2008-08-21  Richard Guenther  <rguenther@suse.de>
72
73         PR middle-end/36817
74         * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
75         makes sure to produce a result of the correct type.
76
77 2008-08-21  Jan Hubicka  <jh@suse.cz>
78         Backport from LTO branch:
79
80         2008-05-05  Kenneth Zadeck <zadeck@naturalbridge.com>
81                     Jan Hubicka  <jh@suse.cz>
82         
83         * ipa-pure-const.c
84         (init_state, finish_state, set_function_state, generate_summary):
85         New functions.
86         (scan_stmt): Renamed from scan_function.  Changed to keep state in
87         local static vars rather than cgraph aux field.
88         (propagate): Renamed from static_execute. Changed to keep state in
89         local static vars rather than cgraph aux field.
90         (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
91         * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
92
93         2008-07-15  Kenneth Zadeck <zadeck@naturalbridge.com>
94
95         * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
96         * ipa-reference.c (init_function_info, generate_summary, 
97         propagate): New functions.
98         (analyze_function):  Call init_function_info.
99         (static_execute): Stripped into generate_summary and propagate.
100         (pass_ipa_reference): Made into ipa_opt_pass.
101
102 2008-08-21  Richard Guenther  <rguenther@suse.de>
103
104         PR tree-optimization/37181
105         * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
106         folding result.
107         (extract_range_from_unary_expr): Likewise.
108
109 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
110
111         * diagnostic.c (pedwarn_at): Rename as pedwarn.
112         (pedwarn): Delete.
113         * toplev.h (pedwarn_at): Likewise.
114         * builtins.c: Update all calls to pedwarn.
115         * c-lex.c: Likewise.
116         * toplev.c: Likewise.
117         * c-tree.h: Likewise.
118         * c-decl.c: Likewise.
119         * c-errors.c: Likewise.
120         * c-typeck.c: Likewise.
121         * c-common.c: Likewise.
122         * c-parser.c: Likewise.
123
124 2008-08-20  Joseph Myers  <joseph@codesourcery.com>
125
126         PR target/31070
127         * config/sparc/sparc.c (function_arg_slotno): Handle structure
128         with MODE_VECTOR_INT mode.
129
130 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
131
132         PR middle-end/179
133         * tree-ssa.c (warn_uninit): Do not warn for variables that can be
134         initialized outside the current module.
135         (warn_uninitialized_var): Ignore left-hand side when walking the
136         trees. Ignore address expressions. Examine VUSE operands in gimple
137         statements with a variable declaration on the right-hand side.
138
139 2008-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
140
141         PR bootstrap/37155
142         * rtlanal.c (subreg_offset_representable_p): Revert last change.
143
144 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
145
146         PR 35701
147         * c-common.c (conversion_warning): Do not warn if applying bit-and
148         operator to unsigned constant that fits in the target type.
149
150 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
151
152         PR c++/35602
153         * c-common.c (conversion_warning): Do not warn for artificial
154         expressions.
155
156 2008-08-20  Richard Guenther  <rguenther@suse.de>
157
158         * tree-vrp.c (op_with_constant_singleton_value_range): New function.
159         (extract_range_from_binary_expr): Fall back to constant propagation.
160         (extract_range_from_unary_expr): Likewise.
161
162 2008-08-20  Richard Guenther  <rguenther@suse.de>
163
164         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
165         with TREE_THIS_VOLATILE on shared nodes.
166         (fold_stmt_r): Likewise.
167
168 2008-08-20  Jakub Jelinek  <jakub@redhat.com>
169
170         PR c/37171
171         * c-parser.c (c_parser_attributes): For keywords use canonical
172         spelling for attr_name.
173
174 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
175
176         * value-prof.c (check_counter): Revert wrong call to error.
177         
178 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
179
180         * profile.c: Update calls to inform.
181         * value-prof.c: Update calls to inform.
182         
183 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
184
185         * diagnostic.c (inform): Add an explicit location_t parameter.
186         * toplev.h (inform): Update declaration.
187         * builtins.c: Update all calls to inform.
188         * c-common.c: Likewise.
189         * c-decl.c: Likewise.
190         * c-opts.c: Likewise.
191         * c-pch.c: Likewise.
192         * c-pragma.c: Likewise.
193         * c-typeck.c: Likewise.
194         * coverage.c: Likewise.
195         * opts.c: Likewise.
196         * toplev.c: Likewise.
197         * tree-cfg.c: Likewise.
198         * tree-ssa.c: Likewise.
199
200 2008-08-20  H.J. Lu  <hongjiu.lu@intel.com>
201
202         PR target/37169
203         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
204         V2DI mode, for SSE4.1, use movq instead of vector set if the
205         second element is zero and inter-unit moves are OK.
206
207 2008-08-20  Richard Guenther  <rguenther@suse.de>
208
209         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
210         properly handle conversion/copy chains after tuplification.
211
212 2008-08-20  Richard Guenther  <rguenther@suse.de>
213
214         * passes.c (init_optimization_passes): Move the second
215         forwprop pass before alias computation.  Remove the second
216         DCE pass.  Remove the first dominator and phi copy/const
217         prop passes.
218
219 2008-08-20  Nick Clifton  <nickc@redhat.com>
220
221         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
222         support of this feature.  Do not assume that a sufficiently new
223         assembler will support the feature regardless of the target type.
224         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
225         * configure: Regenerate.
226
227 2008-08-20  Richard Guenther  <rguenther@suse.de>
228
229         * tree-vrp.c (found_in_subgraph): Remove.
230         (live): New global static.
231         (live_on_edge): New function.
232         (blocks_visited): Remove.
233         (register_edge_assert_for_2): Use live_on_edge.
234         (find_conditional_asserts): Remove code dealing with
235         found_in_subgraph.  Do not walk the CFG.
236         (find_switch_asserts): Likewise.
237         (find_assert_locations_1): Renamed from find_assert_locations.
238         Move finding assert locations for conditional and switch
239         statements first.  Update live bitmap.  Do not walk the CFG.
240         (find_assert_locations): New function.
241         (insert_range_assertions): Remove entry of CFG walk.
242         Adjust call to find_assert_locations.
243         * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
244         that only can appear because of fake exit edges but assert we
245         never try to insert on those.
246         (fini_pre): Do not remove fake exit edges here...
247         (execute_pre): ...but here, before committing edge inserts.
248
249 2008-08-19  Richard Guenther  <rguenther@suse.de>
250
251         * passes.c (init_optimization_passes): Exchange store-ccp
252         with a ccp pass.
253
254 2008-08-19  Rafael Espindola  <espindola@google.com>
255
256       * varasm.c (weak_decls): Move earlier in the file.
257       (assemble_external): Add weak decls to the weak_decls list.
258       (declare_weak): Don't add decls to the weak_decls list.
259
260 2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>
261
262         PR target/37157
263         * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
264         before (sse2_shufpd_<mode>).
265
266 2008-08-19  Jakub Jelinek  <jakub@redhat.com>
267
268         PR debug/37156
269         * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
270         * tree.c (block_nonartificial_location): Likewise.
271
272 2008-08-19  Richard Guenther  <rguenther@suse.de>
273
274         PR tree-optimization/35972
275         PR tree-optimization/23094
276         * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
277         parameter.
278         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
279         handle MISALIGNED_INDIRECT_REF.
280         (get_ref_from_reference_ops): New helper.
281         (vn_reference_lookup_pieces): Walk the use-def chain using the
282         alias-oracle if requested.
283         * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
284         walking the use-def chain.
285         (compute_avail): But not here.
286         (create_component_ref_by_pieces_1): Properly handle
287         MISALIGNED_INDIRECT_REF.
288         (do_regular_insertion): Handle fully redundant
289         expressions after PHI-translation also for SSA_NAME values, not
290         only constants.  Correctly use edoubleprime for that.
291
292 2008-08-19  Ira Rosen  <irar@il.ibm.com>
293
294         * tree-vectorizer.c (supportable_widening_operation): Support
295         multi-step conversion, return the number of steps in such conversion
296         and the required intermediate types.
297         (supportable_narrowing_operation): Likewise.
298         * tree-vectorizer.h (vect_pow2): New function.
299         (supportable_widening_operation): Change argument types.
300         (supportable_narrowing_operation): Likewise.
301         (vectorizable_type_promotion): Add an argument.
302         (vectorizable_type_demotion): Likewise.
303         * tree-vect-analyze.c (vect_analyze_operations): Call 
304         vectorizable_type_promotion and vectorizable_type_demotion with
305         additional argument.
306         (vect_get_and_check_slp_defs): Detect patterns.
307         (vect_build_slp_tree): Add an argument, don't fail in case of multiple
308         types. 
309         (vect_analyze_slp_instance): Don't fail in case of multiple types. Call
310         vect_build_slp_tree with correct arguments. Calculate unrolling factor
311         according to the smallest type in the loop.
312         (vect_detect_hybrid_slp_stmts): Include statements from patterns.
313         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call 
314         supportable_widening_operation with correct arguments. 
315         * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector 
316         operands lists according to the number of vector statements in left
317         or right node, if exists.
318         (vect_gen_widened_results_half): Remove unused argument.
319         (vectorizable_conversion): Call supportable_widening_operation, 
320         supportable_narrowing_operation, and vect_gen_widened_results_half
321         with correct arguments. 
322         (vectorizable_assignment): Change documentation, support multiple
323         types in SLP. 
324         (vectorizable_operation): Likewise.
325         (vect_get_loop_based_defs): New function.
326         (vect_create_vectorized_demotion_stmts): Likewise.
327         (vectorizable_type_demotion): Support loop-aware SLP and general
328         multi-step conversion. Call vect_get_loop_based_defs and
329         vect_create_vectorized_demotion_stmts for transformation.
330         (vect_create_vectorized_promotion_stmts): New function.
331         (vectorizable_type_promotion): Support loop-aware SLP and general
332         multi-step conversion. Call vect_create_vectorized_promotion_stmts
333         for transformation.     
334         (vectorizable_store): Change documentation, support multiple
335         types in SLP. 
336         (vectorizable_load): Likewise.
337         (vect_transform_stmt): Pass SLP_NODE to 
338         vectorizable_type_promotion and vectorizable_type_demotion.
339         (vect_schedule_slp_instance): Move here the calculation of number
340         of vectorized statements for each node from...
341         (vect_schedule_slp): ... here.
342         (vect_transform_loop): Call vect_schedule_slp without the last
343         argument.
344
345 2008-08-19  Dorit Nuzman  <dorit@il.ibm.com>
346
347         PR bootstrap/37152
348         * tree-vect-transform.c (vect_create_epilog_for_reduction): Change = 
349         to == in assert statement.
350         (vectorizable_reduction): Fix typo.
351
352 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
353
354         PR bootstrap/37153
355         * value-prof.c (check_counter): Dereference pointer to overall
356         count when printing it.
357
358 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
359
360         * profile.h: Really add it.
361
362 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
363
364         * mcf.c: Really add it.
365
366 2008-08-18  Paul Yuan  <yingbo.com@gmail.com>
367             Vinodha Ramasamy  <vinodha@google.com>
368
369         * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
370         count_scale.
371         * value-prof.c (check_counter): Fix the counter if
372         flag_profile_correction is true.
373         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
374         tree_mod_subtract_transform):
375         Follow check_counter parameter change.
376         * common.opt (fprofile-correction): New option.
377         * mcf.c: New file.
378         * profile.h: Likewise.
379         * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
380         (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
381         is_inconsistent, set_bb_counts, read_profile_edge_counts): New
382         functions.
383         (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
384         flag_profile_correction is set.
385
386 >>>>>>> .r139386
387 2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
388
389         * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
390
391 2008-08-18  Tomas Bily  <tbily@suse.cz>
392
393         * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
394         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
395         CONVERT_EXPR_P.
396         * tree-data-ref.c (split_constant_offset_1): Likewise.
397         * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
398         * tree-sra.c (sra_walk_expr): Likewise.
399         * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
400         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
401         * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
402         * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
403         Likewise.
404         * gimple.c (gimple_assign_unary_nop_p): Likewise.
405         * tree-vect-transform.c (vectorizable_type_demotion)
406         (vectorizable_type_promotion): Likewise.
407         * tree-inline.c (expand_call_inline): 
408         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
409         (forward_propagate_addr_expr_1, forward_propagate_comparison)
410         (tree_ssa_forward_propagate_single_use_vars): Likewise.
411         * expr.c (expand_expr_real_1): Likewise.
412         * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
413         (gimple_assign_unary_useless_conversion_p): Likewise.
414         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
415         * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
416         * fold-const.c (fold_unary): Likewise.
417         * tree.h (CONVERT_EXPR_P): Likewise.
418         * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
419         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
420         * tree-vrp.c: 
421         (register_edge_assert_for_2, extract_range_from_unary_expr)
422         (register_edge_assert_for_1): Likewise.
423         
424 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
425
426         * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
427         dconst_third_ptr, dconst_sqrt2_ptr): Declare.
428         (enum real_value_const): Delete.
429         (get_real_const): Delete.
430         * real.c (get_real_const): Delete.
431         (dconst_e_ptr): Define.
432         (dconst_third_ptr): Define.
433         (dconst_sqrt2_ptr): Define.
434         * builtins.c: Update all callers.
435
436 2008-08-18  Richard Guenther  <rguenther@suse.de>
437
438         * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
439         statement iterator after statement removal.
440
441 2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>
442
443         * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
444         (detect_processor_freebsd): Likewise.
445         (host_detect_local_cpu): Call newly added functions for FreeBSD.
446
447 2008-08-18  Richard Guenther  <rguenther@suse.de>
448
449         * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
450         and loads have the correct types.
451
452 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
453
454         PR cpp/7263
455         * c-opts.c (cpp_opts): Remove static.
456         * c-parser.c (cpp_opts): Declare it extern.
457         (disable_extension_diagnostics): Handle cpp options.
458         (enable_extension_diagnostics): Likewise.
459
460 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
461
462         * diagnostics.c (permerror_at): Rename as permerror.
463         (permerror): Delete.
464         * toplev.h: Likewise.
465
466 2008-08-18  Richard Guenther  <rguenther@suse.de>
467
468         * passes.c (init_optimization_passes): Remove cleanup_cfg1,
469         sdse1 and addressables2 passes.  Replace dce1 with cddce1.
470         Move call_cdce before build_alias.  Move copyrename2,
471         cunrolli and ccp2 beafore build_alias.  Re-add addressable2
472         right after final inlining.
473         * tree-cfg.c (build_gimple_cfg): Do not dump function here.
474         (pass_build_cfg): But instead via TODO_dump_func.
475
476 2008-08-18  Richard Guenther  <rguenther@suse.de>
477
478         * tree-sra.c (generate_element_init_1): Deal with NULL constructor
479         element index.
480         (scalarize_init): If we failed to generate some initializers
481         do not generate zeros for not instantiated members.  Instead
482         rely on the copy out.
483         * tree-ssa-operands.c (get_addr_dereference_operands): Warn
484         about missing flow-sensitive alias info only if we have
485         aliases computed.
486
487 2008-08-17  Nick Clifton  <nickc@redhat.com>
488
489         * doc/extend.texi (Function Attributes): Fix typo in description
490         if hot function attribute.
491
492 2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
493             Richard Sandiford  <rdsandiford@googlemail.com>
494
495         * doc/install.texi (--with-mips-plt): Document.
496         * doc/invoke.texi (-mplt, -mno-plt): Document.
497         * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
498         and handle ${with_mips_plt}.
499         * config/mips/mips.opt (mplt): New option.
500         * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
501         (TARGET_ABICALLS_PIC2): Likewise.
502         (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
503         (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
504         (ASM_SPEC): Use !mabi=* instead of !mabi*.
505         (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
506         to decide whether to output ".option picX" directives.
507         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
508         Pass -call_nonpic rather than -KPIC for -mplt.
509         (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
510         on the command line.  Also remove it when -mabi=64 is used without
511         -msym32.
512         * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
513         * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
514         TARGET_ABICALLS_PIC0.
515         (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
516         TARGET_ABICALLS.
517         (mips16_build_function_stub): Only output ".option pic" directives
518         and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
519         (mips16_build_call_stub): Fix comment and remove redundant
520         ".set at"/"set .noat" directives.
521         (mips_function_rodata_section): Use the default behaviour for
522         TARGET_ABSOLUTE_ABICALLS.
523         (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
524         (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
525         (mips_restore_gp): Do nothing if the current function doesn't use
526         a global pointer.
527         (mips_expand_prologue): Only save $gp if the current function uses it.
528         Use a normal move for TARGET_ABICALLS_PIC0.
529         (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
530
531 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
532
533         * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
534         of function when handling GLOBAL_POINTER_REGNUM.
535
536 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
537
538         PR ada/20548
539         * common.opt (-fstack-check): Do not declare the variable here.
540         (-fstack-check=): New option variant.
541         * doc/invoke.texi (Code Gen Options): Document it.
542         * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
543         (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
544         (STACK_CHECK_STATIC_BUILTIN): New macro.
545         * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
546         * opts.c: Include expr.h.
547         (common_handle_option) <OPT_fold_stack_check_>: New case.
548         <OPT_fstack_check>: Likewise.
549         * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
550         consistently in the test for variable-sized types.  Adjust for
551         new behaviour of flag_stack_check.
552         * explow.c: Include except.h.
553         (allocate_dynamic_stack_space): Do not take into account
554         STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
555         * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
556         for variable-sized parameters.  Treat all parameters whose size is
557         greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
558         stack checking is enabled.
559         * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
560         size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
561         if generic stack checking is enabled.
562         (expand_function_end): Adjust for new behaviour of flag_stack_check.
563         * reload1.c (reload): Likewise.
564         * stmt.c (expand_decl): Assert that all automatic variables have
565         fixed size at this point and remove dead code.
566         * flags.h (stack_check_type): New enumeration type.
567         (flag_stack_check): Declare.
568         * toplev.c (flag_stack_check): New global variable.
569         * Makefile.in (opts.o): Add dependency on EXPR_H.
570         (explow.o): Add dependency on except.h.
571
572 2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>
573
574         * config/avr/avr.c (avr_override_options): Reduce value of 
575         PARAM_INLINE_CALL_COST.
576
577 2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>
578
579         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
580         to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
581         lieu of TYPE_MODE (type) throughout.
582
583 2008-08-15  Joseph Myers  <joseph@codesourcery.com>
584
585         * config/arm/arm.c (add_minipool_backward_ref): Check for
586         8-byte-aligned entries in second case of forcing insertion after a
587         particular entry.  Change third case to avoid inserting
588         non-8-byte-aligned entries before 8-byte-aligned ones.
589
590 2008-08-15  Richard Guenther  <rguenther@suse.de>
591
592         * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
593         strip components for unknown size accesses.
594
595 2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
596
597         * config/s390/2097.md New file.
598         * config/s390/s390.md ("z10prop" attribute): Define none,
599         z10_super, z10_super_E1, z10_super_A1, z10_super_c,
600         z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
601         z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
602         possible values and apply them to insns as appropriate.
603         ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
604         ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
605         fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
606         fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible
607         values.
608         ("bfp" mode attribute): Removed.  Every occurence replaced
609         with <mode>.
610         * config/s390/s390.c (struct "z10_cost"): Updated entries.
611         * config/s390/2084.md (insn_reservation "x_itof"): Updated
612           type attribute.
613
614 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
615
616         PR c/28152
617         * c-parser.c (c_lex_one_token): Do not store the canonical spelling
618         for keywords.
619         
620 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
621
622         * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
623         additional argument. Support reduction when duplication is needed due
624         to data-types of different sizes in the loop.
625         (get_initial_def_for_induction): Fix printout.
626         (vect_get_vec_def_for_stmt_copy): Support case where the
627         vec_stmt_for_operand is a phi node.
628         (vectorizable_reduction): Support reduction when duplication is needed 
629         due to data-types of different sizes in the loop.
630         (vectorizable_call): Remove restriction to not vectorize in case we 
631         have data-types of different sizes in the loop.
632         (vectorizable_conversion): Likewise.
633         (vectorizable_operation): Likewise.
634         (vectorizable_type_demotion): Likewise.
635         (vectorizable_type_promotion): Likewise.
636         (vectorizable_induction): Add restriction to not vectorize in case 
637         we have data-types of different sizes in the loop.
638
639 2008-08-14  Christophe Saout  <christophe@saout.de>
640             Uros Bizjak  <ubizjak@gmail.com>
641
642         PR target/37101
643         * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
644         (*vec_concatv2di_rex64_sse4_1): Ditto.
645         (*vec_concatv2di_rex64_sse): Ditto.
646
647 2008-08-14  Jakub Jelinek  <jakub@redhat.com>
648
649         PR middle-end/37103
650         * fold-const.c (fold_widened_comparison): Do not allow
651         sign changes that change the result even if shorter type
652         is wider than arg1_unw's type.
653
654 2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
655
656         * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
657         Skip if the multilib testing specifies -march that does not
658         agree with the one specified in the testcase.
659
660 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
661
662         * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
663         zero extend SImode values being converted to TFmode before passing
664         to libcalls.
665
666 2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
667
668         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
669         __PPU__ when targeting the Cell/B.E. PPU processor.
670
671 2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
672
673         * gimple.h (gimple_call_set_chain): Accept SSA variables.
674         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
675         Rematerialize the static chain, if any.
676         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
677         static chain.
678
679 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
680
681         * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
682         (new_loc_descr): Likewise.
683         (add_loc_descr): Likewise.
684         (size_of_loc_descr): Likewise.
685         (size_of_locs): Likewise.
686         (output_loc_operands): Likewise.
687         (output_loc_sequence): Likewise.
688         (new_reg_loc_descr): New.
689         (build_cfa_loc): Use it.
690         (build_cfa_aligned_loc): Likewise.
691         (one_reg_loc_descriptor): Likewise.
692         (based_loc_descr): Likewise.
693
694 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
695
696         PR 30551
697         * doc/invoke.texi (Wmain): Update.
698         * c-decl.c (start_decl): warn_main is only 0 or 1.
699         (start_function): Likewise. Fix formatting.
700         (finish_function): Delete redundant warning.
701         * c.opt (Wmain): Add Var(warn_main) and Init(-1).
702         * c-opts (c_common_handle_option): -Wall only has effect if
703         warn_main is uninitialized. OPT_Wmain is automatically
704         handled. -pedantic also enables Wmain.
705         (c_common_post_options): Handle all logic for Wmain here.
706         * c-common.c (warn_main): Delete.
707         (check_main_parameter_types): Make pedwarns conditional on
708         OPT_Wmain.
709         * c-common.h (warn_main): Delete.
710
711 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
712
713         PR middle-end/36701
714         * expr.c (emit_group_store): Allocate stack temp with the
715         largest alignment when copying from register to stack.
716
717 2008-08-13  Richard Guenther  <rguenther@suse.de>
718
719         * tree.h (maybe_fold_offset_to_address): Declare.
720         * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
721         (ccp_fold): Handle pointer conversions the same as fold_stmt.
722         Likewise for POINTER_PLUS_EXPR.
723         (maybe_fold_offset_to_reference): Enable disabled code.
724         (maybe_fold_offset_to_address): New function.
725         (fold_stmt_r): Use it.
726         (fold_gimple_assign): Likewise.
727         * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
728         (gimplify_expr): Likewise.
729
730 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
731
732         * toplev.h (pedwarn_at): Fix declaration.
733         
734 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
735
736         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
737         LINK_SPEC): Use %R in -Y P argument.
738
739 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
740
741         PR c/15236
742         * diagnostic.c (pedwarn_at): New.
743         * toplev.h (pedwarn_at): Declare.
744         * c-tree.h (build_enumerator): Update declaration.
745         * c-decl.c (finish_enum): Update comment.
746         (build_enumerator): Take a location parameter. Give a pedwarn but do
747         not perform any conversion.
748         * c-parser.c (c_parser_enum_specifier): Set correct location for
749         enumerator.
750
751 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
752
753         PR 35635
754         * c-common.c (conversion_warning): Use a switch. Ignore boolean
755         expressions except for conversions to signed:1 bitfields. Handle
756         COND_EXPR with constant operands.
757         
758 2008-08-13  Richard Guenther  <rguenther@suse.de>
759
760         PR tree-optimization/15255
761         * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
762         (struct oecount_s): New struct and VEC types.
763         (cvec): New global.
764         (oecount_hash): New function.
765         (oecount_eq): Likewise.
766         (oecount_cmp): Likewise.
767         (zero_one_operation): New function.
768         (build_and_add_sum): Likewise.
769         (undistribute_ops_list): Perform un-distribution of multiplication
770         and division on the chain of summands.
771         (should_break_up_subtract): Also break up subtracts for factors.
772         (reassociate_bb): Delete dead visited statements.
773         Call undistribute_ops_list.  Re-sort and optimize if it did something.
774         * passes.c (init_optimization_passes): Move DSE before
775         reassociation.
776         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
777         PHI nodes.
778
779 2008-08-12  Janis Johnson  <janis187@us.ibm.com>
780
781         * doc/invoke.texi (-fipa-pta): Say the option is experimental.
782
783         * doc/invoke.texi: Revert unintended checkin.
784
785 2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
786
787         PR libgomp/26165
788         * gcc.c (include_spec_function): Tweak call to find_a_file.
789
790 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
791
792         PR middle-end/37014
793         * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
794         and TRUTH_ORIF_EXPR.
795         * dojump.c (do_jump): Likewise.
796
797         PR tree-optimization/37084
798         * tree-inline.c (copy_bb): Call gimple_regimplify_operands
799         if id->regimplify, don't assume stmt is a cast assignment.
800
801 2008-08-12  Anatoly Sokolov  <aesok@post.ru>
802
803         * final.c (final_scan_insn): Use app_enable/app_disable functions.
804
805 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
806
807         PR bootstrap/37097
808         * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
809         by last change.
810
811 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
812
813         * defaults.h (TARGET_FLOAT_FORMAT): Remove.
814         (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
815
816         * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
817         * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
818         * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
819         * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
820         * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
821
822         * doc/tm.texi (Storage Layout): Remove documentation for
823         TARGET_FLOAT_FORMAT.
824
825         * simplify-rtx.c (simplify_binary_operation_1): Replace
826         TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
827
828 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
829
830         * real.h (struct real_format): New member has_sign_dependent_rounding.
831         * real.c (ieee_single_format, mips_single_format, motorola_single_format,
832         spu_single_format, ieee_double_format, mips_double_format,
833         motorola_double_format, ieee_extended_motorola_format,
834         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
835         ieee_extended_intel_96_round_53_format, ibm_extended_format,
836         mips_extended_format, ieee_quad_format, mips_quad_format,
837         vax_f_format, vax_d_format, vax_g_format): Initialize it.
838         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
839
840         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
841         MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
842         * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
843         MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
844         (ROUND_TOWARDS_ZERO): Likewise.
845
846         * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
847         (FLOAT_MODE_FORMAT): New macro.
848         (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
849         (MODE_COMPOSITE_P): ... this new macro.
850         (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
851         MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
852         * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
853
854         * flags.h: Include "real.h".
855
856         * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
857         REAL_MODE_FORMAT_COMPOSITE_P.
858         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
859
860         * doc/tm.texi (Storage Layout): Remove documentation of
861         MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
862         MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
863         ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
864         they only apply to libgcc2.a.
865
866 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
867
868         * config/spu/float_disf.c: New file.
869         * config/spu/float_unsdisf.c: New file.
870         * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
871         (LIB2FUNCS_EXCLUDE): Define.
872
873 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
874             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
875
876         * real.h (struct real_format): New member round_towards_zero.
877         * real.c (round_for_format): Respect fmt->round_towards_zero.
878         (ieee_single_format, mips_single_format, motorola_single_format,
879         spu_single_format, ieee_double_format, mips_double_format,
880         motorola_double_format, ieee_extended_motorola_format,
881         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
882         ieee_extended_intel_96_round_53_format, ibm_extended_format,
883         mips_extended_format, ieee_quad_format, mips_quad_format,
884         vax_f_format, vax_d_format, vax_g_format): Initialize it.
885         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
886
887         * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
888         real_format to choose rounding mode when calling MPFR functions.
889         (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
890         (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
891
892         * real.h (real_to_decimal_for_mode): Add prototype.
893         * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
894         Respect target rounding mode when generating decimal representation.
895         (real_to_decimal): New stub for backwards compatibility.
896         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
897         real_to_decimal_for_mode instead of real_to_decimal.
898
899         * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
900
901 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
902             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
903
904         * real.c (spu_single_format): New variable.
905         * real.h (spu_single_format): Declare.
906
907         * config/spu/spu.c (spu_override_options): Install SFmode format.
908         (spu_split_immediate): Use integer mode to operate on pieces of
909         floating-point values in all cases.
910
911         * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
912         ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
913         ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
914
915 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
916
917         * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
918
919 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
920
921         * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
922
923 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
924
925         PR c++/36688
926         * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
927         on the VAR_DECL instead of TYPE_READONLY on its type.
928
929 2008-08-12  Ira Rosen  <irar@il.ibm.com>
930
931         * tree-vectorizer.c: Depend on langhooks.h.
932         (supportable_widening_operation): Add two arguments. Support double
933         type conversions.
934         (supportable_narrowing_operation): Likewise.
935         * tree-vectorizer.h (supportable_widening_operation): Add two 
936         arguments.
937         (supportable_narrowing_operation): Likewise.
938         * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
939         supportable_widening_operation with correct arguments.
940         * tree-vect-transform.c (vectorizable_conversion): Likewise.
941         (vectorizable_type_demotion): Support double type conversions.
942         (vectorizable_type_promotion): Likewise.
943         * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
944
945 2008-08-11  Michael Matz  <matz@suse.de>
946
947         * i386/i386.c (override_options): Move initialisation from
948         flag_schedule_insns_after_reload to here from ...
949         (optimization_options): ... here.
950
951 2008-08-11  Jakub Jelinek  <jakub@redhat.com>
952
953         PR rtl-optimization/36998
954         * dwarf2out.c (compute_barrier_args_size_1,
955         compute_barrier_args_size): Temporarily remove assertions.
956
957 2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
958
959         PR middle-end/20644
960         * tree-ssa.c (struct walk_data): Add new flag
961         warn_possibly_uninitialized.
962         (warn_uninitialized_var): Use it.
963         (warn_uninitialized_vars): New.
964         (execute_early_warn_uninitialized): Call it.
965         (execute_late_warn_uninitialized): Likewise.
966
967 2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
968
969         PR middle-end/36238
970         * reload1.c (gen_reload): Guard calls to get_secondary_mem
971         for memory subregs.
972
973 2008-08-09  Jan Hubicka  <jh@suse.cz>
974
975         PR target/37055
976         * optabs.c (maybe_emit_unop_insn): Remove produced code if
977         expansion failed.
978         (expand_fix): Be prepared for expansion to fail.
979         (expand_sfix_optab): Remove instructions if expansion failed.
980
981 2008-08-09  Anatoly Sokolov  <aesok@post.ru>
982
983         * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
984         avr31 architecture.
985         * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
986         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
987
988 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
989
990         * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
991         mips/t-libgcc-mips16 to tmake_file.
992         * config/mips/mips-protos.h (mips_call_type): New enum.
993         (mips_pic_base_register, mips_got_load): Declare.
994         (mips_restore_gp): Take an rtx argument.
995         (mips_use_pic_fn_addr_reg_p): Declare.
996         (mips_expand_call): Replace the sibcall_p argument with
997         a mips_call_type argument.  Add a lazy_p parameter.
998         (mips_split_call): Declare.
999         * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
1000         (MIPS16_PIC_TEMP): Likewise.
1001         (reg_class): Delete M16_NA_REGS.
1002         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
1003         (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
1004         (mips_split_hi_p): Declare.
1005         * config/mips/mips.c (mips_split_hi_p): New array.
1006         (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
1007         (mips_got_symbol_type_p): New function.
1008         (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
1009         (mips16_stub_function_p): New function.
1010         (mips16_local_function_p): Likewise.
1011         (mips_use_pic_fn_addr_reg_p): Likewise.
1012         (mips_cannot_force_const_mem): Return false for HIGHs.
1013         Extend CONST_INT and symbolic handling to MIPS16, using
1014         mips_symbol_insns to check that the base symbol type is a
1015         legitimate constant.  Reject GOT-based constants if
1016         TARGET_MIPS16_PCREL_LOADS.
1017         (mips_const_insns): Check targetm.cannot_force_const_mem when
1018         decomposing a symbolic base and a large offset.
1019         (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
1020         When calling a function that needs $25 from MIPS16 code,
1021         move the target address into $25 separately and add a USE
1022         to the call insn.
1023         (mips16_gp_pseudo_reg): Insert the initializer immediately
1024         before the first real insn.
1025         (mips_pic_base_register, mips_got_load): New functions.
1026         (mips_split_symbol): Generalize the name of the LO_SUM_OUT
1027         parameter to LOW_OUT.  Say that it can be any valid SET_SRC
1028         when splitting a load-address operation.  Split SYMBOL_GOT_DISP
1029         constants and highs of SYMBOL_GOT_PAGE_OFST constants.
1030         (mips_call_tls_get_addr): Update the call to mips_expand_call,
1031         also passing NULL_RTX rather than const0_rtx as the aux argument.
1032         (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
1033         instead of TARGET_EXPLICIT_RELOCS.
1034         (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
1035         (mips_load_call_address): Replace the sibcall_p argument with
1036         a mips_call_type argument.  Use mips_got_load.
1037         (mips16_local_alias): New structure.
1038         (mips16_local_aliases): New variable.
1039         (mips16_local_aliases_hash): New function.
1040         (mips16_local_aliases_eq): Likewise.
1041         (mips16_local_alias): Likewise.
1042         (mips16_stub_function): Likewise.
1043         (mips16_build_function_stub): Create a local alias for the target
1044         function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
1045         .cpload directive and an R_MIPS_NONE relocation for the target
1046         function, then load the alias rather than the function itself.
1047         Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
1048         (mips16_copy_fpr_return_value): Use mips16_stub_function and
1049         mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
1050         (mips16_build_call_stub): Replace the FN parameter with an
1051         FN_PTR parameter.  Force the address into a register if it
1052         isn't a call_insn_operand; don't rely on the caller to do this.
1053         If a call to a locally-defined and locally-binding MIPS16
1054         function must be made indirectly, redirect the call to the
1055         function's local alias.  Use mips16_stub_function_p,
1056         mips16_stub_function, mips_expand_call and use_reg.
1057         Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
1058         Use explicit %hi and %lo accesses where possible.
1059         Use MIPS_CALL to generate the correct code form of a
1060         jal instruction.  Add clobbers of $18 instead of uses.
1061         Update the call to mips_emit_call_insn.
1062         (mips_expand_call): Replace the SIBCALL_P argument with a
1063         mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
1064         Take a LAZY_P parameter.  Call mips16_build_call_stub first,
1065         allowing it to modify the call address.  Update the calls to
1066         mips_load_call_address and mips_emit_call_insn.
1067         (mips_split_call): New function.
1068         (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
1069         !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
1070         SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
1071         (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
1072         (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
1073         if TARGET_MIPS16.
1074         (mips_cprestore_slot): New function.
1075         (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
1076         and use mips_cprestore_slot.
1077         (mips_output_function_prologue): Handle TARGET_MIPS16 for
1078         LOADGP_OLDABI.
1079         (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
1080         then use a copygp_mips16 instruction to set up $28.
1081         (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
1082         (mips16_lay_out_constants): Call split_all_insns_noflow.
1083         (mips_reorg_process_insns): Explicitly set all_noreorder_p to
1084         false if TARGET_MIPS16.
1085         (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
1086         (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
1087         mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
1088         (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
1089         MIPS16 code.  Allow MIPS16 o32 PIC.
1090         (mips_override_options): Allow MIPS16 o32 PIC.
1091         * config/mips/mips.md: Lower CONST_GP_P moves into register moves
1092         after reload if TARGET_USE_GOT.
1093         (UNSPEC_COPYGP): New constant.
1094         (length): Use a default length of 8 for MIPS16 GOT loads.
1095         (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
1096         (*got_page<mode>): Check mips_split_hi_p.
1097         (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
1098         (unspec_got<mode>, unspec_call<mode>): New expanders.
1099         (load_got<mode>, load_call<mode>): Remove the length attributes.
1100         Use a got attribute instead of a type attribute.
1101         (copygp_mips16): New insn.
1102         (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
1103         (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
1104         (sibcall, sibcall_value, call, call_value): Update the calls
1105         to mips_expand_call.
1106         (call_internal, call_value_internal): Use mips_split_call.
1107         (call_value_multiple_internal): Likewise.
1108         (call_split): Move after call_internal (the insn it is split from).
1109         (call_internal_direct, call_value_internal_direct): Turn into
1110         define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
1111         (call_direct_split, call_value_direct_split): New patterns.
1112         * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
1113         and use M16_REGS instead of M16_NA_REGS.
1114         * config/mips/predicates.md (const_call_insn_operand): Replace
1115         the TARGET_ABSOLUTE_ABICALLS-based check with a more general
1116         mips_use_pic_fn_addr_reg_p check.
1117         (move_operand): Reject HIGHs if mips_split_hi_p.
1118         * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
1119         (__mips16_floatunsisf): Inline __mips16_floatsisf.
1120         (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
1121         * config/mips/libgcc-mips16.ver: New file.
1122         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
1123         $(srcdir)/config/mips/libgcc-mips16.ver.
1124
1125 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
1126
1127         * config/mips/mips.c (mips_unspec_address_offset): Move earlier in file.
1128         (mips_unspec_address, mips_unspec_offset_high): Likewise.
1129         (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
1130         (mips16_cfun_returns_in_fpr_p): Likewise.
1131
1132 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
1133
1134         * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
1135         * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
1136         rather than 4 to PC.
1137
1138 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
1139
1140         * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
1141         (FUNCTION_PROFILER): Save the static chain pointer into $2
1142         beforehand and restore it aftewards.
1143         (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
1144         address directly into $25 and call the function through $25;
1145         do not clobber $3.  Pad the DImode version to cover the space
1146         left by the deleted $25 <- $3 move.
1147         (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
1148         the removal of the $25 <- $3 move.
1149         (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
1150         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
1151
1152 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
1153             Daniel Jacobowitz  <dan@codesourcery.com>
1154
1155         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
1156         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
1157         (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
1158         * config/mips/mips.c (mips_start_function_definition): New function.
1159         (mips_end_function_definition): Likewise.
1160         (mips_output_function_prologue): Use mips_start_function_definition.
1161         (mips_output_function_epilogue): Use mips_end_function_definition.
1162         (build_mips16_function_stub): Use mips_start_function_definition
1163         and mips_end_function_definition.
1164         (build_mips16_call_stub): Likewise.
1165
1166 2008-08-09  Richard Guenther  <rguenther@suse.de>
1167
1168         * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
1169         * gimple.h (gimple_call_fn): Adjust comment.
1170         (gimple_call_set_fndecl): New function.
1171         (gimple_call_fndecl): Adjust for GIMPLE_CALL no
1172         longer having bare FUNCTION_DECL operand.
1173         (gimple_call_return_type): Likewise.
1174         * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
1175
1176         * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
1177         (gimple_mod_pow2): Likewise.
1178         (gimple_mod_subtract): Likewise.
1179         (gimple_ic): Likewise.
1180         (gimple_stringop_fixed_value): Likewise.
1181         (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
1182         longer having bare FUNCTION_DECL operand.
1183         * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
1184         * omp-low.c (optimize_omp_library_calls): Likewise.
1185         * cgraphunit.c (update_call_expr): Likewise.
1186         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
1187         (execute_convert_to_rsqrt): Likewise.
1188         * cfgexpand.c (gimple_to_tree): Simplify.
1189         (release_stmt_tree): Fix for GIMPLE_CALL no longer having
1190         bare FUNCTION_DECL operand.
1191         * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
1192         (convert_gimple_call): Use gimple_call_fndecl.
1193         * c-common.c (c_warn_unused_result): Likewise.
1194
1195 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1196
1197         PR c/17880
1198         * c-typeck.c (digest_init): Call verify_sequence_points from here.
1199         (c_finish_return): Likewise.
1200         (c_start_case): Likewise.
1201         * c-common.c (warn_for_collisions_1): Use explicit location in
1202         warning.
1203         * c-parser.c (c_parser_condition): New. Call
1204         verify_sequence_points.
1205         (c_parser_paren_condition): Call c_parser_condition.
1206         (c_parser_for_statement): Call c_parser_condition.
1207
1208 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1209
1210         PR 36901
1211         * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.  
1212         * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
1213         Moved from diagnostic.h
1214         (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
1215         DK_PERMERROR.
1216         (emit_diagnostic): New.
1217         (warning0, pedwarn0): Delete.
1218         (warning, warning_at, pedwarn, permerror): Return bool.  
1219         * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
1220         Moved to diagnostic.c.
1221         (struct diagnostic_context): Use correct type for
1222         classify_diagnostic.
1223         (diagnostic_report_diagnostic): Update declaration.
1224         (emit_diagnostic): Declare.
1225         * errors.c (warning): Return bool.  
1226         * errors.h (warning): Update declaration.
1227         * toplev.h (warning0, pedwarn0): Delete.
1228         (warning, warning_at, pedwarn, permerror): Return bool.
1229         * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
1230         * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
1231         inform. Update all calls.
1232         (diagnose_mismatched_decls): Check return value of warning/pedwarn
1233         before giving informative note.
1234         (implicit_decl_warning): Likewise.  
1235         * c-typeck.c (build_function_call): Likewise.  
1236         * tree-sssa.c (warn_uninit): Likewise.  
1237         * builtins.c (gimplify_va_arg_expr): Likewise.
1238
1239 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1240
1241         PR 7651
1242         * doc/invoke.texi (-Wextra): Move warning from here...
1243         (-Wuninitialized): ... to here.
1244         
1245 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1246
1247         PR 28875
1248         * flags.h (set_Wunused): Delete
1249         * toplev.c (process_options): Handle Wunused flags here.
1250         * opts.c (maybe_warn_unused_parameter): Delete.
1251         (common_handle_option): Replace set_Wunused by warn_unused.
1252         (set_Wextra): Do not handle Wunused-parameter here.
1253         (set_Wunused): Delete.
1254         * c-opts.c (c_common_handle_option): Replace set_Wunused by
1255         warn_unused.
1256         * common.opt (Wunused): Add Var and Init.
1257         (Wunused-function): Likewise.
1258         (Wunused-label): Likewise.
1259         (Wunused-parameter): Likewise.
1260         (Wunused-value): Likewise.
1261         (Wunused-variable): Likewise.
1262         
1263 2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>
1264
1265         * doc/invoke.texi: Add cpu_type power7.
1266         * config.in (HAVE_AS_VSX): New.
1267         * config.gcc: Add cpu_type power7.
1268         * configure.ac (HAVE_AS_VSX): Check for assembler support of the
1269         VSX instructions.
1270         * configure: Regenerate.
1271         * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
1272         power5.
1273         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
1274         (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
1275         (EXTRA_SPECS): Add asm_cpu_power7 spec string.
1276
1277 2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>
1278
1279         * tree-vect-transform.c (vectorizable_conversion): Pass the integral
1280         type to vectorize.builtin_conversion.
1281         (vectorizable_conversion): Likewise.
1282         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
1283         integral type as input.
1284         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
1285         FIX_TRUNC_EXPR.
1286         (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
1287         and ALTIVEC_BUILTIN_VCTSXS.
1288         (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
1289         formatting. 
1290
1291 2008-08-08  Richard Guenther  <rguenther@suse.de>
1292
1293         * tree-ssa-ccp.c (likely_value): Calls are not all varying.
1294         (surely_varying_stmt_p): Calls are varying only if they are
1295         non-builtin and not indirect or have no result.
1296         (ccp_fold): Re-instantiate code before the tuples merge.
1297
1298 2008-08-08  Richard Guenther  <rguenther@suse.de>
1299
1300         PR tree-optimization/37056
1301         * gimple.h (gimple_assign_rhs_class): New helper function.
1302         * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
1303         unary operations properly.
1304
1305 2008-08-07  Jan Hubicka  <jh@suse.cz>
1306
1307         * i386.h (ix86_size_cost): Declare.
1308         (ix86_cur_cost): New function macro.
1309         * i386.md (peepholes expanding size and splitters): Predicate by
1310         optimize_insn_for_speed_p.
1311         (peepholes reduce size and splitters): Predicate by
1312         optimize_insn_for_size_p.
1313         * i386.c (ix86_size_cost): Rename from ...
1314         (size_cost): This one.
1315         (override_options): Update.
1316         (decide_alg): Likewise.
1317         (ix86_expand_clear): Use RTL profile.
1318         (ix86_pad_returns): Use RTL profile.
1319
1320 2008-08-07  Jan Hubicka  <jh@suse.cz>
1321
1322         * recog.c (split_all_insns): Set RTL profile
1323         (peephole2_optimize): Likewise.
1324         * function.c (thread_prologue_and_epilogue_insns): Likewise.
1325         * combine.c (combine_instructions): Likewise.
1326
1327 2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1328
1329         * c-common.c (c_common_reswords): Also warn about keyword "bool".
1330
1331 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
1332         
1333         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
1334         value in a6 after the set_frame_ptr insn.
1335         
1336 2008-08-07  Richard Henderson  <rth@redhat.com>
1337
1338         PR debug/37033
1339         * gcc.c (cpp_options): Pass along -g*.
1340
1341 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
1342
1343         * config/arm/arm.c (output_move_neon): Update comment describing
1344         big-endian vector layout.
1345         (arm_assemble_integer): Do not handle big-endian NEON vectors
1346         specially.
1347         * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
1348         neon_vget_lane<mode>_sext_internal,
1349         neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
1350         element indices for big-endian.
1351
1352 2008-08-07  Richard Henderson  <rth@redhat.com>
1353
1354         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
1355         * configure, config.in: Rebuild.
1356         * debug.h (dwarf2out_do_cfi_asm): Declare.
1357         * c-cppbuiltin.c (c_cpp_builtins): Use it.
1358         * dwarf2out.c (dwarf2out_do_cfi_asm): New.
1359         (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
1360         dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
1361
1362 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
1363
1364         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
1365         movv2si_internal): Combine into mov<mode>_internal.
1366         (movv2si_internal_2): Remove.
1367
1368 2008-08-07  Jan Hubicka  <jh@suse.cz>
1369
1370         PR target/37048
1371         * i386.md (single stringop patterns): Enable unconditionally. 
1372
1373 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
1374
1375         PR target/36992
1376         * config/i386/emmintrin.h (_mm_move_epi64): Use
1377         __builtin_ia32_movq128.
1378
1379         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
1380         (bdesc_args): Add IX86_BUILTIN_MOVQ128.
1381
1382         * config/i386/sse.md (sse2_movq128): New.
1383
1384         * doc/extend.texi: Document __builtin_ia32_movq128.
1385
1386 2008-08-07  Richard Guenther  <rguenther@suse.de>
1387
1388         PR middle-end/37042
1389         * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
1390         pointers can access anything.
1391
1392 2008-08-06  Jan Hubicka  <jh@suse.cz>
1393
1394         * optabs.c (emit_unop_insn): Break out to ...
1395         (maybe_emit_unop_insn): ... this one.
1396         (expand_sfix_optab): Use maybe variant.
1397         * optabs.h (maybe_emit_unop_insn): Declare.
1398
1399         * i386.md (mov0 patterns): Enable by default.
1400         (FP conversion expanders): Disable expansion of code expanding
1401         sequences when instruction should be optimized for size.
1402         (single strinop patterns): Enable when optimizing for size.
1403         (string expanders): Disable expanding of code expanding sequences
1404         when optimizning instruction for size.
1405         * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
1406         per BB basis.
1407         (ix86_fp_comparison_sahf_cost): Likewise.
1408         (ix86_expand_branch): Likewise.
1409         (ix86_expand_ashl_const): Likewise.
1410         (ix86_split_ashl): Likewise.
1411         (ix86_expand_strlen): Likewise.
1412         (ix86_emit_fp_unordered_jump): Likewie.
1413
1414 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1415
1416         * c-common.c: Fix typo.
1417         (c_common_reswords): Activate more C++ keyword warnings.
1418
1419         * matrix-reorg.c (compute_offset): Avoid C++ keywords.
1420
1421 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1422
1423         PR 26785
1424         * diagnostic.c (permerror_at): New.
1425         * toplev.h (permerror_at): Declare.
1426         
1427 2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
1428             Ira Rosen  <irar@il.ibm.com>
1429
1430         * tree-vect-transform.c (vect_model_simple_cost): Return
1431         immediately if stmt is pure SLP.
1432         (vect_model_store_cost): Ditto.
1433         (vect_model_load_cost): Ditto.
1434         (vectorizable_store): Remove PURE_SLP check before call
1435         to vect_model_store_cost.
1436         (vect_model_store_cost): When checking whether stmt describe
1437         strided access, add a check that it is not slp_node.
1438
1439 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1440
1441         PR 8715
1442         * c-common.c (warn_for_sign_compare): New. Handle separately the
1443         case that 'constant' is zero.
1444         * c-typeck.c (build_binary_op): Move code to c-common.c
1445         
1446 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1447
1448         * config/alpha/alpha.c (alpha_preferred_reload_class,
1449         alpha_secondary_reload, alpha_emit_set_const_1, function_value,
1450         alpha_output_mi_thunk_osf): Avoid C++ keywords.
1451         * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
1452         * config/arm/arm.md: Likewise.
1453         * config/avr/avr-protos.h (preferred_reload_class,
1454         test_hard_reg_class, avr_simplify_comparison_p,
1455         out_shift_with_cnt, class_max_nregs): Likewise.
1456         * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
1457         output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
1458         preferred_reload_class, test_hard_reg_class): Likewise.
1459         * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
1460         bfin_memory_move_cost, bfin_secondary_reload,
1461         bfin_output_mi_thunk): Likewise.
1462         * config/crx/crx.c (crx_secondary_reload_class,
1463         crx_memory_move_cost): Likewise.
1464         * config/frv/frv-protos.h (frv_secondary_reload_class,
1465         frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
1466         * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
1467         frv_secondary_reload_class, frv_class_likely_spilled_p,
1468         frv_class_max_nregs): Likewise.
1469         * config/h8300/h8300.c (h8300_classify_operand,
1470         h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
1471         Likewise.
1472         * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
1473         * config/ia64/ia64.c (ia64_preferred_reload_class,
1474         ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
1475         * config/iq2000/iq2000.c (gen_int_relational): Likewise.
1476         * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
1477         Likewise.
1478         * config/m68hc11/m68hc11.c (preferred_reload_class,
1479         m68hc11_memory_move_cost): Likewise.
1480         * config/mcore/mcore.c (mcore_secondary_reload_class,
1481         mcore_reload_class): Likewise.
1482         * config/mips/mips.c (mips_hard_regno_mode_ok_p,
1483         mips_class_max_nregs, mips_cannot_change_mode_class,
1484         mips_preferred_reload_class, mips_secondary_reload_class,
1485         mips_output_mi_thunk): Likewise.
1486         * config/mmix/mmix.c (mmix_preferred_reload_class,
1487         mmix_preferred_output_reload_class, mmix_secondary_reload_class):
1488         Likewise.
1489         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
1490         Likewise.
1491         * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
1492         pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
1493         * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
1494         * config/rs6000/rs6000.c (paired_expand_vector_init,
1495         rs6000_secondary_reload_class, rs6000_output_mi_thunk,
1496         compare_section_name, rs6000_memory_move_cost): Likewise.
1497         * config/s390/s390.c (s390_emit_compare_and_swap,
1498         s390_preferred_reload_class, s390_secondary_reload,
1499         legitimize_pic_address, legitimize_tls_address,
1500         legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
1501         s390_class_max_nregs): Likewise.
1502         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
1503         * config/s390/s390.md: Likewise.
1504         * config/score/score-protos.h (score_secondary_reload_class,
1505         score_preferred_reload_class): Likewise.
1506         * config/score/score.c (score_preferred_reload_class,
1507         score_secondary_reload_class): Likewise.
1508         * config/score/score3.c (score3_output_mi_thunk,
1509         score3_preferred_reload_class, score3_secondary_reload_class,
1510         score3_hard_regno_mode_ok): Likewise.
1511         * config/score/score3.h (score3_preferred_reload_class,
1512         score3_secondary_reload_class): Likewise.
1513         * config/score/score7.c (score7_output_mi_thunk,
1514         score7_preferred_reload_class, score7_secondary_reload_class,
1515         score7_hard_regno_mode_ok): Likewise.
1516         * config/score/score7.h (score7_preferred_reload_class,
1517         score7_secondary_reload_class): Likewise.
1518         * config/sh/sh.c (prepare_move_operands, output_far_jump,
1519         output_branchy_insn, add_constant, gen_block_redirect,
1520         sh_insn_length_adjustment, sh_cannot_change_mode_class,
1521         sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload):
1522         Likewise.
1523         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
1524         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
1525         xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
1526         xstormy16_preferred_reload_class): Likewise.
1527         * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
1528         xtensa_expand_atomic, override_options,
1529         xtensa_preferred_reload_class, xtensa_secondary_reload_class):
1530         Likewise.
1531         * reorg.c (try_merge_delay_insns): Likewise.
1532         * tree.c (merge_dllimport_decl_attributes): Likewise.
1533
1534         * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
1535
1536 2008-08-06  Michael Matz  <matz@suse.de>
1537
1538         * Makefile.in (write_entries_to_file): Quote words.
1539         * gengtype.c: (read_input_line): Skip over leading white-space.
1540
1541 2008-08-06  Marc Gauthier  <marc@tensilica.com>
1542
1543         * config.gcc: Match more processor names for Xtensa.
1544         * configure.ac: Likewise.
1545         * doc/install.texi (Specific): Likewise.
1546         * configure: Regenerate.
1547
1548 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1549
1550         * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
1551         * calls.c (avoid_likely_spilled_reg): Likewise.
1552         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
1553         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
1554         * config/i386/i386.c (ix86_expand_special_args_builtin,
1555         ix86_secondary_reload): Likewise.
1556         * except.c (struct eh_region, gen_eh_region_catch,
1557         remove_unreachable_regions, duplicate_eh_regions,
1558         assign_filter_values, build_post_landing_pads,
1559         sjlj_find_directly_reachable_regions, remove_eh_handler,
1560         reachable_next_level, foreach_reachable_handler,
1561         can_throw_internal_1, can_throw_external_1,
1562         collect_one_action_chain): Likewise.
1563         * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
1564         * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
1565         * function.c (update_temp_slot_address, instantiate_new_reg,
1566         instantiate_virtual_regs_in_rtx,
1567         instantiate_virtual_regs_in_insn): Likewise.
1568         * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
1569         * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
1570         gimplify_cleanup_point_expr): Likewise.
1571         * ipa-cp.c (ipcp_lattice_changed): Likewise.
1572         * passes.c (next_pass_1): Likewise.
1573         * print-tree.c (print_node_brief, print_node): Likewise.
1574         * profile.c (branch_prob): Likewise.
1575         * tree-dump.c (dump_register): Likewise.
1576         * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
1577         Likewise.
1578         * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
1579         copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
1580         copy_edges_for_bb, copy_cfg_body, copy_tree_r,
1581         copy_arguments_for_versioning, copy_static_chain): Likewise.
1582         * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
1583         add_new_name_mapping, register_new_name_mapping): Likewise.
1584         * tree-mudflap.c (mf_xform_derefs): Likewise.
1585         * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
1586         get_init_expr, combine_chains): Likewise.
1587         * tree-pretty-print.c (dump_generic_node): Likewise.
1588         * tree-ssa-structalias.c (create_variable_info_for): Likewise.
1589         * tree-vrp.c (simplify_cond_using_ranges): Likewise.
1590         * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
1591         * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
1592
1593 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
1594
1595         PR middle-end/37010
1596         * calls.c (expand_call): Use the biggest preferred stack
1597         boundary.
1598
1599 2008-08-06  Michael Matz  <matz@suse.de>
1600
1601         PR target/36613
1602         * reload.c (push_reload): Merge in,out,in_reg,out_reg members
1603         for reused reload, instead of overwriting them.
1604
1605 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
1606
1607         PR middle-end/37009
1608         * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
1609         for incoming stack boundary.
1610
1611         * function.c (assign_parm_find_entry_rtl): Update
1612         parm_stack_boundary.
1613
1614         * function.h (rtl_data): Add parm_stack_boundary.
1615
1616         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
1617         parm_stack_boundary for incoming stack boundary.
1618
1619 2008-08-06  Joseph Myers  <joseph@codesourcery.com>
1620
1621         * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
1622         for unrepresentable subregs or treat them as equal to other regs
1623         or subregs with the same register number.
1624
1625 2008-08-06  Aldy Hernandez  <aldyh@redhat.com>
1626
1627         PR middle-end/35432
1628         * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
1629         if want_value.
1630
1631 2008-08-06  Jan Hubicka  <jh@suse.cz>
1632
1633         * predict.c (maybe_hot_frequency_p): When profile is absent, all
1634         frequencies might be hot.
1635
1636 2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>
1637
1638         * reload.c (find_reloads): Force constants into literal pool
1639         also if they are wrapped in a SUBREG.
1640
1641 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1642
1643         PR target/35659
1644         * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
1645         * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
1646         Don't allow predicated instructions for data speculation.
1647         * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
1648         declaration.
1649
1650 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1651
1652         * haifa-sched.c (extend_global): Split to extend_global_data and
1653         extend_region_data.  Update all uses.
1654         (extend_all): Rename to extend_block_data.
1655
1656 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1657
1658         * sched-rgn.c (new_ready): Check if instruction can be
1659         speculatively scheduled before attempting speculation.
1660         (debug_rgn_dependencies): Remove wrongful assert.
1661
1662 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
1663
1664         * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
1665         
1666 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
1667         
1668         * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
1669         (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
1670         va_size, and type_size.
1671         
1672 2008-08-04  Jason Merrill  <jason@redhat.com>
1673
1674         PR c++/37016
1675         * tree-ssa.c (useless_type_conversion_p_1): Call langhook
1676         if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
1677
1678 2008-08-05  Richard Henderson  <rth@redhat.com>
1679
1680         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
1681         * configure: Rebuild.
1682
1683 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1684
1685         PR tree-opt/37024
1686         * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
1687         instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
1688         is a conversion.
1689
1690 2008-08-05  Richard Henderson  <rth@redhat.com>
1691
1692         * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
1693         * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
1694         * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
1695         * common.opt (fdwarf2-cfi-asm): New.
1696         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
1697         * config.in, configure: Rebuild.
1698         * dwarf2asm.c (dw2_asm_output_data_raw): New.
1699         (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw): New.
1700         (dw2_force_const_mem): Externalize.
1701         * dwarf2asm.h: Update.
1702         * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
1703         generate a real label.
1704         (output_cfi_directive): New.
1705         (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
1706         (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
1707         (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
1708         and .cfi_lsda.
1709         (dwarf2out_end_epilogue): Emit .cfi_endproc.
1710         (output_loc_operands_raw, output_loc_sequence_raw): New.
1711         (output_cfa_loc_raw): New.
1712         
1713 2008-08-05  Paul Brook  <paul@codesourcery.com>
1714
1715         * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
1716         * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
1717         (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
1718         (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
1719         * config/arm/arm.h (TARGET_VFPD32): Define.
1720         (TARGET_VFP3): Use TARGET_VFPD32.
1721         (fputype): Add FPUTYPE_VFP3D16.
1722         (LAST_VFP_REGNUM): Use TARGET_VFPD32.
1723         * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
1724         * config/arm/arm-cores.def: Add cortex-r4f.
1725         * config/arm/arm-tune.md: Regenerate.
1726
1727 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1728
1729         * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
1730         Reword some comments throughout the file.
1731
1732         (MFC_MIN_DMA_LIST_ELEMENTS): New define.
1733         (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
1734         (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of MFC_MIN_DMA_LIST_ELEMENTS.
1735         (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of MFC_MAX_DMA_LIST_ELEMENTS.
1736
1737         (MFC_START_ENABLE): Remove PPU-only define.
1738         (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
1739         (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
1740
1741         (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
1742         (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
1743         (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
1744         (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
1745         (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
1746         (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
1747         (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
1748
1749         (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
1750         (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
1751         (mfc_sdcrt, mfc_sdcrtst): Likewise.
1752         (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
1753
1754         (spu_read_machine_status): Fix typo.
1755
1756 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1757
1758         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
1759         SUBREG of multi-word hard register.
1760         * config/spu/spu.c (valid_subreg): Likewise.
1761         (adjust_operand): Handle SUBREGs of multi-word hard registers.
1762
1763 2008-08-04  Richard Guenther  <rguenther@suse.de>
1764
1765         * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
1766         the candidate with the stripped base if that base is different
1767         from the original base even for offset zero.
1768
1769 2008-08-04  Richard Guenther  <rguenther@suse.de>
1770
1771         PR middle-end/36691
1772         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
1773         check for no_overflow.
1774
1775 2008-08-04  Richard Guenther  <rguenther@suse.de>
1776
1777         * tree-vect-transform.c (vectorizable_call): Fix tuplification.
1778
1779 2008-08-04  Paul Brook  <paul@codesourcery.com>
1780
1781         * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
1782         (arm_order_regs_for_local_alloc): New function.
1783         * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
1784         prototype.
1785         * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
1786
1787 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
1788
1789         PR target/37012
1790         * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
1791         instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
1792         (ix86_expand_epilogue): Likewise.
1793
1794 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
1795
1796         * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
1797         in comments.
1798
1799 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
1800
1801         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
1802         to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
1803         (*movv2sf_internal_rex64): Ditto.
1804
1805 2008-08-03  Jan Hubicka  <jh@suse.cz>
1806
1807         * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
1808         expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
1809         * expmed.c (expand_smod_pow2): Likewise.
1810
1811 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
1812
1813         PR target/36992
1814         * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
1815         alternative 0 of operand 1.
1816         (*vec_concatv2di_rex64_sse): Ditto.
1817         (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
1818         of operand 1.
1819         (*sse2_storeq_rex64): Penalize allocation of "r" registers.
1820         * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
1821         of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
1822         (*movv2sf_internal_rex64): Ditto.
1823
1824 2008-08-02  Richard Guenther  <rguenther@suse.de>
1825
1826         PR target/35252
1827         * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
1828         (ssedoublesizemode): New mode attribute.
1829         (sse_shufps): Call gen_sse_shufps_v4sf.
1830         (sse_shufps_1): Macroize.
1831         (sse2_shufpd): Call gen_Sse_shufpd_v2df.
1832         (sse2_shufpd_1): Macroize.
1833         (vec_extract_odd, vec_extract_even): New expanders.
1834         (vec_interleave_highv4sf, vec_interleave_lowv4sf,
1835         vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
1836         * i386.c (ix86_expand_vector_init_one_nonzero): Call
1837         gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
1838         (ix86_expand_vector_set): Likewise.
1839         (ix86_expand_reduc_v4sf): Likewise.
1840
1841 2008-08-01  Doug Kwan  <dougkwan@google.com>
1842
1843         * matrix-reorg.c: Re-enable all code.
1844         (struct malloc_call_data): Change CALL_STMT to gimple type.
1845         (collect_data_for_malloc_call): Tuplify.
1846         (struct access_site_info): Change STMT to gimple type.
1847         (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
1848         and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
1849         (struct free_info): Change STMT to gimple type.
1850         (struct matrix_access_phi_node):  Change PHI to gimple type.
1851         (get_inner_of_cast_expr): Remove.
1852         (may_flatten_matrices_1): Tuplify.
1853         (may_flatten_matrices): Ditto.
1854         (mark_min_matrix_escape_level): Ditto.
1855         (ssa_accessed_in_tree): Refactor statement RHS related code into ...
1856         (ssa_accessed_in_call_rhs): New
1857         (ssa_accessed_in_assign_rhs): New
1858         (record_access_alloc_site_info): Tuplify.
1859         (add_allocation_site): Ditto.
1860         (analyze_matrix_allocation_site): Ditto.
1861         (analyze_transpose): Ditto.
1862         (get_index_from_offset): Ditto.
1863         (update_type_size): Ditto.
1864         (analyze_accesses_for_call_expr): Tuplify and renamed into ...
1865         (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
1866         (analyze_accesses_for_phi_node): Tuplify.
1867         (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
1868         (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
1869         (analyze_matrix_accesses): Tuplify.
1870         (check_var_data): New call-back type for check_var_notmodified_p.
1871         (check_var_notmodified_p): Tuplify and use call-back struct to
1872         return statement found.
1873         (can_calculate_expr_before_stmt): Factor out statement related code
1874         into ...
1875         (can_calculate_stmt_before_stmt): New.
1876         (check_allocation_function): Tuplify.
1877         (find_sites_in_func): Ditto.
1878         (record_all_accesses_in_func): Ditto.
1879         (transform_access_sites): Ditto.
1880         (transform_allocation_sites): Ditto.
1881         (matrix_reorg): Re-enable.
1882         (gate_matrix_reorg): Re-enable.
1883
1884 2008-08-01  Jakub Jelinek  <jakub@redhat.com>
1885
1886         * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
1887         for labels for which it hasn't been set yet.  If it has been set,
1888         stop walking insns and continue with next worklist item.
1889         (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
1890         if the only BARRIER is at the very end of a function.
1891
1892 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1893
1894         * cfgexpand.c (expand_stack_alignment): Assert that
1895         stack_realign_drap and drap_rtx must match.
1896
1897         * function.c (instantiate_new_reg): If DRAP is used to realign
1898         stack, replace virtual_incoming_args_rtx with internal arg
1899         pointer.
1900
1901 2008-08-01  Richard Guenther  <rguenther@suse.de>
1902
1903         * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
1904         loop information only if we initialized it.
1905         (execute_pre): Call fini_pre with in_fre.
1906         * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
1907         if we do not unroll because we hit max-completely-peeled-insns.
1908         Use our estimation for consistency, do allow shrinking.
1909
1910 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1911
1912         * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
1913         with MIN_STACK_BOUNDARY.
1914         (ix86_update_stack_boundary): Likewise.
1915         (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
1916         STACK_BOUNDARY.
1917
1918         * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
1919         (MIN_STACK_BOUNDARY): This.
1920
1921 2008-08-01  Richard Guenther  <rguenther@suse.de>
1922
1923         PR middle-end/36997
1924         * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
1925
1926 2008-08-01  Richard Guenther  <rguenther@suse.de>
1927
1928         PR tree-optimization/36988
1929         * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
1930         do not matter if that doesn't change volatile qualification.
1931
1932 2008-08-01  Paolo Bonzini  <bonzini@gnu.org>
1933
1934         * configure.ac: Do not generate libada-mk.  Do not subst
1935         host_cc_for_libada.
1936         * libada-mk.in: Remove.
1937         * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
1938         * configure: Regenerate.
1939
1940 2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>
1941
1942         * tree-pass.h: Added comment about not dumping passes with name
1943         starting with star in struct opt_pass.
1944         * passes.c (register_dump_files_1): Don't do dump for a pass with
1945         name starting with star.
1946         * doc/passes.texi (Pass manager): Mention pass names and special
1947         meaning of star prefix to avoid dump.
1948
1949 2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>
1950
1951         * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
1952         to MIPS64r2.
1953         * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
1954         (ISA_MIPS64R2): New macro.
1955         (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
1956         (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
1957         ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
1958         ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
1959         ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
1960         ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
1961         ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
1962         (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
1963         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
1964         Move up to keep list alphabetically sorted.
1965         (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
1966         * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
1967         processor.
1968         * doc/invoke.texi (MIPS Options): Add -mips64r2.
1969         (-march=@var{arch}): Add mips64r2.
1970
1971 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
1972
1973         * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
1974
1975 2008-07-31  Steve Ellcey  <sje@cup.hp.com>
1976
1977         * expr.c (expand_assignment): Check for complete type.
1978
1979 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
1980
1981         PR debug/36977
1982         * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
1983
1984         * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
1985         for stack alignment.
1986
1987         * function.h (rtl_data): Add stack_realign_tried.  Update comments.
1988
1989 2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
1990
1991         * config/sh/sh.c (sh_canonical_va_list_type): Remove.
1992         (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
1993
1994 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
1995
1996         PR rtl-optimization/36419
1997         * dwarf2out.c (barrier_args_size): New variable.
1998         (compute_barrier_args_size, compute_barrier_args_size_1): New
1999         functions.
2000         (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
2001         if not called yet in the current function, use barrier_args_size
2002         array to find the new args_size value.
2003         (dwarf2out_frame_debug): Free and clear barrier_args_size.
2004
2005 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
2006
2007         PR debug/36980
2008         * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
2009         rule 19.
2010
2011 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
2012
2013         PR debug/36976
2014         * dwarf2out.c (dwarf2out_args_size_adjust): New.
2015         (dwarf2out_stack_adjust): Use it.
2016         (dwarf2out_frame_debug_expr): Likewise.
2017
2018 2008-07-31  Richard Guenther  <rguenther@suse.de>
2019
2020         PR tree-optimization/36978
2021         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
2022         the generated condition.
2023
2024 2008-07-31  Richard Guenther  <rguenther@suse.de>
2025
2026         * passes.c (init_optimization_passes): Always call
2027         pass_early_warn_uninitialized.
2028         * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
2029         * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
2030         * doc/passes.texi (Warn for uninitialized variables): Adjust.
2031
2032 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
2033
2034         PR c/36970
2035         * builtins.c (maybe_emit_free_warning): New function.
2036         (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
2037         maybe_emit_free_warning for BUILT_IN_FREE.
2038
2039         PR debug/36278
2040         * dwarf2out.c (get_context_die): New function.
2041         (force_decl_die, force_type_die): Use it.
2042         (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
2043         returns NULL, force generation of DW_TAG_typedef and put that into
2044         DW_AT_import.
2045
2046         PR preprocessor/36649
2047         * c-pch.c (c_common_read_pch): Save and restore
2048         line_table->trace_includes across PCH restore.
2049
2050 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
2051
2052         PR ada/36554
2053         * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
2054
2055 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
2056
2057         PR 36974
2058         * final.c (call_from_call_insn): Handle COND_EXEC.
2059
2060 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
2061
2062         * builtins.c (std_gimplify_va_arg_expr): Replace
2063         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
2064         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
2065
2066 2008-07-30  Joey Ye  <joey.ye@intel.com>
2067             H.J. Lu  <hongjiu.lu@intel.com>
2068
2069         * builtins.c (expand_builtin_setjmp_receiver): Replace
2070         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
2071         (expand_builtin_apply_args_1): Likewise.
2072         (expand_builtin_longjmp): Need DRAP for stack alignment.
2073         (expand_builtin_apply): Likewise.
2074
2075         * caller-save.c (setup_save_areas): Call assign_stack_local_1
2076         instead of assign_stack_local to allow alignment reduction.
2077
2078         * calls.c (emit_call_1): Need DRAP for stack alignment if
2079         return pops.
2080         (expand_call): Replace virtual_incoming_args_rtx with
2081         crtl->args.internal_arg_pointer.
2082         * stmt.c (expand_nl_goto_receiver): Likewise.
2083
2084         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
2085         alignment and store to stack_alignment_estimated and
2086         max_used_stack_slot_alignment.
2087         (expand_one_var): Likewise.
2088         (expand_stack_alignment): New function.
2089         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
2090         and stack_alignment_estimated fields in rtl_data.  Call
2091         expand_stack_alignment at end.
2092
2093         * defaults.h (INCOMING_STACK_BOUNDARY): New.
2094         (MAX_STACK_ALIGNMENT): Likewise.
2095         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
2096         (SUPPORTS_STACK_ALIGNMENT): Likewise.
2097
2098         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
2099         stack alignment when generating virtual registers.
2100
2101         * function.c (assign_stack_local): Renamed to ...
2102         (assign_stack_local_1): This.  Add a parameter to indicate
2103         if it is OK to reduce alignment.
2104         (assign_stack_local): Use it.
2105         (instantiate_new_reg): Instantiate virtual incoming args rtx
2106         to vDRAP if stack realignment and DRAP is needed.
2107         (assign_parms): Collect parameter/return type alignment and
2108         contribute to stack_alignment_estimated.
2109         (locate_and_pad_parm): Likewise.
2110         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
2111         with crtl->args.internal_arg_pointer.
2112
2113         * function.h (rtl_data): Add new field drap_reg,
2114         max_used_stack_slot_alignment, stack_alignment_estimated,
2115         stack_realign_needed, need_drap, stack_realign_processed and
2116         stack_realign_finalized.
2117         (stack_realign_fp): New macro.
2118         (stack_realign_drap): Likewise.
2119
2120         * global.c (compute_regsets): Frame pointer is needed when
2121         stack is realigned.  Can eliminate frame pointer when stack is
2122         realigned and dynamic realigned argument pointer isn't used.
2123
2124         * reload1.c (update_eliminables):  Frame pointer is needed
2125         when stack is realigned.
2126         (init_elim_table): Can eliminate frame pointer when stack is
2127         realigned and dynamic realigned argument pointer isn't used.
2128
2129         * rtl.h (assign_stack_local_1): Declare new funtion.
2130
2131         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
2132         (TARGET_GET_DRAP_RTX): Likewise.
2133         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
2134         TARGET_GET_DRAP_RTX.
2135
2136         * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
2137
2138         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
2139         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
2140
2141 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
2142             H.J. Lu  <hongjiu.lu@intel.com>
2143
2144         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
2145         vdrap_reg, stack_realign and drap_reg_saved.
2146         (add_cfi): Don't allow redefining CFA when DRAP is used.
2147         (reg_save): Handle stack alignment.
2148         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
2149         alignment.  Don't generate DWARF information for (set fp sp)
2150         when DRAP is used.
2151         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
2152         to INVALID_REGNUM.
2153         (int_loc_descriptor): Move prototype forward.  Also define if
2154         DWARF2_UNWIND_INFO is true.
2155         (output_cfa_loc): Handle DW_CFA_expression.
2156         (build_cfa_aligned_loc): New.
2157         (based_loc_descr): Update assert for stack realign.  For local
2158         variables, use sp+offset when stack is aligned without drap and
2159         fp+offset when stack is aligned with drap.  For arguments, use
2160         cfa+offset when drap is used to align stack.
2161
2162 2008-07-30  Joey Ye  <joey.ye@intel.com>
2163             H.J. Lu  <hongjiu.lu@intel.com>
2164
2165         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
2166         Break long line.
2167         (ix86_gen_andsp): New.
2168         (ix86_user_incoming_stack_boundary): Likewise.
2169         (ix86_default_incoming_stack_boundary): Likewise.
2170         (ix86_incoming_stack_boundary): Likewise.
2171         (ix86_can_eliminate): Likewise.
2172         (find_drap_reg): Likewise.
2173         (ix86_update_stack_boundary): Likewise.
2174         (ix86_get_drap_rtx): Likewise.
2175         (ix86_finalize_stack_realign_flags): Likewise.
2176         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
2177         (TARGET_GET_DRAP_RTX): Likewise.
2178         (override_options): Overide option value for new options.
2179         (ix86_function_ok_for_sibcall): Remove check for
2180         force_align_arg_pointer.
2181         (ix86_handle_cconv_attribute): Likewise.
2182         (ix86_function_regparm): Likewise.
2183         (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
2184         (ix86_va_start): Replace virtual_incoming_args_rtx with
2185         crtl->args.internal_arg_pointer.
2186         (ix86_select_alt_pic_regnum): Check DRAP register.
2187         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
2188         (ix86_compute_frame_layout): Compute frame layout wrt stack
2189         realignment.
2190         (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
2191         (ix86_expand_prologue): Decide if stack realignment is needed
2192         and generate prologue code accordingly.
2193         (ix86_expand_epilogue): Generate epilogue code wrt stack
2194         realignment is really needed or not.
2195         
2196         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
2197         (ABI_STACK_BOUNDARY): Likewise.
2198         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
2199         (STACK_REALIGN_DEFAULT): Likewise.
2200         (INCOMING_STACK_BOUNDARY): Likewise.
2201         (MAX_STACK_ALIGNMENT): Likewise.
2202         (ix86_incoming_stack_boundary): Likewise.
2203         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
2204         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
2205         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
2206         (machine_function): Remove force_align_arg_pointer.
2207
2208         * config/i386/i386.md (BX_REG): New.
2209         (R13_REG): Likewise.
2210
2211         * config/i386/i386.opt (mforce_drap): New.
2212         (mincoming-stack-boundary): Likewise.
2213         (mstackrealign): Add Init(-1).
2214
2215         * config/i386/i386-protos.h (ix86_can_eliminate): New
2216
2217 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
2218
2219         * doc/extend.texi: Update force_align_arg_pointer.
2220
2221         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
2222         -mstackrealign.
2223
2224         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
2225         (INCOMING_STACK_BOUNDARY): Likewise.
2226         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
2227         (TARGET_GET_DRAP_RTX): Likewise.
2228
2229 2008-07-30  Andreas Schwab  <schwab@suse.de>
2230
2231         PR rtl-optimization/36929
2232         * dse.c (replace_inc_dec): Use emit_insn_before instead of
2233         add_insn_before and fix argument order.
2234         (replace_inc_dec_mem): Handle NULL rtx.
2235
2236 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
2237
2238         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
2239         function.
2240         (arm_compute_initial_elimination_offset): Use it.
2241         (arm_compute_save_reg_mask): Include static chain save slot when
2242         calculating alignment.
2243         (arm_get_frame_offsets): Ditto.
2244         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
2245         that we can use to decrement the stack when the stack decrement
2246         could be too big for an immediate value in a single insn.
2247         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
2248
2249 2008-07-30  Richard Guenther  <rguenther@suse.de>
2250
2251         PR tree-optimization/36967
2252         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
2253         Release defs of statements we remove.
2254
2255 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
2256
2257         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
2258         instead of NULL_RTVEC.
2259
2260 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
2261
2262         PR target/35866
2263
2264         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
2265         vector modes.
2266
2267 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
2268
2269         * final.c (call_from_call_insn): New.
2270         (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
2271
2272 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
2273
2274         * configure.ac: Substitute ADA_CFLAGS.
2275         * configure: Regenerate.
2276         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
2277         * Makefile.in: Remove mention of X_* variables.
2278         * config/pa/x-ada-hpux10: Remove.
2279         * config/pa/x-ada: Remove.
2280
2281         * doc/fragments.texi: Update.
2282
2283 2008-07-30  Olivier Hainque  <hainque@adacore.com>
2284
2285         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
2286         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
2287         __dso_handle explicitly here.
2288
2289 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2290
2291         PR 34389
2292         * c-typeck.c (build_binary_op): Encapsulate code into...
2293         * c-common.c (shorten_binary_op): ...this new function.
2294         (conversion_warning): Use the new function. Handle non-negative
2295         constant in bitwise-and.
2296         * c-common.h (shorten_binary_op): Declare.
2297
2298 2008-07-30  Olivier Hainque  <hainque@adacore.com>
2299
2300         * scan.c (make_sstring_space): Add explicit conversions of
2301         allocator's return value.
2302         * fix-header.c (recognized_function): Likewise.
2303
2304 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2305
2306         * doc/cpp.texi: Update to GFDL 1.2.
2307         * doc/gcc.texi: Do not list GPL as Invariant Section.
2308         * doc/gccint.texi: Likewise.  Update copyright years.
2309         * doc/install.texi: Update copyright years.
2310
2311 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
2312
2313         PR target/36955
2314         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
2315         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
2316
2317 2008-07-29  Jan Hubicka  <jh@suse.cz>
2318
2319         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
2320         (grokdeclarator): Likewise.
2321         * langhooks.c (lhd_warn_unused_global_decl): Use
2322         DECL_DECLARED_INLINE_P.
2323         * print-tree.c (print_node): Remove DECL_INLINE check.
2324
2325 2008-07-29  Richard Guenther  <rguenther@suse.de>
2326
2327         PR tree-optimization/36945
2328         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
2329         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
2330         Record invariant addresses un-decomposed.
2331         (copy_reference_ops_from_call): Record reference call
2332         arguments properly.  Simplify.
2333         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
2334         helper split out from ...
2335         (create_component_ref_by_pieces): ... here.  Simplify.
2336         Prepare for recursive invocation for call arguments.
2337         (create_expression_by_pieces): Adjust call to
2338         create_component_ref_by_pieces.
2339         (compute_avail): Process operand 2 of reference ops.
2340
2341 2008-07-29  Richard Guenther  <rguenther@suse.de>
2342
2343         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
2344
2345 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
2346
2347         * c-format.c (check_format_types): Revert unwanted checkin.
2348
2349 2008-07-29  Jan Hubicka  <jh@suse.cz>
2350
2351         * flags.h (flag_really_no_inline): Remove.
2352         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
2353         * toplev.c (flag_really_no_inline): Remove.
2354         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
2355         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
2356         (cgraph_decide_inlining_incrementally): Likewise.
2357         (compute_inline_parameters): Likewise.
2358         * opts.c (decode_options): Simplify.
2359         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
2360         * common.opt (finline): Initialize to 1.
2361         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
2362
2363 2008-07-29  Jan Hubicka  <jh@suse.cz>
2364
2365         * predict.c (always_optimize_for_size_p): New function.
2366         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
2367         optimize_edge_for_size_p, optimize_edge_for_speed_p,
2368         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
2369         functions.
2370         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
2371         * function.c (prepare_function_start): Set default profile.
2372         * function.h (rtl_data): Add maybe_hot_insn_p.
2373         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
2374         (construct_exit_block): Likewise.
2375         (tree_expand_cfg): Likewise.
2376         * basic-block.h
2377         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
2378         optimize_edge_for_size_p, optimize_edge_for_speed_p,
2379         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
2380         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
2381         Declare.
2382
2383 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2384
2385         PR 34985
2386         * c-decl.c (merge_decls): Merge USED flags.
2387
2388 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
2389
2390         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
2391         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
2392         next_stack, lab_false and lab_over trees.
2393
2394 2008-07-28  Richard Guenther  <rguenther@suse.de>
2395
2396         PR tree-optimization/36957
2397         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
2398         (useless_type_conversion_p): Remove.
2399         (types_compatible_p): Remove.
2400         * gimple.h (tree_ssa_useless_type_conversion): Declare.
2401         (useless_type_conversion_p): Declare.
2402         (types_compatible_p): Declare.
2403         (gimple_expr_type): Return the base type only if it is
2404         trivially convertible to the subtype.
2405
2406 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
2407
2408         * configure.ac: Use the m4_do macro to concatenate the warnings into
2409         one string in ACX_PROG_CC_WARNING_OPTS,
2410         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and ACX_PROG_CC_WARNINGS_ARE_ERRORS.
2411         * configure: Regenerate.
2412
2413 2008-07-28  Richard Guenther  <rguenther@suse.de>
2414
2415         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
2416         (insert_fake_stores): Remove.
2417         (realify_fake_stores): Likewise.
2418         (execute_pre): Remove dead code.
2419         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
2420         (find_func_aliases): Deal with it here instead.
2421         Re-enable gcc_unreachable call.
2422
2423 2008-07-28  Richard Guenther  <rguenther@suse.de>
2424
2425         Merge from gimple-tuples-branch.
2426
2427         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
2428         * gimple.def: New file.
2429         * gsstruct.def: Likewise.
2430         * gimple-iterator.c: Likewise.
2431         * gimple-pretty-print.c: Likewise.
2432         * tree-gimple.c: Removed.  Merged into ...
2433         * gimple.c: ... here.  New file.
2434         * tree-gimple.h: Removed.  Merged into ...
2435         * gimple.h: ... here.  New file.
2436
2437         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
2438         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
2439         --enable-checking=gimple flag.
2440         * config.in: Likewise.
2441         * configure: Regenerated.
2442
2443         * tree-ssa-operands.h: Tuplified.
2444         * tree-vrp.c: Likewise.
2445         * tree-loop-linear.c: Likewise.
2446         * tree-into-ssa.c: Likewise.
2447         * tree-ssa-loop-im.c: Likewise.
2448         * tree-dump.c: Likewise.
2449         * tree-complex.c: Likewise.
2450         * cgraphbuild.c: Likewise.
2451         * tree-ssa-threadupdate.c: Likewise.
2452         * tree-ssa-loop-niter.c: Likewise.
2453         * tree-pretty-print.c: Likewise.
2454         * tracer.c: Likewise.
2455         * gengtype.c: Likewise.
2456         * tree-loop-distribution.c: Likewise.
2457         * tree-ssa-loop-unswitch.c: Likewise.
2458         * cgraph.c: Likewise.
2459         * cgraph.h: Likewise.
2460         * tree-ssa-loop-manip.c: Likewise.
2461         * value-prof.c: Likewise.
2462         * tree-ssa-loop-ch.c: Likewise.
2463         * tree-tailcall.c: Likewise.
2464         * value-prof.h: Likewise.
2465         * tree.c: Likewise.
2466         * tree.h: Likewise.
2467         * tree-pass.h: Likewise.
2468         * ipa-cp.c: Likewise.
2469         * tree-scalar-evolution.c: Likewise.
2470         * tree-scalar-evolution.h: Likewise.
2471         * target.h: Likewise.
2472         * lambda-mat.c: Likewise.
2473         * tree-phinodes.c: Likewise.
2474         * diagnostic.h: Likewise.
2475         * builtins.c: Likewise.
2476         * tree-ssa-alias-warnings.c: Likewise.
2477         * cfghooks.c: Likewise.
2478         * fold-const.c: Likewise.
2479         * cfghooks.h: Likewise.
2480         * omp-low.c: Likewise.
2481         * tree-ssa-dse.c: Likewise.
2482         * ipa-reference.c: Likewise.
2483         * tree-ssa-uncprop.c: Likewise.
2484         * toplev.c: Likewise.
2485         * tree-gimple.c: Likewise.
2486         * tree-gimple.h: Likewise.
2487         * tree-chrec.c: Likewise.
2488         * tree-chrec.h: Likewise.
2489         * tree-ssa-sccvn.c: Likewise.
2490         * tree-ssa-sccvn.h: Likewise.
2491         * cgraphunit.c: Likewise.
2492         * tree-ssa-copyrename.c: Likewise.
2493         * tree-ssa-ccp.c: Likewise.
2494         * tree-ssa-loop-ivopts.c: Likewise.
2495         * tree-nomudflap.c: Likewise.
2496         * tree-call-cdce.c: Likewise.
2497         * ipa-pure-const.c: Likewise.
2498         * c-format.c: Likewise.
2499         * tree-stdarg.c: Likewise.
2500         * tree-ssa-math-opts.c: Likewise.
2501         * tree-ssa-dom.c: Likewise.
2502         * tree-nrv.c: Likewise.
2503         * tree-ssa-propagate.c: Likewise.
2504         * ipa-utils.c: Likewise.
2505         * tree-ssa-propagate.h: Likewise.
2506         * tree-ssa-alias.c: Likewise.
2507         * gimple-low.c: Likewise.
2508         * tree-ssa-sink.c: Likewise.
2509         * ipa-inline.c: Likewise.
2510         * c-semantics.c: Likewise.
2511         * dwarf2out.c: Likewise.
2512         * expr.c: Likewise.
2513         * tree-ssa-loop-ivcanon.c: Likewise.
2514         * predict.c: Likewise.
2515         * tree-ssa-loop.c: Likewise.
2516         * tree-parloops.c: Likewise.
2517         * tree-ssa-address.c: Likewise.
2518         * tree-ssa-ifcombine.c: Likewise.
2519         * matrix-reorg.c: Likewise.
2520         * c-decl.c: Likewise.
2521         * tree-eh.c: Likewise.
2522         * c-pretty-print.c: Likewise.
2523         * lambda-trans.c: Likewise.
2524         * function.c: Likewise.
2525         * langhooks.c: Likewise.
2526         * ebitmap.h: Likewise.
2527         * tree-vectorizer.c: Likewise.
2528         * function.h: Likewise.
2529         * langhooks.h: Likewise.
2530         * tree-vectorizer.h: Likewise.
2531         * ipa-type-escape.c: Likewise.
2532         * ipa-type-escape.h: Likewise.
2533         * domwalk.c: Likewise.
2534         * tree-if-conv.c: Likewise.
2535         * profile.c: Likewise.
2536         * domwalk.h: Likewise.
2537         * tree-data-ref.c: Likewise.
2538         * tree-data-ref.h: Likewise.
2539         * tree-flow-inline.h: Likewise.
2540         * tree-affine.c: Likewise.
2541         * tree-vect-analyze.c: Likewise.
2542         * c-typeck.c: Likewise.
2543         * gimplify.c: Likewise.
2544         * coretypes.h: Likewise.
2545         * tree-ssa-phiopt.c: Likewise.
2546         * calls.c: Likewise.
2547         * tree-ssa-coalesce.c: Likewise.
2548         * tree.def: Likewise.
2549         * tree-dfa.c: Likewise.
2550         * except.c: Likewise.
2551         * except.h: Likewise.
2552         * cfgexpand.c: Likewise.
2553         * tree-cfgcleanup.c: Likewise.
2554         * tree-ssa-pre.c: Likewise.
2555         * tree-ssa-live.c: Likewise.
2556         * tree-sra.c: Likewise.
2557         * tree-ssa-live.h: Likewise.
2558         * tree-predcom.c: Likewise.
2559         * lambda.h: Likewise.
2560         * tree-mudflap.c: Likewise.
2561         * ipa-prop.c: Likewise.
2562         * print-tree.c: Likewise.
2563         * tree-ssa-copy.c: Likewise.
2564         * ipa-prop.h: Likewise.
2565         * tree-ssa-forwprop.c: Likewise.
2566         * ggc-page.c: Likewise.
2567         * c-omp.c: Likewise.
2568         * tree-ssa-dce.c: Likewise.
2569         * tree-vect-patterns.c: Likewise.
2570         * tree-ssa-ter.c: Likewise.
2571         * tree-nested.c: Likewise.
2572         * tree-ssa.c: Likewise.
2573         * lambda-code.c: Likewise.
2574         * tree-ssa-loop-prefetch.c: Likewise.
2575         * tree-inline.c: Likewise.
2576         * tree-inline.h: Likewise.
2577         * tree-iterator.c: Likewise.
2578         * tree-optimize.c: Likewise.
2579         * tree-ssa-phiprop.c: Likewise.
2580         * tree-vect-transform.c: Likewise.
2581         * tree-object-size.c: Likewise.
2582         * tree-outof-ssa.c: Likewise.
2583         * cfgloop.c: Likewise.
2584         * system.h: Likewise.
2585         * tree-profile.c: Likewise.
2586         * cfgloop.h: Likewise.
2587         * c-gimplify.c: Likewise.
2588         * c-common.c: Likewise.
2589         * tree-vect-generic.c: Likewise.
2590         * tree-flow.h: Likewise.
2591         * c-common.h: Likewise.
2592         * basic-block.h: Likewise.
2593         * tree-ssa-structalias.c: Likewise.
2594         * tree-switch-conversion.c: Likewise.
2595         * tree-ssa-structalias.h: Likewise.
2596         * tree-cfg.c: Likewise.
2597         * passes.c: Likewise.
2598         * ipa-struct-reorg.c: Likewise.
2599         * ipa-struct-reorg.h: Likewise.
2600         * tree-ssa-reassoc.c: Likewise.
2601         * cfgrtl.c: Likewise.
2602         * varpool.c: Likewise.
2603         * stmt.c: Likewise.
2604         * tree-ssanames.c: Likewise.
2605         * tree-ssa-threadedge.c: Likewise.
2606         * langhooks-def.h: Likewise.
2607         * tree-ssa-operands.c: Likewise.
2608         * config/alpha/alpha.c: Likewise.
2609         * config/frv/frv.c: Likewise.
2610         * config/s390/s390.c: Likewise.
2611         * config/m32c/m32c.c: Likewise.
2612         * config/m32c/m32c-protos.h: Likewise.
2613         * config/spu/spu.c: Likewise.
2614         * config/sparc/sparc.c: Likewise.
2615         * config/i386/i386.c: Likewise.
2616         * config/sh/sh.c: Likewise.
2617         * config/xtensa/xtensa.c: Likewise.
2618         * config/stormy16/stormy16.c: Likewise.
2619         * config/ia64/ia64.c: Likewise.
2620         * config/rs6000/rs6000.c: Likewise.
2621         * config/pa/pa.c: Likewise.
2622         * config/mips/mips.c: Likewise.
2623
2624 2008-07-28  Simon Baldwin  <simonb@google.com>
2625
2626         * c-pragma.c (handle_pragma_message): New function.
2627         (init_pragma): Register handle_pragma_message.
2628         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
2629         documentation.
2630
2631 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
2632
2633         PR tree-optimization/35252
2634         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
2635         REALPART_EXPR to be considered as same load operation.
2636
2637 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
2638
2639         PR tree-optimization/36830
2640         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
2641         (expressions_equal_p): Return false if only one operand is null.
2642
2643 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
2644
2645         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
2646         version requirements.
2647
2648 2008-07-26  Olivier Hainque  <hainque@adacore.com>
2649
2650         * collect2.c (symkind): New enum.  Symbol kinds we care about.
2651         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
2652         code and head comment accordingly.
2653         (scan_prog_file): Use symkind names instead of bare integers.
2654
2655 2008-07-25  Jan Hubicka  <jh@suse.cz>
2656
2657         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
2658         DECL_INLINE.
2659         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
2660         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
2661         * dojump.c (clear_pending_stack_adjust): Likewise.
2662         * print-tree.c (print_node): Ignore DECL_INLINE.
2663         * tree-inline.c (inlinable_function_p): Likewise.
2664
2665 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
2666
2667         * doc/extend.texi (hot attribute): Document that the hot attribute
2668         turns on -O3 for some ports.
2669         (cold attribute): Document that the cold attribute turns on -Os
2670         for some ports
2671
2672         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
2673         reflect function specific option support.
2674
2675         * target.h (struct target_option_hooks): Add fields to say whether
2676         the cold attribute implies -Os and the hot attribute implies -O3.
2677
2678         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
2679         By default, do not turn on -Os for cold functions.
2680         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
2681         not turn on -O3 for hot functions.
2682
2683         * c-common.c (handle_hot_attribute): Use target hook to determine
2684         if hot functions should enable -O3.
2685         (handle_cold_attribute): Use target hook to determine if cold
2686         functions should enable -Os.
2687
2688         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
2689         (override_options): Move disable scheduling to
2690         optimization_options.
2691         (optimization_options): Disable scheduling here, not
2692         override_options.
2693         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
2694         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
2695
2696         * config/ia64/ia64.c (ia64_override_options): Move setting
2697         scheduling flags to ia64_optimization_options.
2698         (ia64_optimization_options): Disable scheduling options here, and
2699         not in ia64_override_options.
2700         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
2701         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
2702
2703 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
2704
2705         PR target/36936
2706         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
2707
2708 2008-07-25  Martin Jambor  <mjambor@suse.cz>
2709
2710         PR tree-optimization/36926
2711         * ipa-prop.c (ipa_analyze_call_uses): Call
2712         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
2713
2714 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
2715
2716         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
2717         movv2si_internal): Add mem = reg alternative.
2718
2719 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
2720
2721         PR bootstrap/36918
2722         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
2723         DEFAULT_PCC_STRUCT_RETURN to 127.
2724
2725 2008-07-24  Jan Hubicka  <jh@suse.cz>
2726
2727         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
2728         (build_cgraph_edges): Likewise.
2729         * cgraph.c (cgraph_node): Do not update assembler hash.
2730         (cgraph_remove_node): Drop non-unit-at-a-time code.
2731         * tree-pass.h (pass_O0_always_inline): Remove.
2732         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
2733         * toplev.c (process_options): Flag unit-at-a-time does not imply
2734         no section anchors.
2735         * cgraphunit.c: Update comments.
2736         (decide_is_function_needed): Drop non-unit-at-a-time mode.
2737         (cgraph_assemble_pending_functions): Remove.
2738         (cgraph_reset_node): Drop non-unit-at-a-time code.
2739         (cgraph_finalize_function): Likewise.
2740         (cgraph_analyze_function): Likewise.
2741         (cgraph_finalize_compilation_unit): Likewise.
2742         (cgraph_expand_function): Likewise.
2743         (cgraph_optimize): Likesise.
2744         (save_inline_function_body): Likewise.
2745         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
2746         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
2747         * ipa-inline.c: Update comments.
2748         (enum inlining_mode): remove INLINE_SPEED.
2749         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
2750         (cgraph_mark_inline_edge): Likewise.
2751         (try_inline): Likewise.
2752         (cgraph_decide_inlining_incrementally): Likewise.
2753         (cgraph_gate_inlining): Remove.
2754         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
2755         (cgraph_gate_early_inlining): Likewise.
2756         (gate_inline_passes): Remove.
2757         (pass_inline_parameters, pass_ipa_inline): Remove gates.
2758         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2759         pass_O0_always_inline): Remove.
2760         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
2761         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
2762         * opts.c (no_unit_at_a_time_default): Remove.
2763         (decode_options): Remove flag_unit_at_a_time reset and warning.
2764         * opts.h (no_unit_at_a_time_default): Remove.
2765         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
2766         early in GNU dialect.
2767         (merge_decls): Update comment; drop unit-at-a-time check.
2768         (finish_decl): Likewise.
2769         (grok_declaration): Remove flag_inline_trees code.
2770         (finish_functions): Return on function returning non-void on all
2771         statics.
2772         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
2773         * cfgexpand.c (expand_one_static_var): Remove.
2774         (expand_one_var): Remove expand_one_static_var call.
2775         (expand_used_vars_for_block): Remove flag_unit_a_time check.
2776         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
2777         and flag_unit_at_a-time compatibility checks.
2778         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
2779         * tree-inline.c (flag_inline_trees): Remove.
2780         (inlinable_function_p): Don't check it.
2781         (expand_call_inline): Remove non-unit-at-a-time code.
2782         * tree-inline.h (flag_inline_trees): Remove.
2783         * tree-optimize.c (execute_early_local_optimizations): Remove
2784         unit-at-a-time checks.
2785         (tree_rest_of_compilation): Likewise.
2786         * combine.c (setup_incoming_promotions): Likewise.
2787         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
2788         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
2789         * passes.c (pass_inline_parameters): Update comments; remove
2790         O0_alwaysinline pass.
2791         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
2792         (execute_one_pass): Likewise.
2793         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
2794         (ix86_function_sseregparm): Likewise.
2795         * arm.c (arm_function_in_section_p): Likewise.
2796         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
2797         * varpool.c: Update comments.
2798         (decide_is_variable_needed): Remove unit-at-a-time checks.
2799         (varpool_finalize_decl): Likewise.
2800
2801 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
2802
2803         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
2804         to 2 instead of -1.
2805         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
2806
2807 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
2808
2809         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
2810         imp symbol extension.
2811
2812         2008-07-23  Ian Lance Taylor  <iant@google.com>
2813
2814         * tree-vrp.c (infer_value_range): Ignore asm statements when
2815         looking for memory accesses for -fdelete-null-pointer-checks.
2816
2817 2008-07-24  Ben Elliston  <bje@au.ibm.com>
2818
2819         * config/spu/spu-c.c (__vector_keyword): New variable.
2820         (vector_keyword): Likewise.
2821         (spu_categorize_keyword): New function.
2822         (spu_macro_to_expand): Likewise.
2823         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
2824         compiling an ISO C dialect.
2825
2826 2008-07-24  Ben Elliston  <bje@au.ibm.com>
2827
2828         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
2829         conventional usage.
2830
2831 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2832
2833         * configure: Regenerate.
2834         * configure.ac: Require texinfo 4.7.
2835         * doc/install.texi: Document texinfo 4.7 requirement.
2836
2837 2008-07-23  Martin Jambor  <mjambor@suse.cz>
2838
2839         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
2840         rather than for DECL_SAVED_TREE.
2841         * ipa-prop.c: Include diagnostic.h.
2842         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
2843         thoroughly.
2844         (ipa_detect_param_modifications): Function rewritten from scratch.
2845         (ipa_compute_jump_functions): Changed accesses to modification flags.
2846         (ipa_free_node_params_substructures): Update flags destruction.
2847         (ipa_node_duplication_hook): Update flags duplication.
2848         (ipa_print_all_params_modified): Updated flag access.
2849         * ipa-prop.h (struct ipa_param_flags): New structure.
2850         (struct ipa_node_params): New field modification_analysis_done,
2851         modified_flags changed into param_flags.
2852         (ipa_is_ith_param_modified): Changed to use new flags.
2853         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
2854
2855         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
2856         ipa-cp.c and split into two functions.
2857         (ipa_print_node_jump_functions): New function.
2858         (compute_scalar_jump_functions): New function.
2859         (type_like_member_ptr_p): New function.
2860         (compute_pass_through_member_ptrs): New function.
2861         (fill_member_ptr_cst_jump_function): New function.
2862         (determine_cst_member_ptr): New function.
2863         (compute_cst_member_ptr_arguments): New function.
2864         (ipa_compute_jump_functions): Complete rewrite.
2865         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
2866         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
2867         (struct ipa_member_ptr_cst): New structure.
2868         (union jump_func_value): New field member_cst.
2869         * ipa-cp.c (ipcp_lat_is_insertable): New function.
2870         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
2871         jump function types.
2872         (ipcp_print_all_lattices): Slight fprintf rearrangement.
2873         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
2874         instead of ipcp_print_all_jump_functions.
2875         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
2876         only for replacable scalars.
2877
2878         * doc/invoke.texi (Optimize options): Add description of
2879         -findirect-inlining.
2880         * common.opt (flag_indirect_inlining): New flag.
2881         * opts.c (decode_options): Set flag_indirect_inlining when
2882         optimize >= 3.
2883
2884         * ipa-inline.c: Include ipa-prop.h.
2885         (inline_indirect_intraprocedural_analysis): New function.
2886         (inline_generate_summary): Allocate parameter and argument info
2887         structures, call inline_indirect_intraprocedural_analysis on each
2888         node when doing indirect inlining and deallocate indirect inlining
2889         data structures in the end.
2890         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
2891         (free_all_ipa_structures_after_iinln): New function.
2892         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
2893         done.
2894         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
2895
2896         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
2897         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
2898         of computing the frequency separately.
2899         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
2900         of computing the frequency separately.
2901         * ipa-cp.c (ipcp_print_all_structures): Replace a call to
2902         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
2903         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
2904         (ipa_get_stmt_member_ptr_load_param): New function.
2905         (ipa_is_ssa_with_stmt_def): New function.
2906         (ipa_note_param_call): New function.
2907         (ipa_analyze_call_uses): New function.
2908         (ipa_analyze_stmt_uses): New function.
2909         (ipa_analyze_params_uses): New function.
2910         (ipa_free_node_params_substructures): Also free the param_calls linked
2911         list.
2912         (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
2913         (ipa_print_node_param_flags): New function.
2914         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
2915         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
2916         * ipa-prop.h (struct ipa_param_flags): New field called.
2917         (struct ipa_param_call_note): New structure.
2918         (struct ipa_node_params): New fields param_calls and
2919         uses_analysis_done.
2920         (ipa_is_ith_param_called): New function.
2921         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
2922         ipa_analyze_params_uses and dump parameter flags.
2923
2924         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
2925         ipa_propagate_indirect_call_infos if performing indirect inlining,
2926         pass a new parameter new_edges to it.
2927         (add_new_edges_to_heap): New fucntion.
2928         (cgraph_decide_inlining_of_small_functions): New vector
2929         new_indirect_edges for newly found indirect edges , call
2930         ipa_propagate_indirect_call_infos after inlining.
2931         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
2932         inlining if performing indirect inlining.  Call
2933         free_all_ipa_structures_after_iinln when doing so too.
2934         (inline_generate_summary): Do not call
2935         free_all_ipa_structures_after_iinln here.
2936         * ipa-prop.c (update_jump_functions_after_inlining): New function.
2937         (print_edge_addition_message): New function.
2938         (update_call_notes_after_inlining): New function.
2939         (propagate_info_to_inlined_callees): New function.
2940         (ipa_propagate_indirect_call_infos): New function.
2941         * ipa-prop.h: Include cgraph.h
2942         (struct ipa_param_call_note): Fields reordered, new field processed.
2943         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
2944         flag indirect_call.
2945         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
2946         rediscovered call statements.
2947         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
2948         (dump_cgraph_node): Dump also the indirect_call flag.
2949         (cgraph_clone_edge): Copy also the indirect_call flag.
2950         * tree-inline.c (copy_bb): Do not check for fndecls from call
2951         expressions, check for edge availability when moving clones.
2952         (get_indirect_callee_fndecl): New function.
2953         (expand_call_inline): If callee declaration is not apprent from
2954         the statement, try calling get_indirect_callee_fndecl.  Do not
2955         issue warnings or call sorry when not inlinings an indirect edge.
2956         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
2957
2958         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
2959         bit more frandly to matching.
2960         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
2961         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
2962         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
2963
2964 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
2965
2966         PR 36907
2967         * opth-gen.awk: Suppress function specific features when building
2968         target libraries.
2969         * optc-gen.awk: Ditto.
2970
2971 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2972
2973         PR 35058
2974         * diagnostic.c (pedwarn): Add opt parameter.
2975         (pedwarn0): New.
2976         * c-tree.h (pedwarn_init): Add opt parameter.
2977         (pedwarn_c90): Likewise.
2978         (pedwarn_c99): Likewise.
2979         * c-errors.c (pedwarn_c99): Likewise.
2980         (pedwarn_c90): Likewise.
2981         * toplev.h (pedwarn): Update declaration.
2982         (pedwarn0): Declare.
2983         * c-lex.c: All calls to pedwarn changed.
2984         * builtins.c: All calls to pedwarn changed.
2985         * toplev.c: All calls to pedwarn changed.
2986         * c-decl.c: All calls to pedwarn changed.
2987         * c-typeck.c: All calls to pedwarn changed.
2988         * c-common.c: All calls to pedwarn changed.
2989         * c-parser.c: All calls to pedwarn changed.
2990
2991 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
2992             Karthik Kumar  <karthikkumar@gmail.com>
2993
2994         * attribs.c (file scope): Include c-common.h.
2995         (decl_attributes): Add support for #pragma GCC optimize and
2996         #pragma GCC option.
2997
2998         * targhooks.c (default_can_inline_p): New function that is the
2999         default for the TARGET_CAN_INLINE_P target hook.
3000
3001         * targhooks.h (default_can_inline_p): Add declaration.
3002
3003         * tree.c (cl_optimization_node): New static tree for building
3004         OPTIMIZATION_NODE tree.
3005         (cl_target_option_node): New static tree for building
3006         TARGET_OPTION_NODE tree.
3007         (cl_option_hash_table): New hash table for hashing
3008         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
3009         (cl_option_hash_hash): New function to provide the hash value for
3010         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
3011         (cl_option_hash_eq): New function to provide an equality test for
3012         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
3013         (tree_code_size): Add support for OPTIMIZATION_NODE and
3014         TARGET_OPTION_NODE trees.
3015         (tree_code_structure): Add support for OPTIMIZATION_NODE and
3016         TARGET_OPTION_NODE trees.
3017         (build_optimization_node): Build a tree that has all of the
3018         current optimization options.
3019         (build_target_option_node): Build a tree that has the target
3020         options that might be changed on a per function basis.
3021
3022         * tree.h (file scope): Include options.h.
3023         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
3024         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
3025         (TREE_OPTIMIZATION): Ditto.
3026         (TREE_TARGET_SPECIFIC): Ditto.
3027         (struct tree_function_decl): Add fields for remembering the
3028         current optimization options and target specific options.
3029         (struct tree_optimization_option): New tree variant that remembers
3030         the optimization options.
3031         (struct tree_target_option): New tree variant that remembers the
3032         target specific flags that might change for compiling a particular
3033         function.
3034         (union tree_node): Include tree_optimization_option and
3035         tree_target_option fields.
3036         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
3037         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
3038         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
3039         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
3040         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
3041         optimization and target options.
3042         (optimization_default_node): New macro to refer to global_trees
3043         field.
3044         (optimization_current_node): Ditto.
3045         (optimization_cold_node): Ditto.
3046         (optimization_hot_node): Ditto.
3047         (target_option_default_node): Ditto.
3048         (target_option_current_node): Ditto.
3049         (current_option_pragma): Ditto.
3050         (current_optimize_pragma): Ditto.
3051
3052         * target.h (struct gcc_target): Add valid_option_attribute_p,
3053         target_option_save, target_option_restore, target_option_print,
3054         target_option_pragma_parse, and can_inline_p hooks.
3055
3056         * toplev.h (parse_optimize_options): Add declaration.
3057         (fast_math_flags_struct_set_p): Ditto.
3058
3059         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
3060         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
3061         optimize is used.
3062
3063         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
3064         tree_can_inline_p hook to see if one function can inline another.
3065         (cgraph_decide_inlining): Ditto.
3066         (cgraph_decide_inlining_incrementally): Ditto.
3067
3068         * opts.c (decode_options): Add support for running multiple times
3069         to allow functions with different target or optimization options
3070         than was specified on the command line.
3071         (fast_math_flags_struct_set_p): New function that is similar to
3072         fast_math_flags_set_p, except it uses the values in the
3073         cl_optimization structure instead of global variables.
3074
3075         * optc-gen.awk: Add support for TargetSave to allow a back end to
3076         declare new fields that need to be saved when using function
3077         specific options.  Include flags.h and target.h in the options.c
3078         source.  Add support for Save to indicate which options can be set
3079         for individual functions.  Generate cl_optimize_save,
3080         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
3081         cl_target_option_restore, cl_target_option_print functions to
3082         allow functions to use different optimization or target options.
3083
3084         * opt-functions.awk (var_type_struct): Return the type used for
3085         storing the field in a structure.
3086
3087         * opth-gen.awk: Add support for TargetSave to allow a back end to
3088         declare new fields that need to be saved when using function
3089         specific options.  Add support for Save to indicate which options
3090         can be set for individual functions.  Only generate one extern for
3091         Mask fields.  Generate cl_optimization and cl_target_option
3092         structures to remember optimization and target options.
3093
3094         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
3095         collecting new tree nodes.
3096         (TS_TARGET_OPTION): Ditto.
3097
3098         * c-decl.c (merge_decls): Merge function specific target and
3099         optimization options.
3100
3101         * function.c (invoke_set_current_function_hook): If the function
3102         uses different optimization options, change the global variables
3103         to reflect this.
3104
3105         * coretypes.h (struct cl_optimization): Add forward reference.
3106         (struct cl_target_option): Ditto.
3107
3108         * c-pragma.c (option_stack): New static vector to remember the
3109         current #pragma GCC option stack.
3110         (handle_pragma_option): New function to support #pragma GCC option
3111         to change target options.
3112         (optimize_stack): New static vector to remember the current
3113         #pragma GCC optimize stack.
3114         (handle_pragma_optimize): New function to support #pragma GCC
3115         optimize to change optimization options.
3116         (init_pragma): Add support for #pragma GCC optimize and #pragma
3117         GCC option.
3118
3119         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
3120         optimization options.
3121         (TARGET_OPTION_NODE): New tree code for remembering certain target
3122         options.
3123
3124         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
3125         TARGET_OPTION_NODE trees.
3126
3127         * common.opt (-O): Add Optimization flag.
3128         (-Os): Ditto.
3129         (-fmath-errno): Ditto.
3130         (-falign-functions): Add UInteger flag to make sure flag gets full
3131         int in cl_optimization structure.
3132         (-falign-jumps): Ditto.
3133         (-falign-labels): Ditto.
3134         (-falign-loops): Ditto.
3135         (-fsched-stalled-insns): Ditto.
3136         (-fsched-stalled-insns-dep): Ditto.
3137
3138         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
3139         definition.
3140         (TARGET_OPTION_SAVE): Ditto.
3141         (TARGET_OPTION_RESTORE): Ditto.
3142         (TARGET_OPTION_PRINT): Ditto.
3143         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
3144         (TARGET_CAN_INLINE_P): Ditto.
3145         (TARGET_INITIALIZER): Add new hooks.
3146
3147         * tree-inline.c (tree_can_inline_p): New function to determine
3148         whether one function can inline another.  Check if the functions
3149         use compatible optimization options, and also call the backend
3150         can_inline_p hook.
3151
3152         * tree-inline.h (tree_can_inline_p): Add declaration.
3153
3154         * c-common.c (c_common_attribute): Add support for option and
3155         optimize attributes.
3156         (handle_option_attribute): Add support for the option attribute to
3157         allow the user to specify different target options for compiling a
3158         specific function.
3159         (handle_optimize_attribute): Add support for the optimize
3160         attribute to allow the user to specify different optimization
3161         options for compiling a specific function.
3162         (handle_hot_attribute): Turn on -O3 optimization for this one
3163         function if it isn't the default optimization level.
3164         (handle_cold_attribute): Turn on -Os optimization for this one
3165         function if it insn't the default optimization.
3166         (const_char_p): New const char * typedef.
3167         (optimize_args): New static vector to remember the optimization
3168         arguments.
3169         (parse_optimize_options): New function to set up the optimization
3170         arguments from either the optimize attribute or #pragma GCC optimize.
3171
3172         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
3173         (builtin_define_std): Ditto.
3174
3175         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
3176         Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
3177         (x86_64-*-*): Ditto.
3178
3179         * Makefile.in (TREE_H): Add options.h.
3180         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
3181
3182         * doc/extend.texi (option attribute): Document new attribute.
3183         (optimize attribute): Ditto.
3184         (hot attribute): Document hot attribute sets -O3.
3185         (cold attribute): Document cold attribute sets -Os.
3186         (#pragma GCC option): Document new pragma.
3187         (#pragma GCC optimize): Ditto.
3188
3189         * doc/options.texi (TargetSave): Document TargetSave syntax.
3190         (UInteger): Document UInteger must be used for certain flags.
3191         (Save): Document Save option to create target specific options
3192         that can be saved/restored on a function specific context.
3193
3194         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
3195         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
3196
3197         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
3198         (TARGET_OPTION_SAVE): Ditto.
3199         (TARGET_OPTION_RESTORE): Ditto.
3200         (TARGET_OPTION_PRINT): Ditto.
3201         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
3202         (TARGET_CAN_INLINE_P): Ditto.
3203
3204         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
3205         -mfpmath=sse,387.
3206         (-mfpmath=both): Ditto.
3207
3208 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
3209             Karthik Kumar  <karthikkumar@gmail.com>
3210
3211         * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
3212         (TARGET_POPCNT): Ditto.
3213         (TARGET_SAHF): Ditto.
3214         (TARGET_AES): Ditto.
3215         (TARGET_PCLMUL): Ditto.
3216         (TARGET_CMPXCHG16B): Ditto.
3217         (TARGET_RECIP): Move switch into target_flags.
3218         (TARGET_FUSED_MADD): Ditto.
3219         (ix86_arch_features): Make an unsigned char type.
3220         (ix86_tune_features): Ditto.
3221         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
3222         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
3223         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
3224
3225         * config/i386/i386.opt (arch): New TargetSave field to define
3226         fields that need to be saved for function specific option support.
3227         (tune): Ditto.
3228         (fpmath): Ditto.
3229         (branch_cost): Ditto.
3230         (ix86_isa_flags_explicit): Ditto.
3231         (tune_defaulted): Ditto.
3232         (arch_specified): Ditto.
3233         (-m128-long-double): Add Save flag to save option for target
3234         specific option support.
3235         (-m80387): Ditto.
3236         (-maccumulate-outgoing-args): Ditto.
3237         (-malign-double): Ditto.
3238         (-malign-stringops): Ditto.
3239         (-mfancy-math-387): Ditto.
3240         (-mhard-float): Ditto.
3241         (-mieee-fp): Ditto.
3242         (-minline-all-stringops): Ditto.
3243         (-minline-stringops-dynamically): Ditto.
3244         (-mms-bitfields): Ditto.
3245         (-mno-align-stringops): Ditto.
3246         (-mno-fancy-math-387): Ditto.
3247         (-mno-push-args): Ditto.
3248         (-mno-red-zone): Ditto.
3249         (-mpush-args): Ditto.
3250         (-mred-zone): Ditto.
3251         (-mrtd): Ditto.
3252         (-msseregparm): Ditto.
3253         (-mstack-arg-probe): Ditto.
3254         (-m32): Ditto.
3255         (-m64): Ditto.
3256         (-mmmx): Ditto.
3257         (-m3dnow): Ditto.
3258         (-m3dnowa): Ditto.
3259         (-msse): Ditto.
3260         (-msse2): Ditto.
3261         (-msse3): Ditto.
3262         (-msse4.1): Ditto.
3263         (-msse4.2): Ditto.
3264         (-msse4): Ditto.
3265         (-mno-sse4): Ditto.
3266         (-msse4a): Ditto.
3267         (-msse5): Ditto.
3268         (-mrecip): Move flag into target_flags.
3269         (-mcld): Ditto.
3270         (-mno-fused-madd): Ditto.
3271         (-mfused-madd): Ditto.
3272         (-mabm): Move flag into ix86_isa_flags.
3273         (-mcx16): Ditto.
3274         (-mpopcnt): Ditto.
3275         (-msahf): Ditto.
3276         (-maes): Ditto.
3277         (-mpclmul): Ditto.
3278
3279         * config/i386/i386-c.c: New file for #pragma support.
3280         (ix86_target_macros_internal): New function to #define or #undef
3281         target macros based when the user uses the #pragma GCC option to
3282         change target options.
3283         (ix86_pragma_option_parse): New function to add #pragma GCC option
3284         support.
3285         (ix86_target_macros): Move defining the target macros here from
3286         TARGET_CPU_CPP_BUILTINS in i386.h.
3287         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
3288         defined, initialize any subtarget #pragmas.
3289
3290         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
3291         REGISTER_TARGET_PRAGMAS.
3292
3293         * config/i386/t-i386: New file for x86 dependencies.
3294         (i386.o): Make dependencies mirror the include files used.
3295         (i386-c.o): New file, add dependencies.
3296
3297         * config/i386/i386-protos.h (override_options): Add bool argument.
3298         (ix86_valid_option_attribute_tree): Add declaration.
3299         (ix86_target_macros): Ditto.
3300         (ix86_register_macros): Ditto.
3301
3302         * config/i386/i386.c (ix86_tune_features): Move initialization of
3303         the target masks to initial_ix86_tune_features to allow functions
3304         to have different target options.  Make type unsigned char,
3305         instead of unsigned int.
3306         (initial_ix86_tune_features): New static vector to hold processor
3307         masks for the tune variables.
3308         (ix86_arch_features): Move initialization of the target masks to
3309         initial_ix86_arch_features to allow functions to have different
3310         target options.  Make type unsigned char, instead of unsigned int.
3311         (initial_ix86_arch_features): New static vector to hold processor
3312         masks for the arch variables.
3313         (enum ix86_function_specific_strings): New enum to describe the
3314         string options used for attribute((option(...))).
3315         (ix86_target_string): New function to return a string that
3316         describes the target options.
3317         (ix86_debug_options): New function to print the current options in
3318         the debugger.
3319         (ix86_function_specific_save): New function hook to save the
3320         function specific global variables in the cl_target_option structure.
3321         (ix86_function_specific_restore): New function hook to restore the
3322         function specific variables from the cl_target_option structure to
3323         the global variables.
3324         (ix86_function_specific_print): New function hook to print the
3325         target specific options in the cl_target_option structure.
3326         (ix86_valid_option_attribute_p): New function hook to validate
3327         attribute((option(...))) arguments.
3328         (ix86_valid_option_attribute_tree): New function that is common
3329         code between attribute((option(...))) and #pragma GCC option
3330         support that parses the options and returns a tree holding the options.
3331         (ix86_valid_option_attribute_inner_p): New helper function for
3332         ix86_valid_option_attribute_tree.
3333         (ix86_can_inline_p): New function hook to decide if one function
3334         can inline another on a target specific basis.
3335         (ix86_set_current_function); New function hook to switch target
3336         options if the user used attribute((option(...))) or #pragma GCC
3337         option.
3338         (ix86_tune_defaulted): Move to static file scope from
3339         override_options.
3340         (ix86_arch_specified): Ditto.
3341         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
3342         ix86_isa_flags.
3343         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
3344         (OPTION_MASK_ISA_ABM_SET): Ditto.
3345         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
3346         (OPTION_MASK_ISA_CX16_SET): Ditto.
3347         (OPTION_MASK_ISA_SAHF_SET): Ditto.
3348         (OPTION_MASK_ISA_AES_UNSET): Ditto.
3349         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
3350         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
3351         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
3352         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
3353         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
3354         (struct ptt): Move to static file scope from override_options.
3355         (processor_target_table): Ditto.
3356         (cpu_names): Ditto.
3357         (ix86_handle_option): Add support for options that are now isa options.
3358         (override_options): Add support for declaring functions that
3359         support different target options than were specified on the
3360         command line.  Move struct ptt, processor_target_table, cpu_names,
3361         ix86_tune_defaulted, ix86_arch_specified to static file scope.
3362         Add bool argument.  Fix up error messages so the appropriate error
3363         is given for either command line or attribute.
3364         (ix86_previous_fndecl): New static to remember previous function
3365         declaration to see if we need to change target options.
3366         (ix86_builtins_isa): New array to record the ISA of each builtin
3367         function.
3368         (def_builtin): Always create the builtin function, even if the
3369         current ISA doesn't support it.
3370         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
3371         tests for those builtins.
3372         (ix86_init_builtins): Remove TARGET_MMX test for calling
3373         ix86_init_mmx_sse_builtins.
3374         (ix86_expand_builtin): If the current ISA doesn't support a given
3375         builtin, signal an error.
3376         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
3377         (TARGET_SET_CURRENT_FUNCTION): Ditto.
3378         (TARGET_OPTION_SAVE): Ditto.
3379         (TARGET_OPTION_RESTORE): Ditto.
3380         (TARGET_OPTION_PRINT): Ditto.
3381         (TARGET_CAN_INLINE_P): Ditto.
3382
3383 2008-07-22  Rafael Avila de Espindola  <espindola@google.com>
3384
3385         * c-typeck.c (build_external_ref): Don't call assemble_external.
3386         * final.c (output_operand): Call assemble_external.
3387
3388 2008-07-21  DJ Delorie  <dj@redhat.com>
3389
3390         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
3391         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
3392
3393 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3394
3395         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
3396         original insn and splitter contents into ...
3397         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
3398         flag_unsafe_math_optimizations.  Add dummy scratch register.
3399         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
3400         !flag_unsafe_math_optimizations.  Returns number with next
3401         highest magnitude if this is still less or equal to the true
3402         quotient in magnitude.
3403
3404 2008-07-21  Rafael Avila de Espindola  <espindola@google.com>
3405
3406         * Makefile.in: Replace toplev.h with TOPLEV_H.
3407         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
3408         * c-lex.c (fe_file_change): Don't set in_system_header.
3409         * c-parser.c (c_token): Remove in_system_header.
3410         (c_lex_one_token): Don't set in_system_header.
3411         (c_parser_set_source_position_from_token): Don't set in_system_header.
3412         * diagnostic.c (diagnostic_report_diagnostic): Use location from
3413         diagnostic_info.
3414         (warning_at): New.
3415         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
3416         * flags.h (in_system_header): Remove.
3417         * function.c (saved_in_system_header): Remove.
3418         (push_cfun): Don't set in_system_header.
3419         (pop_cfun): Don't set in_system_header.
3420         (push_struct_function): Don't set in_system_header.
3421         * input.h (expanded_location): Add sysp.
3422         (in_system_header_at): New.
3423         (in_system_header): New.
3424         * toplev.c (in_system_header): Remove.
3425         * toplev.h: Include input.h
3426         (warning_at): New.
3427         * tree-cfg.c (execute_warn_function_return): Call warning_at.
3428         * tree-ssa.c (warn_uninit): Call warning_at.
3429         (warn_uninitialized_var): Update calls to warn_uninit.
3430         (warn_uninitialized_phi): Update calls to warn_uninit.
3431         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
3432         (expand_location): Initialize xloc.sysp.
3433         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
3434         (tree_decl_with_vis): Remove in_system_header_flag.
3435
3436 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
3437
3438         PR target/36822
3439         * recog.c (asm_operand_ok): Change the order of the extra
3440         memory constraint checks.
3441
3442 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3443
3444         PR tree-opt/36879
3445         * tree-switch-conversion.c (build_one_array): Call
3446         varpool_mark_needed_node and varpool_finalize_decl
3447         instead of assemble_variable.
3448
3449 2008-07-19  Jan Hubicka  <jh@suse.cz>
3450
3451         * cgraph.c (cgraph_add_new_function): Do early local passes.
3452         * tree-nrv.c (gate_pass_return_slot): New gate.
3453         (pass_nrv): Add the gate.
3454         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
3455         functions.
3456         (coalesce_ssa_name): Coalesce SSA names.
3457         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
3458         not optimizing so unused user vars remains visible.
3459         * common.opt (flag_tree_ter): Always enable by default.
3460         * tree-ssa-ter.c: Include flags.h
3461         (is_replaceable_p): Check that locations match; when aliasing is missing
3462         be conservative about loads.
3463         * tree-optimize.c (gate_init_datastructures): Remove.
3464         (pass_init_datastructures): New.
3465         * passes.c: Reorder passes so we always go into SSA.
3466
3467 2008-07-19  Jan Hubicka  <jh@suse.cz>
3468
3469         * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
3470         * doc/invoke.texi (--combine): Likewise.
3471         (-finline-functions-called-once): Update levels when enabled.
3472         (-funit-at-a-time): Document new behaviour.
3473         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
3474         -fno-section-anchors when disabled explicitly.
3475         (inline params): They are not ignored now.
3476         (precompiled headers): Remove unit-at-a-time as being incompatible.
3477         * opts.c (decode_options): Handle unit-at-a-time as alias;
3478         imply -fno-section-anchors when toplevel reorder is disabled
3479         explicitly.
3480         * common.opt (ftoplevel-reorder): Set default value to 2.
3481         (funit-at-a-time): Set default value to 1.
3482         * config/rs6000/rs6000.c (optimization_options): Set section anchors
3483         to 2.
3484
3485 2008-07-19  Jan Hubicka  <jh@suse.cz>
3486
3487         * builtins.c (expand_builtin_int_roundingfn,
3488         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
3489         it is not useful.
3490
3491 2008-07-19  Richard Guenther  <rguenther@suse.de>
3492
3493         PR bootstrap/36864
3494         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
3495         * tree-ssa-sccvn.c (get_constant_value_id): New function.
3496         * tree-ssa-pre.c (get_expr_value_id): For newly created
3497         constant value-ids make sure to add the expression to its
3498         expression-set.
3499
3500 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
3501
3502         PR middle-end/36877
3503         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
3504         return value of the builtin is ignored.
3505
3506 2008-07-19  Olivier Hainque  <hainque@adacore.com>
3507
3508         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
3509         bits, a C conformant malloc implementation has to provide.
3510         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
3511
3512 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
3513
3514         PR target/36780
3515         PR target/36827
3516         * reload.c (find_reloads_subreg_address): Only reload address if
3517         reloaded == 0, not for reloaded != 1.
3518
3519         Revert:
3520         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
3521         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
3522         (m32c_legitimate_address_p): Handle "++rii" addresses created by
3523         m32c_legitimize_reload_address.
3524
3525         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3526         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
3527         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
3528
3529 2008-07-19  Olivier Hainque  <hainque@adacore.com>
3530
3531         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
3532         argument, saying whether nested array are to be collapsed
3533         into a single array type DIE with multiple subscripts.
3534         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
3535         issues, centralize the nested array types collapsing control and
3536         disable the transformation for Ada.
3537
3538 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
3539
3540         PR target/36786
3541         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
3542         x86_64_shift_adj.
3543         (x86_64_shift_adj_2): New expander.
3544         (x86_64_shift_adj_3): Ditto.
3545         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
3546         to split TImode operands.
3547         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
3548         (ix86_split_lshr): Ditto.
3549
3550 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
3551
3552         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
3553         and __CHAR32_TYPE__.
3554         * c-typeck.c (digest_init): Support char16_t and char32_t.
3555         (set_nonincremental_init_from_string): Idem.
3556
3557 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
3558
3559         PR middle-end/36859
3560         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
3561         PREFERRED_STACK_BOUNDARY.
3562         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
3563
3564 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
3565
3566         PR middle-end/36858
3567         * function.c (locate_and_pad_parm): Cap boundary earlier.
3568
3569 2008-07-17  Julian Brown  <julian@codesourcery.com>
3570
3571         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
3572         no-op for targets which don't use DLLs.
3573
3574 2008-07-17  Martin Jambor  <mjambor@suse.cz>
3575
3576         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
3577         that nodes are relevant by examining the node->analyzed flag.
3578         (ipcp_init_stage): Check which nodes are relevant, assert that the
3579         relevant ones are also required.
3580         (ipcp_propagate_stage): Check on the side arrays are properly
3581         allocated.
3582         (ipcp_print_all_jump_functions): Make sure not to touch any node
3583         that is not analyzed or an edge that does not have a corresponding
3584         entry in the on-the-side vectors.
3585         (ipcp_function_scale_print): Likewise.
3586         (ipcp_update_callgraph): Check that the node is relevant.
3587         (ipcp_insert_stage): Check that the node is relevant.  Check there is
3588         an info for every node and edge.
3589         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
3590         (ipa_print_all_tree_maps): Likewise and a new variable info.
3591         (ipa_print_all_params_modified): Likewise.
3592         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
3593
3594 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
3595
3596         PR target/25343
3597         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
3598
3599 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
3600
3601         PR rtl-optimization/36753
3602         * fwprop.c (use_killed_between): Don't shortcut
3603         single-definition global registers.
3604
3605 2008-07-16  Jan Hubicka  <jh@suse.cz>
3606
3607         * cgraph.h (varpool_empty_needed_queue): Declare.
3608         * cgraphunit.c (output_in_order): Mark all variables as needed;
3609         empty the queue.
3610         * varpool.c (varpool_assemble_node): Update debug queue.
3611         (varpool_assemble_pending_decls): Don't do it here.
3612         (varpool_empty_needed_queue):  New function.
3613
3614 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3615
3616         * recog.c (peephole2_optimize): Fix formatting.
3617
3618 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3619
3620         * c-pch.c (get_ident): Avoid C++ keywords.
3621         * combine-stack-adj.c (single_set_for_csa): Likewise.
3622         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
3623         output_asm_insn): Likewise.
3624         * reload.c (push_secondary_reload, find_reusable_reload,
3625         push_reload, combine_reloads, find_reloads,
3626         debug_reload_to_stream): Likewise.
3627         * reload.h (struct reload): Likewise.
3628         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
3629         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
3630         emit_output_reload_insns): Likewise.
3631         * targhooks.c (default_secondary_reload): Likewise.
3632         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
3633
3634 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3635
3636         * recog.c (validate_change_1, validate_change,
3637         validate_unshare_change, validate_replace_rtx_1, struct
3638         funny_match, constrain_operands, peephole2_optimize): Avoid C++
3639         keywords.
3640         * reload.c (push_secondary_reload, secondary_reload_class,
3641         scratch_reload_class, find_valid_class, find_reusable_reload,
3642         push_reload, find_dummy_reload, find_reloads_address_1,
3643         find_reloads_address_part, find_equiv_reg): Likewise.
3644         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
3645         choose_reload_regs): Likewise.
3646         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
3647         Likewise.
3648         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
3649         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
3650         * sched-rgn.c (concat_INSN_LIST): Likewise.
3651         * stor-layout.c (mode_for_size, mode_for_size_tree,
3652         smallest_mode_for_size): Likewise.
3653
3654 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3655
3656         * cfg.c (dump_reg_info): Avoid C++ keywords.
3657         * dwarf2asm.c (dw2_force_const_mem,
3658         dw2_asm_output_encoded_addr_rtx): Likewise.
3659         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
3660         * expmed.c (expand_shift): Likewise.
3661         * global.c (find_reg): Likewise.
3662         * graph.c (draw_edge): Likewise.
3663         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
3664         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
3665         widen_clz, widen_bswap, expand_parity, expand_unop,
3666         emit_cmp_and_jump_insn_1): Likewise.
3667         * postreload.c (reload_cse_simplify_operands): Likewise.
3668         * ra.h (add_neighbor): Likewise.
3669         * reg-stack.c (remove_regno_note, change_stack): Likewise.
3670         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
3671         record_reg_classes, copy_cost, record_address_regs,
3672         invalid_mode_change_p): Likewise.
3673         * regrename.c (regrename_optimize, scan_rtx_reg,
3674         dump_def_use_chain, find_oldest_value_reg,
3675         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
3676
3677 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
3678
3679         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
3680         MASK_POWERPC64 for power4 in previous commit.
3681
3682 2008-07-16  Olivier Hainque  <hainque@adacore.com>
3683
3684         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
3685         instead of bare conversion to cast const-ness away.
3686
3687 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
3688
3689         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
3690         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
3691         * config/xtensa/xtensa.c (xtensa_function_value): New function.
3692         (TARGET_FUNCTION_VALUE): Define.
3693
3694 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
3695
3696         * config/rs6000/rs6000.c (processor_target_table): Add
3697         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
3698
3699 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
3700
3701         PR target/36827
3702         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
3703         (m32c_legitimate_address_p): Handle "++rii" addresses created by
3704         m32c_legitimize_reload_address.
3705
3706 2007-07-16  Rafael Avila de Espindola  <espindola@google.com>
3707
3708         * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
3709         DECL_IN_SYSTEM_HEADER in sync.
3710
3711 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
3712
3713         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
3714         * tree-ssa-pre.c (pre_expr_eq): Ditto
3715         (get_constant_for_value_id): Take a type as an argument.
3716         (fully_constant_expression): Pass in type.
3717         (find_or_generate_expression): Short circuit constant case.
3718         (create_expression_by_pieces): Remove special casing of
3719         pointer_plus.
3720         (do_regular_insertion): Short circuit constant case.
3721         (do_partial_partial_insertion): Ditto.
3722
3723 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3724
3725         PR target/36782
3726         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
3727
3728 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
3729
3730         * config/xtensa/libgcc-xtensa.ver: New file.
3731         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
3732
3733 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3734
3735         * df-problems.c (df_set_note): Avoid C++ keywords.
3736         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
3737         * dse.c (record_store, remove_useless_values): Likewise.
3738         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
3739         gen_reg_rtx_offset, operand_subword, change_address_1,
3740         change_address, adjust_address_1, offset_address,
3741         widen_memory_access, emit_copy_of_insn_after): Likewise.
3742         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
3743         * fwprop.c (should_replace_address, propagate_rtx_1,
3744         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
3745         Likewise.
3746         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
3747         gcse_emit_move_after, update_ld_motion_stores): Likewise.
3748         * lcm.c (compute_insert_delete, pre_edge_lcm,
3749         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
3750         * lower-subreg.c (resolve_reg_notes): Likewise.
3751         * mode-switching.c (optimize_mode_switching): Likewise.
3752
3753 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3754
3755         * bt-load.c (add_btr_def, migrate_btr_def,
3756         branch_target_load_optimize): Avoid C++ keywords.
3757         * caller-save.c (insert_restore, insert_save, insert_one_insn):
3758         Likewise.
3759         * combine.c (subst, simplify_set, make_extraction,
3760         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
3761         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
3762         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
3763
3764 2008-07-15  Richard Guenther  <rguenther@suse.de>
3765
3766         PR middle-end/36369
3767         * c-common.c (strict_aliasing_warning): Do not warn for
3768         TYPE_REF_CAN_ALIAS_ALL pointers.
3769         (c_common_get_alias_set): may_alias types are not special.
3770         * tree.c (build_pointer_type_for_mode): Look up the may_alias
3771         attribute and set can_ref_all accordingly.
3772         (build_reference_type_for_mode): Likewise.
3773         * doc/extend.texi (may_alias): Clarify.
3774
3775 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3776
3777         PR target/36780
3778         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
3779         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
3780
3781 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3782
3783         PR target/31568
3784         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
3785         gcc_assert, instead call output_operand_lossage.
3786
3787 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
3788
3789         * builtins.c (std_canonical_va_list): Treat structure based
3790         va_list types.
3791
3792 2008-07-15  Ben Elliston  <bje@au.ibm.com>
3793
3794         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
3795
3796 2007-07-14  Rafael Avila de Espindola  <espindola@google.com>
3797
3798         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
3799         is set.
3800
3801 2008-07-14  Jan Hubicka  <jh@suse.cz>
3802
3803         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
3804         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
3805         fix predicates and constraints.
3806         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
3807         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
3808
3809 2008-07-14  Doug Kwan  <dougkwan@google.com>
3810
3811         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
3812         additional option file arm/eabi.opt.
3813         * config/arm/eabi.h (File): New configuration file for EABI targets.
3814         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
3815         SUBSUBTARGET_EXTRA_SPECS.
3816         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
3817         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
3818         from STARTFILE_SPEC so that it can be referenced in an override.
3819         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
3820         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
3821         can be referenced in an override.
3822         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
3823         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
3824         so that it can be referenced in an override.
3825         (LINK_SPEC): Use BPABI_LINK_SPEC.
3826         * config/arm/eabi.opt (File): New.
3827
3828 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3829
3830         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
3831         (FIXED_VALUE_H): New variable.
3832         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
3833         input.h, fixed-value.h.
3834         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
3835         (BASIC_BLOCK_H): Use $(BITMAP_H).
3836         (FUNCTION_H): Add varray.h.
3837         (IPA_REFERENCE_H): Use $(BITMAP_H).
3838         (CGRAPH_H): Add $(BASIC_BLOCK_H).
3839         (DF_H): Use $(BITMAP_H).
3840         (GGC_H): Add statistics.h.
3841         (INSN_ADDR_H): New.
3842         (INSN_ATTR_H): Use it.
3843         (SYSTEM_H): Add safe-ctype.h, filenames.h.
3844         (INPUT_H): New.
3845         (SYMTAB_H): Add $(OBSTACK_H).
3846         (CPP_INTERNAL_H): New.
3847         (TREE_DUMP_H): Add tree-pass.h.
3848         (TREE_FLOW_H): Use $(BITMAP_H)
3849         (PRETTY_PRINT_H): Use $(INPUT_H).
3850         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
3851         (GSTAB_H): New.
3852         (BITMAP_H): New.
3853         (many object files): Fix lots of header dependencies throughout.
3854
3855 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3856
3857         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
3858         New macros.
3859         (s-gtyp-input): Use them to write tmp-gi.list.
3860         (echo_to_gi.list): Remove.
3861
3862 2008-07-14  Richard Guenther  <rguenther@suse.de>
3863
3864         * tree-ssa-sccvn.c (pre_info): Remove.
3865         (switch_to_PRE_table): Likewise.
3866         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
3867         (set_hashtable_value_ids): Do not create value-ids for the
3868         optimistic tables.
3869         (run_scc_vn): Remove double test.  Remove bogus special-case
3870         in value-number printing.
3871         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
3872         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
3873         SSA_NAME_VALUE.
3874         * tree-flow-inline.h (get_value_handle): Remove.
3875         * tree-flow.h (get_value_handle): Remove.
3876
3877 2008-07-14  Martin Jambor  <mjambor@suse.cz>
3878
3879         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
3880         in which we generate arithmetics is not a subrange.
3881
3882 2008-07-14  Martin Jambor  <mjambor@suse.cz>
3883
3884         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
3885
3886 2008-07-14  Richard Guenther  <rguenther@suse.de>
3887
3888         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
3889
3890 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
3891
3892         PR target/36745
3893         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
3894         reload for symbol refs moved to r0 with -fPIC.
3895         (legitimize_pic_address): Use the target register as temporary
3896         reg if possible.
3897         (emit_symbolic_move): Adjust comment.
3898         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
3899         New expanders.
3900
3901 2008-07-14  Ben Elliston  <bje@au.ibm.com>
3902
3903         * c-common.h (C_CPP_HASHNODE): New macro.
3904         * coretypes.h (struct cpp_token): Forward declare.
3905         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
3906         the context-sensitive keyword method.
3907         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
3908         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
3909         expand_bool_pixel): New.
3910         (altivec_categorize_keyword): New function.
3911         (init_vector_keywords): New function.
3912         (rs6000_macro_to_expand): Likewise.
3913         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
3914         compiling an ISO C dialect.
3915
3916 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
3917
3918         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
3919         (create_expression_by_pieces): Fix typo.
3920         (do_regular_insertion): Use debug counter here too.
3921
3922 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
3923
3924         PR target/35492.
3925         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
3926         CONST_OK_FOR_LETTER_P.  All port-local users changed.
3927         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
3928         implement Kp matching power-of-two.
3929         (CONSTRAINT_LEN): Define to match.
3930         * config/cris/cris.md: Replace all use of constraint K with Kc.
3931         ("*btst*): Use Kp for operand 0 of last alternative.
3932
3933 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3934
3935         PR testsuite/36440
3936         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
3937         and quad formats.
3938
3939 2008-07-13  Jan Hubicka  <jh@suse.cz>
3940
3941         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
3942         to be mangled too.
3943
3944 2008-07-13  Richard Guenther  <rguenther@suse.de>
3945
3946         PR middle-end/36811
3947         * langhooks.c (lhd_print_error_function): Deal with recursive
3948         BLOCK trees.
3949
3950 2008-07-12  Jan Hubicka  <jh@suse.cz>
3951
3952         * cgraph.c (assembler_name_hash): New static var.
3953         (hash_node_by_assembler_name, eq_assembler_name): New.
3954         (cgraph_node_for_asm): Use hashtable.
3955         (cgraph_remove_node): Maintain hashtable.
3956         (change_decl_assembler_name): Sanity check that names are not changing
3957         after aliasing was processed.
3958         * cgraph.h (varpoon_node): Add next GGC marker.
3959         * tree.c (decl_assembler_name_equal): Constify.
3960         (decl_assembler_name_hash): New.
3961         * tree.h (decl_assembler_name_equal): Constify.
3962         (decl_assembler_name_hash): Update.
3963
3964 2008-07-12  David Daney  <ddaney@avtrex.com>
3965
3966         * config/mips/driver-native.c (host_detect_local_cpu): Handle
3967         sb1 and r5000 cpus.
3968
3969 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3970
3971         * doc/md.texi: Document the MIPS "v" constraint.
3972         * config/mips/mips.h (reg_class): Revert last change.
3973         (REG_CLASS_NAMES): Likewise.
3974         (REG_CLASS_CONTENTS): Likewise.
3975         * config/mips/mips.c (mips_regno_to_class): Likewise.
3976         * config/mips/constraints.md (v): Likewise, but add documentation.
3977         Add a comment to say that this constraint should not be used in
3978         gcc code.
3979
3980 2008-07-11  DJ Delorie  <dj@redhat.com>
3981
3982         * config/h8300/h8300.md (length): Fix branch offset limit.
3983
3984 2008-07-11  Anatoly Sokolov  <aesok@post.ru>
3985
3986         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
3987         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
3988         (avr_hard_regno_scratch_ok): New function.
3989         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
3990         * config/avr/avr.md (all peepholes that request a scratch register):
3991         Remove avr_peep2_scratch_safe use.
3992
3993 2008-07-11  Tom Tromey  <tromey@redhat.com>
3994             Ian Lance Taylor  <iant@google.com>
3995
3996         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
3997         (struct c_common_resword): Define.
3998         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
3999         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
4000         (c_common_reswords, num_c_common_reswords): Declare.
4001         * c-common.c (c_common_reswords): New global const array.
4002         (num_c_common_reswords): New const int.
4003         * c-parser.c (struct resword, reswords): Don't define.
4004         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
4005         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
4006         than reswords.  If warning about C++ keywords, give them a special
4007         RID code.
4008         (c_lex_one_token): Warn about C++ keywords.  Call
4009         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
4010         (c_parser_external_declaration): Look for RID_xxx rather than
4011         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
4012         (c_parser_statement_after_labels): Likewise.
4013         (c_parser_objc_class_instance_variables): Likewise.
4014         (c_parser_objc_class_declaration): Likewise.
4015         (c_parser_objc_try_catch_statement): Likewise.
4016         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
4017         (declspecs_add_type): Likewise.
4018
4019 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
4020
4021         * ggc-page.c (alloc_page):
4022         Substituting xmalloc, xcalloc with
4023         XNEWVEC and XCNEWVAR macros which add the
4024         needed casts.
4025
4026 2008-07-11  Richard Guenther  <rguenther@suse.de>
4027
4028         PR tree-optimization/36765
4029         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
4030         aliases from HEAP vars to SMTs.
4031
4032 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4033
4034         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
4035         * configure.ac (loose_warn): Move -Wc++-compat from here...
4036         (strict_warn): ...to here.
4037         * configure: Regenerate.
4038
4039 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
4040
4041         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
4042         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
4043         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
4044         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
4045         excluding more specific h8300-*-* and sh-*-* targets.
4046
4047 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
4048
4049         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
4050         (eliminate): Ditto.
4051         (execute_pre): Call loop_optimizer_finalize in early exit.
4052
4053 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
4054
4055         PR middle-end/36790
4056         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
4057         uids in the bitmap, not just VAR_DECL uids.
4058
4059         PR rtl-optimization/36419
4060         * combine-stack-adj.c (adjust_frame_related_expr): New function.
4061         (combine_stack_adjustments_for_block): Call it if needed.  Delete
4062         correct insn.
4063         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
4064         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
4065         prologue sp adjustment.
4066
4067 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
4068
4069         PR other/28322
4070         * opts.c (print_ignored_options): Report postponed diagnostics for
4071         unknown -Wno-* options as warnings, not errors.
4072         (postpone_unknown_option_error): Renamed to...
4073         (postpone_unknown_option_warning): ... this.
4074
4075 2008-07-09  Doug Kwan  <dougkwan@google.com>
4076
4077         Revert:
4078         2008-07-08  Doug Kwan  <dougkwan@google.com>
4079
4080         * config/arm/arm.opt (mandroid): New option.
4081         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
4082         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
4083         (CC1_SPEC): Same.
4084         (CC1PLUS_SPEC): Same.
4085         (LIB_SPEC): Same.
4086         (STARTFILE_SPEC): Same.
4087         (ENDFILE_SPEC): Same.
4088         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
4089         used.
4090
4091 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
4092
4093         PR target/35802
4094         * config/mips/mips.h (reg_class): Remove V1_REG.
4095         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
4096         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
4097         instead of V1_REGS.
4098         (mips_get_tp): New function.
4099         (mips_legitimize_tls_address): Use it.
4100         * config/mips/constraints.md (v): Delete.
4101         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
4102         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
4103         After reload, split into a move and ...
4104         (*tls_get_tp_<mode>_split): ...this new instruction.
4105
4106 2008-07-09  David Daney  <ddaney@avtrex.com>
4107
4108         * config/mips/driver-native.c: Include coretypes.h and tm.h.
4109
4110 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
4111
4112         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
4113         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
4114         Add c argument.
4115         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
4116         htab_delete should be called.  Don't free c.
4117         (lookup_tmp_var): Create temp_htab lazily.
4118         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
4119         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
4120         callers.
4121         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
4122         lower_omp_ordered, lower_omp_critical, lower_omp_for,
4123         create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
4124         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
4125         * tree-sra.c (generate_element_init): Likewise.
4126         * tree-mudflap.c (execute_mudflap_function_ops,
4127         execute_mudflap_function_decls): Likewise.
4128         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
4129         * tree-gimple.h (struct gimplify_ctx): New type.
4130         (push_gimplify_context): Adjust prototype.
4131
4132 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
4133
4134         * tree-ssa-pre.c (phi_translate_1): Update placement of
4135         add_to_value calls.
4136
4137 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
4138
4139         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
4140         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
4141         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
4142         * targhooks.c (default_hard_regno_scratch_ok): New function.
4143         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
4144         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
4145         * recog.c:  Include "target.h".
4146         (peep2_find_free_register): Add check for global regs. Add target
4147         specific check.
4148         * Makefile.in (recog.o): Depend on target.h.
4149
4150 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
4151
4152         * config/sh/sh.c (sh_canonical_va_list_type): New.
4153         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
4154
4155 2008-07-09  Raksit Ashok <raksit@google.com>
4156
4157         * doc/invoke.texi (Option Summary): Mention new option
4158         -Wdisallowed-function-list=...
4159         (Warning Options): Document -Wdisallowed-function-list=...
4160         * common.opt (Wdisallowed-function-list=): New flag.
4161         * flags.h (warn_disallowed_functions): External definition of new
4162         boolean warning flag.
4163         (warn_if_disallowed_function_p): Declare new function.
4164         * opts.c (warning_disallowed_functions): New static variable.
4165         (warn_disallowed_functions): New boolean warning flag.
4166         (warn_if_disallowed_function_p): New function.
4167         (add_comma_separated_to_vector): Rename
4168         add_instrument_functions_exclude_list to this.
4169         (common_handle_option): Handle new option. Rename calls to
4170         add_instrument_functions_exclude_list into calls to
4171         add_comma_separated_to_vector.
4172         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
4173         based on flag warn_disallowed_functions.
4174
4175 2008-07-09  Christian Bruel  <christian.bruel@st.com>
4176
4177         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
4178          instead of get_attr_length.
4179
4180 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4181
4182         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
4183         keywords.
4184         * genemit.c (gen_insn): Likewise.
4185         * gengtype.c (note_def_vec): Likewise.
4186         * gengtype.h (note_def_vec): Likewise.
4187         * genoutput.c (struct data, output_insn_data, process_template,
4188         gen_expand, gen_split, note_constraint): Likewise.
4189         * genrecog.c (new_decision, add_to_sequence, factor_tests,
4190         make_insn_sequence): Likewise.
4191         * gensupport.c (record_insn_name): Likewise.
4192
4193 2008-07-08  Doug Kwan  <dougkwan@google.com>
4194
4195         * config/arm/arm.opt (mandroid): New option.
4196         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
4197         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
4198         (CC1_SPEC): Same.
4199         (CC1PLUS_SPEC): Same.
4200         (LIB_SPEC): Same.
4201         (STARTFILE_SPEC): Same.
4202         (ENDFILE_SPEC): Same.
4203         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
4204         used.
4205
4206 2008-07-08  Raksit Ashok  <raksit@google.com>
4207
4208         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
4209         (set_storage_via_setmem): Fix expected_align parameter.
4210         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
4211         missing from the list.
4212         * doc/md.texi (movmem): Explicitly state that expected alignment is
4213         to be expressed in bytes.
4214         (setmem): Explicitly state that expected alignment is to be expressed
4215         in bytes.
4216
4217 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
4218
4219         * reload.c (find_reloads_subreg_address): Do not require validity
4220         of address in original mode before reloading address.
4221
4222 2008-07-07  Tianwei Sheng  <tianweis@google.com>
4223
4224         * df-core.c (df_remove_problem): Adjust the access to avoid out of
4225         bounds array access.
4226
4227 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
4228
4229         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
4230
4231 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
4232
4233         Fix PR tree-optimization/23455
4234         Fix PR tree-optimization/35286
4235         Fix PR tree-optimization/35287
4236         * Makefile.in (OBJS-common): Remove tree-vn.o.
4237         (tree-vn.o): Remove.
4238         * dbgcnt.def: Add treepre_insert debug counter.
4239         * gcc/tree-flow.h (add_to_value): Updated for other changes.
4240         (debug_value_expressions): Ditto.
4241         (print_value_expressions): Ditto.
4242         * tree-pretty-print.c (dump_generic_node): Updated for
4243         VALUE_HANDLE removal.
4244         * tree-ssa-dom.c (record_equality): Ditto.
4245         (cprop_operand): Ditto.
4246         (lookup_avail_expr): Ditto.
4247         * tree-ssa-threadedge.c
4248         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
4249         (simplify_control_stmt_condition): Ditto.
4250         * tree.c (tree_code_size): Ditto.
4251         (tree_node_structure): Ditto.
4252         (iterative_hash_expr): Ditto.
4253         * tree.def: Ditto.
4254         * tree.h (VALUE_HANDLE_ID): Ditto.
4255         (VALUE_HANDLE_EXPR_SET): Ditto.
4256         (struct tree_value_handle): Ditto.
4257         (union tree_node): Ditto.
4258         * treestruct.def: Ditto.
4259         * tree-vn.c: Removed.
4260         * tree-ssa-pre.c: Rewritten entirely.
4261         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
4262         (constant_value_ids): Ditto.
4263         (vn_nary_op_t): Moved to header.
4264         (vn_phi_t): Ditto.
4265         (vn_reference_op_t): Ditto
4266         (vn_reference_t): Ditto.
4267         (next_value_id): New variable.
4268         (VN_INFO): Add an assert.
4269         (vn_constant_eq): New function.
4270         (vn_constant_hash): Ditto.
4271         (get_or_alloc_constant_value_id): Ditto.
4272         (value_id_constant_p): Ditto.
4273         (vn_reference_compute_hash): De-staticify.
4274         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
4275         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
4276         (valueize_refs): Update opcode if it changes from ssa name to constant.
4277         (vn_reference_lookup_1): Add new argument.
4278         (vn_reference_lookup):  Ditto.
4279         (vn_reference_lookup_pieces): New function.
4280         (vn_reference_insert): Add return type. Modify to deal with value ids.
4281         (vn_reference_insert_pieces):  New function.
4282         (vn_nary_op_compute_hash): De-staticify.
4283         (vn_nary_op_eq): Ditto.
4284         (vn_nary_op_lookup_pieces): New function.
4285         (vn_nary_op_lookup): Add new argument.
4286         (vn_nary_op_insert_pieces): New function.
4287         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
4288         (vn_phi_insert): Ditto.
4289         (visit_unary_op): Update for callee changes.
4290         (visit_binary_op): Ditto.
4291         (visit_reference_op_load): Ditto.
4292         (visit_reference_op_store): Ditto.
4293         (init_scc_vn): Init next_value_id, constant_to_value_id and
4294         constant_value_ids.
4295         (free_scc_vn): Free them.
4296         (set_hashtable_value_ids): New function.
4297         (run_scc_vn): Use it.
4298         (get_max_value_id): New function.
4299         (get_next_value_id): Ditto.
4300         (expressions_equal_p): Moved from tree-vn.c
4301         (sort_vuses): Ditto.
4302         (sort_vuses_heap): Ditto.
4303         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
4304         above).
4305         * tree.c (iterative_hash_hashval_t): Made non-static
4306         * tree.h (iterative_hash_hashval_t): Declare it.
4307
4308 2008-07-08  Martin Jambor  <mjambor@suse.cz>
4309
4310         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
4311         instead of ipa_create_node_params.
4312         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
4313         ipa_check_create_edge_args, free them with
4314         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
4315
4316         * ipa-prop.c: Include flags.h and tree-inline.h.
4317         (ipa_node_params_vector): New variable.
4318         (ipa_edge_args_vector): New variable.
4319         (edge_removal_hook_holder): New variable.
4320         (node_removal_hook_holder): New variable.
4321         (edge_duplication_hook_holder): New variable.
4322         (node_duplication_hook_holder): New variable.
4323         (ipa_detect_param_modifications): Check for presence of modified flags.
4324         (ipa_compute_jump_functions): Check for presence of jump functions.
4325         (ipa_free_edge_args_substructures): New function.
4326         (ipa_create_node_params): Removed.
4327         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
4328         (ipa_free_node_params_substructures): New function.
4329         (ipa_free_all_node_params): Changed to deallocate the on-the-side
4330         vector.
4331         (ipa_edge_removal_hook): New function.
4332         (ipa_node_removal_hook): New function.
4333         (duplicate_array): New function.
4334         (ipa_edge_duplication_hook): New function.
4335         (ipa_node_duplication_hook): New function.
4336         (ipa_register_cgraph_hooks): New function.
4337         (ipa_unregister_cgraph_hooks): New function.
4338         (free_all_ipa_structures_after_ipa_cp): New function.
4339
4340         * ipa-prop.h: Include vec.h.
4341         (ipa_node_params_t): New typedef with vector types for it.
4342         (ipa_edge_args_t):  New typedef with vector types for it.
4343         (IPA_NODE_REF): Changed to access an on-the-side vector.
4344         (IPA_EDGE_REF): Changed to access an on-the-side vector.
4345         (ipa_check_create_node_params): New function.
4346         (ipa_check_create_edge_args): New function.
4347
4348         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
4349         all users.
4350
4351 2008-07-07  Tom Tromey  <tromey@redhat.com>
4352
4353         * configure, config.in: Rebuilt.
4354         * configure.ac: Don't check for scandir or alphasort.
4355
4356 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
4357
4358         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
4359         types immediately after creating them.
4360
4361 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
4362
4363         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
4364
4365 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
4366
4367         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
4368         dump_constraint_graph.
4369         (dump_constraint_edge): New function.
4370         (dump_constraint_graph): New function.
4371         (debug_constraint_graph): New function.
4372         (dump_constraint): Removed useless comparison.
4373         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
4374         (dump_constraint_graph): Declare.
4375         (debug_constraint_graph): Declare.
4376         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
4377
4378 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
4379
4380         * config/i386/i386.c (is_va_list_char_pointer): New.
4381         (ix86_va_start): Replace compare with ms_va_list_type_node
4382         by is_va_list_char_pointer.
4383         (ix86_gimplify_va_arg): Likewise.
4384
4385 2008-07-07  Martin Jambor  <mjambor@suse.cz>
4386
4387         * cgraph.c (cgraph_edge_max_uid): New variable.
4388         (struct cgraph_edge_hook_list): New type.
4389         (struct cgraph_node_hook_list): New type.
4390         (struct cgraph_2edge_hook_list): New type.
4391         (struct cgraph_2node_hook_list): New type.
4392         (first_cgraph_edge_removal_hook): New variable.
4393         (first_cgraph_node_removal_hook): New variable.
4394         (first_cgraph_edge_duplicated_hook): New variable.
4395         (first_cgraph_node_duplicated_hook): New variable.
4396         (cgraph_add_edge_removal_hook): New function.
4397         (cgraph_remove_edge_removal_hook): New function.
4398         (cgraph_call_edge_removal_hooks):  New function.
4399         (cgraph_add_node_removal_hook):  New function.
4400         (cgraph_remove_node_removal_hook):  New function.
4401         (cgraph_call_node_removal_hooks):  New function.
4402         (cgraph_add_edge_duplication_hook):  New function.
4403         (cgraph_remove_edge_duplication_hook):  New function.
4404         (cgraph_call_edge_duplication_hooks):  New function.
4405         (cgraph_add_node_duplication_hook):  New function.
4406         (cgraph_remove_node_duplication_hook):  New function.
4407         (cgraph_call_node_duplication_hooks):  New function.
4408         (cgraph_create_edge): Assign to edge uid.
4409         (cgraph_remove_edge): Call edge removal hooks.
4410         (cgraph_node_remove_callees): Call edge removal hooks.
4411         (cgraph_node_remove_callers): Call edge removal hooks.
4412         (cgraph_remove_node): Call node removal hooks.
4413         (cgraph_clone_edge): Call edge duplication hooks.
4414         (cgraph_clone_node): Call node duplication hooks.
4415
4416         * cgraph.h (cgraph_edge): New field uid.
4417         (cgraph_edge_hook): New type.
4418         (cgraph_node_hook): New type.
4419         (cgraph_2edge_hook): New type.
4420         (cgraph_2node_hook): New type.
4421
4422 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
4423
4424         * config.in: Regenerate.
4425
4426 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
4427
4428         * gcc.c (print_sysroot): New.
4429         (option_map, display_help, process_command): Handle the
4430         -print-sysroot option.
4431         (main): Print the sysroot if requested.
4432         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
4433
4434 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4435
4436         PR target/34780
4437         * unwind-pe.h (size_of_encoded_value): add attribute unused.
4438
4439 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
4440
4441         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
4442         (assign_parm_setup_block_p): Also check mode of entry_parm.
4443
4444 2008-07-07  Richard Guenther  <rguenther@suse.de>
4445
4446         * tree-ssa-structalias.h (set_used_smts): Remove.
4447         * tree-ssa-structalias.c (used_smts): Likewise.
4448         (set_used_smts): Likewise.
4449         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
4450         call to set_used_smts.
4451
4452 2008-07-07  Richard Guenther  <rguenther@suse.de>
4453
4454         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
4455         (new_var_info): Set it to false.
4456         (solution_set_add): Correctly handle pointers outside a var and
4457         inside a field.
4458         (type_safe): Treat variables with is_full_var properly.
4459         (do_sd_constraint): Likewise.
4460         (do_ds_constraint): Likewise.
4461         (process_constraint): Remove zeroing offset for !use_field_sensitive.
4462         (get_constraint_for_ptr_offset): New function.
4463         (get_constraint_for_component_ref): For addresses at least include
4464         the last field of the variable.  Handle is_full_vars properly.
4465         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
4466         (handle_ptr_arith): Remove.
4467         (find_func_aliases): Simplify assignment handling.
4468         (create_function_info_for): For parameter and result varinfos set
4469         is_full_var flag.
4470         (create_variable_info_for): Set is_full_var flag whenever we
4471         just created a single varinfo for a decl.
4472         (init_alias_vars): Initialize use_field_sensitive from
4473         max-fields-for-field-sensitive parameter.
4474
4475 2008-07-07  Richard Guenther  <rguenther@suse.de>
4476
4477         PR tree-optimization/36713
4478         * tree-flow-inline.h (is_call_used): New function.
4479         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
4480         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
4481         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
4482
4483 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
4484
4485         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
4486
4487 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
4488
4489         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
4490
4491 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
4492             Nathan Sidwell  <nathan@codesourcery.com>
4493
4494         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
4495         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
4496         tmake_file.
4497         * config/m68k/t-linux: New.
4498         * doc/install.texi: Document m68k-*-linux is now multilibbed by
4499         default.
4500
4501 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
4502
4503         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
4504         * config/m68k/m68k-devices.def: Remove multilibs that only differ
4505         by MAC/EMAC.
4506
4507 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4508
4509         * gcc.c (execute): Fix -Wc++-compat warning.
4510
4511 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
4512
4513         PR target/36720
4514         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
4515         constant for little endian.
4516
4517 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
4518
4519         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
4520         mips_base_mips16 instead of TARGET_MIPS16.
4521         (mips_base_mips16): Declare.
4522         * config/mips/mips.c (mips_base_mips16): Make global.
4523         (was_mips16_p): Remove GTY marker.
4524         (was_mips16_pch_p): New variable.
4525         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
4526         (mips_override_options): Force to non-MIPS16 mode initially.
4527         Do not complain about MIPS16 PIC incompatibilities here.
4528         Only allow -mgpopt if -mexplicit-relocs is in force for
4529         non-MIPS16 code.
4530
4531 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
4532
4533         * configure.ac: Check for caddr_t, define to char * if not defined.
4534         * configure: Regenerate.
4535         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
4536         (mmap_gt_pch_use_address): Likewise.
4537         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
4538
4539 2008-07-06  Richard Guenther  <rguenther@suse.de>
4540
4541         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
4542         (new_var_info): Deal with it.
4543         (solution_set_add): Likewise.
4544         (bitpos_of_field): Make signed, fix.
4545         (struct fieldoff): Remove type and decl fields.  Make size field
4546         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
4547         flags.
4548         (fieldoff_compare): Deal with it.
4549         (push_fields_onto_fieldstack): Remove has_union argument, glob
4550         adjacent non-pointer fields together.
4551         (create_function_info_for): Do not set has_union.
4552         (create_variable_info_for): Simplify.
4553
4554 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
4555
4556         * config.gcc (extra_headers): Add cross-stdarg.h for target
4557         x86_64-*-* and i?86-*-*.
4558         * config/i386/cross-stdarg.h: New.
4559         * builtins.c (std_fn_abi_va_list): New.
4560         (std_canonical_va_list_type): New.
4561         (stabilize_va_list): Replace va_list_type_node use by
4562         mtarget.canonical_va_list_type.
4563         (gimplify_va_arg_expr): Likewise.
4564         (expand_builtin_va_copy): Replace va_list_type_node use by
4565         mtarget.fn_abi_va_list.
4566         * tree-sra.c (is_va_list_type): New helper.
4567         (decl_can_be_decomposed_p): Replace
4568         va_list_type_node use by is_va_list_type.
4569         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
4570         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
4571         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
4572         * config/i386/i386-protos.h (ix86_get_valist_type): New.
4573         (ix86_enum_va_list): New.
4574         * config/i386/i386.c (sysv_va_list_type_node): New.
4575         (ms_va_list_type_node): New.
4576         (ix86_function_type_abi): Remove sorry.
4577         (ix86_build_builtin_va_list_abi): New.
4578         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
4579         for 64-bit targets.
4580         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
4581         (ix86_init_builtins_va_builtins_abi): New.
4582         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
4583         for 64-bit targets.
4584         (ix86_handle_abi_attribute): New.
4585         (attribute_spec): Add sysv_abi and ms_abi.
4586         (ix86_fn_abi_va_list): New.
4587         (ix86_canonical_va_list_type): New.
4588         (ix86_enum_va_list): New.
4589         (TARGET_FN_ABI_VA_LIST): New.
4590         (TARGET_CANONICAL_VA_LIST_TYPE): New.
4591         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
4592         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
4593         (TARGET_CANONICAL_VA_LIST_TYPE): New.
4594         (TARGET_ENUM_VA_LIST): New.
4595         * expr.h (std_fn_abi_va_list): New.
4596         (std_canonical_va_list_type): New.
4597         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
4598         (TARGET_CANONICAL_VA_LIST_TYPE): New.
4599         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
4600         TARGET_CANONICAL_VA_LIST_TYPE.
4601         * target.h (struct gcc_target): Add fn_abi_va_list hook
4602         and canonical_va_list_type hook.
4603
4604 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4605
4606         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
4607         integral and pointer types.
4608
4609 2008-07-04  Roger Sayle  <roger@eyesopen.com>
4610
4611         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
4612         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
4613
4614 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
4615
4616         PR target/36684
4617         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
4618
4619 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
4620
4621         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
4622         build_gimple_modify_stmt.
4623         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
4624         gimple operand.  Use fold_build* instead of build*.
4625
4626 2008-07-04  Richard Guenther  <rguenther@suse.de>
4627
4628         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
4629         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
4630         properly to compute the reachability set if we do field-sensitive PTA.
4631         * invoke.texi (max-fields-for-field-sensitive): Document default.
4632         * opts.c (decode_options): Set max-fields-for-field-sensitive to
4633         100 for optimize >= 2.
4634
4635 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4636
4637         * ggc-zone.c (lookup_page_table_if_allocated,
4638         set_page_table_entry, zone_find_object_size, alloc_small_page,
4639         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
4640         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
4641         -Wc++-compat and/or -Wcast-qual warnings.
4642
4643 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
4644
4645         PR target/36634
4646         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
4647         pic_offset_table_rtx to be marked as used here.
4648         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
4649         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
4650         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
4651         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
4652         !TARGET_SECURE_PLT.
4653
4654 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4655
4656         * alloc-pool.c (hash_descriptor, eq_descriptor,
4657         alloc_pool_descriptor): Fix -Wc++-compat warnings.
4658         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
4659         Likewise.
4660         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
4661         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
4662         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
4663         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
4664         Likewise.
4665
4666 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
4667
4668         * tree-flow.h (loop_only_exit_p): Declare.
4669         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
4670         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
4671         the number of iterations if it is constant.  Otherwise, if this is the
4672         only possible exit of the loop, use the conservative estimate on the
4673         number of iterations of the entire loop if available.
4674
4675 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
4676
4677         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
4678         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
4679         Add synchronization functions.
4680         * config/sync.c: New file.
4681         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
4682         (LIBGCC_SYNC_CFLAGS): Likewise.
4683
4684 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
4685
4686         PR target/36710
4687         * config/i386/i386.md (mode): Add TF to "mode" attribute.
4688         (*pushtf_sse): New insn pattern.
4689         (pushtf splitters): New splitters.
4690
4691 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
4692
4693         PR middle-end/35736
4694         * predict.c (build_predict_expr): Use void_type_node for the tree
4695         type, instead of NULL_TREE.
4696
4697 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
4698
4699         * config/i386/i386.c (contains_aligned_value_p): Return true
4700         for TCmode.
4701         (ix86_data_alignment): Align TCmode to 128bits.
4702         (ix86_local_alignment): Likewise.
4703
4704 2008-07-03  Andrew Haley  <aph@redhat.com>
4705
4706         PR bootstrap/33304
4707         * vec.h (VEC_TA): New.
4708         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
4709         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
4710         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
4711         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
4712         (C_COMMON_FIXED_TYPES): Remove first arg.
4713         (C_COMMON_FIXED_MODE_TYPES): Likewise.
4714         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
4715         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
4716         not to use empty macro arguments.
4717
4718 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
4719
4720         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
4721         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
4722         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
4723         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
4724         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
4725         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
4726         config/ia64/crtn.asm, config/m68hc11/larith.asm,
4727         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
4728         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
4729         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
4730         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
4731         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
4732         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
4733         config/rs6000/e500crtres64gpr.asm,
4734         config/rs6000/e500crtres64gprctr.asm,
4735         config/rs6000/e500crtrest32gpr.asm,
4736         config/rs6000/e500crtrest64gpr.asm,
4737         config/rs6000/e500crtresx32gpr.asm,
4738         config/rs6000/e500crtresx64gpr.asm,
4739         config/rs6000/e500crtsav32gpr.asm,
4740         config/rs6000/e500crtsav64gpr.asm,
4741         config/rs6000/e500crtsav64gprctr.asm,
4742         config/rs6000/e500crtsavg32gpr.asm,
4743         config/rs6000/e500crtsavg64gpr.asm,
4744         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
4745         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
4746         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
4747         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
4748         config/sparc/sol2-cn.asm: Remove .file directives.
4749
4750 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
4751
4752         * resource.c (mark_referenced_resources): Look inside
4753         UNSPEC_VOLATILEs and ASM_INPUTs.
4754
4755 2008-07-02  Ian Lance Taylor  <iant@google.com>
4756
4757         * rtlanal.c (add_reg_note): New function.
4758         * rtl.h (add_reg_note): Declare.
4759         * auto-inc-dec.c (attempt_change): Use add_reg_note.
4760         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
4761         * builtins.c (expand_builtin_longjmp): Likewise.
4762         (expand_builtin_nonlocal_goto): Likewise.
4763         * calls.c (emit_call_1, expand_call): Likewise.
4764         * cfgexpand.c (add_reg_br_prob_note): Likewise.
4765         * cfglayout.c (fixup_reorder_chain): Likewise.
4766         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
4767         (commit_one_edge_insertion): Likewise.
4768         * combine.c (move_deaths, distribute_notes): Likewise.
4769         * df-problems.c (df_set_note): Likewise.
4770         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
4771         (set_unique_reg_note): Likewise.
4772         (emit_copy_of_insn_after): Likewise.
4773         * expr.c (expand_expr_real): Likewise.
4774         * gcse.c (add_label_notes): Likewise.
4775         * haifa-sched.c (create_check_block_twin): Likewise.
4776         * jump.c (mark_jump_label_1): Likewise.
4777         * loop-doloop.c (add_test, doloop_modify): Likewise.
4778         * loop-unswitch.c (compare_and_jump_seq): Likewise.
4779         * lower-subreg.c (move_eh_region_note): Likewise.
4780         * optabs.c (emit_libcall_block): Likewise.
4781         * predict.c (predict_insn): Likewise.
4782         (combine_predictions_for_insn): Likewise.
4783         * recog.c (peephole2_optimize): Likewise.
4784         * regmove.c (try_auto_increment): Likewise.
4785         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
4786         * reload.c (find_reloads): Likewise.
4787         * reload1.c (fixup_eh_region_note): Likewise.
4788         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
4789         * reorg.c (delete_prior_computation): Likewise.
4790         (delete_computation, dbr_schedule): Likewise.
4791         * config/pa/pa.c (legitimize_pic_address): Likewise.
4792         * config/sh/sh.c (sh_reorg): Likewise.
4793
4794 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
4795
4796         PR target/36669
4797         * config/libgcc-glibc.ver: Add %exclude.
4798         * config/m32r/libgcc-glibc.ver: Likwise.
4799         * config/s390/libgcc-glibc.ver: Likwise.
4800         * config/sh/libgcc-glibc.ver: Likwise.
4801         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
4802
4803         * config/i386/libgcc-glibc.ver: New.
4804
4805         * config/i386/libgcc-x86_64-glibc.ver: Removed.
4806
4807 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
4808
4809         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
4810         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
4811         i[34567]86-*-linux*, x86_64-*-linux*.  Add
4812         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
4813         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
4814         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
4815         i[34567]86-*-linux*, x86_64-*-linux*.
4816
4817         * libgcc-std.ver: Add empty GCC_4.4.0.
4818
4819         * mkmap-symver.awk: Support multiple versions per symbol.
4820
4821         * config/i386/i386.c (ix86_init_builtins): Always define
4822         __builtin_fabsq and __builtin_copysignq with fallbacks.
4823         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
4824         and __builtin_copysignq if SSE2 isn't available.
4825
4826         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
4827         (LIBGCC2_TF_CEXT): Likwise.
4828         (TF_SIZE): Likwise.
4829
4830         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
4831
4832         * config/i386/sfp-machine.h: Moved to libgcc.
4833
4834         * config/i386/sfp-machine.h: New.
4835         * config/i386/t-linux: Likwise.
4836
4837         * config/i386/t-darwin: Remove softfp_wrap_start and
4838         softfp_wrap_end.
4839         * config/i386/t-darwin64: Likewise.
4840
4841         * config/i386/t-fprules-softfp64: Renamed to ...
4842         * config/i386/t-fprules-softfp: This.
4843
4844         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
4845         and softfp_wrap_end.
4846
4847 2008-07-02  Jason Merrill  <jason@redhat.com>
4848
4849         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
4850
4851         * tree.c (ctor_to_list): New fn.
4852         * tree.h: Declare it.
4853         (CONSTRUCTOR_ELT): New macro.
4854         (CONSTRUCTOR_NELTS): New macro.
4855
4856 2008-07-02  Richard Guenther  <rguenther@suse.de>
4857
4858         * tree-ssa-structalias.c (struct variable_info): Reorder
4859         to fill padding on 64bit hosts.  Make collapsed_to an int.
4860         (get_varinfo_fc): Deal with that.
4861         (new_var_info): Likewise.
4862         (collapse_rest_of_var): Likewise.
4863
4864 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
4865
4866         * doc/install.texi (--enable-java-home): Document.
4867         (--enable-aot-compile-rpm): Likewise.
4868         (--with-arch-directory): Likewise.
4869         (--with-os-directory): Likewise.
4870         (--with-origin-name): Likewise.
4871         (--with-arch-suffix): Likewise.
4872         (--with-jvm-root-dir): Likewise.
4873         (--with-jvm-jar-dir): Likewise.
4874         (--with-python-dir): Likewise.
4875
4876 2008-07-02  Richard Guenther  <rguenther@suse.de>
4877
4878         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
4879         from decls explicitly.  Merge operand checking from tuples.
4880
4881 2008-07-02  Martin Jambor  <mjambor@suse.cz>
4882
4883         * tree-switch-conversion.c: Included timevar.h which I forgot before.
4884
4885 2008-07-02  Martin Jambor  <mjambor@suse.cz>
4886
4887         * tree-switch-conversion.c: Included timevar.h
4888         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
4889
4890         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
4891
4892 2008-07-02  Martin Jambor  <mjambor@suse.cz>
4893
4894         * tree-switch-conversion.c: Corrected various comments and
4895         whitespace issues
4896         (build_constructors): Fixed minor formatting mistakes.
4897
4898         * invoke.texi (Optimize Options): Corrected the
4899         switch-conversion-max-branch-ratio parameter.
4900
4901 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
4902
4903         * final.c (asm_insn_count): Return zero for an empty asm body.
4904
4905 2008-07-02  Richard Guenther  <rguenther@suse.de>
4906
4907         * bitmap.h (bitmap_set_bit): Return bool.
4908         (bitmap_clear_bit): Likewise.
4909         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
4910         write to the bitmap if it would.
4911         (bitmap_clear_bit): Likewise.
4912         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
4913         bitmap_set_bit return value.
4914         (add_pred_graph_edge): Likewise.
4915         (add_graph_edge): Likewise.
4916         (do_sd_constraint): Likewise.
4917         (do_ds_constraint): Likewise.
4918
4919 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4920
4921         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
4922         Fix -Wc++-compat and/or -Wcast-qual warnings.
4923         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
4924         gen_regparm_prefix): Likewise.
4925         * vmsdbgout.c (write_modbeg, lookup_filename,
4926         vmsdbgout_source_line, vmsdbgout_init): Likewise.
4927
4928 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
4929
4930         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
4931         defaults.h definition apply.
4932
4933 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
4934
4935         * function.c (assign_parm_remove_parallels): New.
4936         (assign_parm_setup_block_p): Do not return true for non-BLKmode
4937         PARALLELs.
4938         (assign_parm_setup_block): Do not handle them.
4939         (assign_parm_setup_reg, assign_parm_setup_stack): Call
4940         assign_parm_remove_parallels.
4941
4942 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
4943
4944         * c-typeck.c (convert_for_assignment): Use
4945         vector_targets_convertible_p.
4946         * c-common.c (vector_targets_convertible_p): New.
4947         * c-common.h (vector_targets_convertible_p): New prototype.
4948         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
4949         opaque_p_V2SI_type_node.
4950
4951 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
4952
4953         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
4954         RFmode constants.
4955
4956 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
4957
4958         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
4959         TFmode constants via two element DImode vector for hosts with
4960         HOST_BITS_PER_WIDE_INT < 64.
4961         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
4962         also for HOST_BITS_PER_WIDE_INT < 64.
4963
4964 2008-07-01  Richard Guenther  <rguenther@suse.de>
4965
4966         PR tree-optimization/36666
4967         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
4968         (get_constraint_exp_from_ssa_var): Split into ...
4969         (get_constraint_exp_for_temp): ... this ...
4970         (get_constraint_for_ssa_var): ... and that.
4971         Return constraint expressions for all touched sub-fields
4972         if the results address is not taken.
4973         (process_constraint): Remove assertion that aggregate
4974         assignments do not happen at this place.
4975         (get_constraint_for_component_ref): Add address_p argument.
4976         Return constraint expressions for all touched sub-fields
4977         if the results address is not taken.
4978         (do_deref): Use get_constraint_exp_for_temp.
4979         (get_constraint_for_1): Rename from ...
4980         (get_constraint_for): ... this.  Add the old function as wrapper.
4981         (do_structure_copy): Use get_constraint_for_1.
4982
4983 2008-07-01  Martin Jambor  <mjambor@suse.cz>
4984
4985         * Makefile.in (tree-switch-conversion.o): Add.
4986         (OBJS-common): Add tree-swtch-conversion.o.
4987         * passes.c (init_optimization_passes): Add pass_convert_switch.
4988         * tree-pass.h: (pass_convert_switch): Add.
4989         * tree-switch-conversion.c: New file.
4990         * gcc.dg/tree-ssa/cswtch.c: New testcase.
4991         * common.opt (ftree-cswtch): New option.
4992         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
4993         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
4994         * opts.c (decode_options): Set flag_tree_switch_conversion when
4995         optimization level is >= 2.
4996         * doc/invoke.texi (Optimize Options): Added description of
4997         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
4998
4999 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5000
5001         * config/darwin-driver.c (darwin_default_min_version): Fix
5002         -Wc++-compat warnings.
5003
5004 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
5005
5006         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
5007         of operand 0.
5008
5009 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
5010
5011         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
5012
5013 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
5014
5015         PR rtl-optimization/34744
5016         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
5017         (df_scan_free_internal): Free data structures not
5018         allocated in storage pools.
5019         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
5020         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
5021         df_scan_free_mws_vec.
5022         * dse.c (dse_step6): Free offset_map_p and offset_map_n
5023         unconditionally.
5024
5025 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
5026
5027         * config/i386/i386.c (contains_aligned_value_p): Return true
5028         for __float128.
5029         (ix86_function_arg_boundary): Return its natural boundary
5030         for __float128.
5031         (return_in_memory_32): Don't check TDmode.
5032         (ix86_split_to_parts): Support splitting into 4 parts and
5033         support TFmode for 32bit target.
5034         (ix86_split_long_move): Support splitting into 4 parts.
5035         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
5036         for SSE2.
5037         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
5038         (ix86_init_builtins): Here.
5039         (ix86_scalar_mode_supported_p): Always return true for TFmode.
5040         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
5041         'q' and 'w', respectively.
5042
5043         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
5044         TARGET_64BIT.
5045         (movtf_internal): Likewise.
5046         (<code>tf2): Likewise.
5047         (*absnegtf2_sse): Likewise.
5048         (copysign<mode>3): Likewise.
5049         (copysign<mode>3_const): Likewise.
5050         (copysign<mode>3_var): Likewise.
5051         (define_split UNSPEC_COPYSIGN): Likewise.
5052         * config/i386/sse.md (*nandtf3): Likewise.
5053         (<code>tf3): Likewise.
5054         (*<code>tf3): Likewise.
5055
5056 2008-06-30  Joey Ye  <joey.ye@intel.com>
5057             H.J. Lu  <hongjiu.lu@intel.com>
5058
5059         * global.c (compute_regsets): Set frame_pointer_needed here.
5060         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
5061
5062 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
5063
5064         * doc/install.texi (specific): Expand Windows build notes.
5065
5066 2008-06-30  Ira Rosen  <irar@il.ibm.com>
5067
5068         PR tree-optimization/36648
5069         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
5070         number of prolog iterations by step. Fix the comment.
5071
5072 2008-06-30  Richard Guenther  <rguenther@suse.de>
5073
5074         PR middle-end/36671
5075         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
5076         handle calls from ECF_MALLOC functions.
5077         (handle_pure_call): ECF_MALLOC functions do not return
5078         call-used memory.
5079         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
5080
5081 2008-06-29  Andreas Schwab  <schwab@suse.de>
5082
5083         * config/m68k/m68k.c (print_operand): Always print a float
5084         constant in hex.
5085         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
5086         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
5087         Remove macros.
5088
5089         * config/rs6000/x-linux64: Remove never used file.
5090
5091 2008-06-29  Richard Guenther  <rguenther@suse.de>
5092
5093         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
5094         prototype.
5095         (struct alias_info): Move ...
5096         * tree-ssa-alias.c: ... here.
5097         (update_alias_info): Declare.
5098         (compute_may_aliases): Call it.
5099         (update_alias_info): New function.
5100         * tree-ssa-structalias.c (update_alias_info): Move ...
5101         * tree-ssa-alias.c (update_alias_info_1): ... here.
5102         * tree-ssa-structalias.c (process_constraint_1): Remove
5103         unused from_call argument.  Rename to ...
5104         (process_constraint): ... this.  Delete old wrapper.
5105         (make_constraint_to): Adjust callers.
5106         (handle_const_call): Likewise.
5107         (handle_pure_call): Likewise.
5108         (init_base_vars): Likewise.
5109         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
5110         (find_func_aliases): We don't need structure copies for
5111         complex types.
5112         (make_constraint_from_anything): Remove.
5113         (create_variable_info_for): For globals make constraints
5114         from escaped, not from anything.
5115         (compute_points_to_sets): Do not call update_alias_info.
5116         (ipa_pta_execute): Use make_constraint_from.
5117
5118 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5119
5120         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
5121         (bitmap.o-warn, dominance.o-warn): New.
5122         * configure.ac (cxx_compat_warn): Delete.
5123         (loose_warn): Add -Wcast-qual and -Wc++-compat.
5124         * system.h: Remove #pragma diagnostic for -Wcast-qual and
5125         -Wc++-compat.
5126         * configure: Regenerate.
5127
5128         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
5129         warnings.
5130
5131 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5132
5133         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
5134         * df-scan.c (df_notes_rescan): Likewise.
5135         * ggc-page.c (set_page_table_entry): Likewise.
5136         * intl.c (gcc_gettext_width): Likewise.
5137         * varasm.c (get_unnamed_section, get_noswitch_section,
5138         get_section): Likewise.
5139
5140 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
5141
5142         * regrename.c (build_def_use): Don't copy RTX.
5143
5144 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
5145
5146         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
5147         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
5148         punctuation.  Use @ref instead of @xref.
5149         (Function Names): Remove stray @display/@end display.
5150         (C++ Attributes): Use @ref instead of @xref.
5151         (Deprecated Features): Fix punctuation around @xref.
5152         (Backwards Compatibility): Likewise.
5153         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
5154
5155 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
5156
5157         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
5158         constants for E500 double.
5159
5160 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5161
5162         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
5163         element type of const_vector.
5164
5165 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
5166
5167         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
5168         Remove FLAGS_REG clobber from expander pattern.
5169         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
5170         (anddi3, andsi3, andhi3, andqi3): Ditto.
5171         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
5172         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
5173         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
5174         (ashlsi3, ashlhi3, ashlqi3): Ditto.
5175         (ashrsi3, ashrhi3, ashrqi3): Ditto.
5176         (lshrsi3, lshrhi3, lshrqi3): Ditto.
5177         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
5178         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
5179
5180 2008-06-28  Richard Guenther  <rguenther@suse.de>
5181
5182         * tree-ssa-structalias.c (callused_id, var_callused,
5183         callused_tree): Add.
5184         (handle_pure_call): New function.
5185         (find_func_aliases): Call it.
5186         (find_what_p_points_to): Handle the call-used set.
5187         (clobber_what_escaped): Likewise.
5188         (compute_call_used_vars): New function.
5189         (init_base_vars): Init the call-used variable.
5190         (do_sd_constraint): Do not propagate the solution from CALLUSED
5191         but use CALLUSED as a placeholder.
5192         (solve_graph): Likewise.
5193         * tree-flow-inline.h (gimple_call_used_vars): New function.
5194         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
5195         (compute_call_used_vars): Declare.
5196         * tree-ssa-alias.c (set_initial_properties): Call
5197         compute_call_used_vars.
5198         (reset_alias_info): Clear call-used variables.
5199         (add_call_clobber_ops): Assert we are not called for const/pure
5200         functions.  Remove handling of them.
5201         (add_call_read_ops): Handle pure functions by adding the
5202         call-used set of variables as VUSEs.
5203         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
5204         (delete_tree_ssa): Free it.
5205         * tree-dfa.c (remove_referenced_var): Clear the var from the
5206         call-used bitmap.
5207
5208 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
5209
5210         * tree.c (build_varargs_function_type_list): New.
5211         (build_function_type_list_1): New.
5212         (build_function_type_list): Use build_function_type_list_1.
5213         * tree.h (build_varargs_function_type_list): New.
5214
5215 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5216
5217         PR target/34856
5218         * config/spu/spu.c (spu_builtin_splats): Do not generate
5219         invalid CONST_VECTOR expressions.
5220         (spu_expand_vector_init): Likewise.
5221
5222 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
5223
5224         * optabs.c (libfunc_decls): New variable.
5225         (libfunc_decl_hash, libfunc_decl_eq): New functions.
5226         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
5227         for the same function twice.
5228
5229 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
5230
5231         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
5232         ix86_expand_binary_operator directly.
5233         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
5234         for operand 2.
5235         (*ashrti3_1): Ditto.
5236         (*lshrti3_1): Ditto.
5237         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
5238         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
5239         using only one splitter.  Conditionaly execute splitter before or
5240         after peephole2 pass.
5241         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
5242         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
5243         Use only one alternative in asm template.
5244         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
5245         in asm template.
5246         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
5247         "J" operand constraint for operand 2.
5248         (*ashldi3_cconly_rex64): Ditto.
5249         (*ashrdi3_cmp_rex64): Ditto.
5250         (*ashrdi3_cconly_rex64): Ditto.
5251         (*lshrdi3_cmp_rex64): Ditto.
5252         (*lshrdi3_cconly_rex64): Ditto.
5253         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
5254         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
5255         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
5256         gen_x86_shrd_1.
5257
5258 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
5259
5260         * gimplify.c (omp_is_private): Don't return true if decl is not
5261         already private on #pragma omp for or #pragma omp parallel for.
5262
5263         PR debug/36617
5264         * tree-cfg.c (struct move_stmt_d): Replace block field with
5265         orig_block and new_block fields.
5266         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
5267         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
5268         (move_block_to_fn): Replace vars_map and new_label_map arguments
5269         with struct move_stmt_d pointer.
5270         (replace_block_vars_by_duplicates): New function.
5271         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
5272         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
5273         all subblocks of ORIG_BLOCK to the new function.  Call
5274         replace_block_vars_by_duplicates.
5275         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
5276         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
5277         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
5278         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
5279         (expand_omp): Temporarily set input_location to the location of
5280         region's controlling stmt.
5281         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
5282         BIND_EXPR, push ctx->block_vars and gimplification vars into
5283         the BIND_EXPR and its block's BLOCK_VARS instead of directly
5284         into dest function.
5285         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
5286         there are any BLOCK_VARS.
5287         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
5288         OMP_PARALLEL or OMP_TASK stmt.
5289         (lower_omp): Save and restore input_location around the lower_omp_1
5290         call.
5291
5292 2008-06-27  Richard Guenther  <rguenther@suse.de>
5293
5294         PR tree-optimization/36400
5295         PR tree-optimization/36373
5296         PR tree-optimization/36344
5297         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
5298         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
5299         (update_alias_info): Remove call clobbering code.
5300         (make_constraint_to): New helper function.
5301         (make_escape_constraint): Likewise.
5302         (handle_rhs_call): Use it on all pointer containing arguments.
5303         Also mark the static chain escaped.
5304         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
5305         instead of ANYTHING.
5306         (make_constraint_from): New helper split out from ...
5307         (make_constraint_from_anything): ... here.
5308         (find_func_aliases): Add constraints for escape sites.
5309         (intra_create_variable_infos): Make constraints from NONLOCAL
5310         for parameters.
5311         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
5312         as ANYTHING.
5313         (clobber_what_p_points_to): Remove.
5314         (clobber_what_escaped): New function.
5315         (init_base_vars): Init NONLOCAL and ESCAPED.
5316         (do_sd_constraint): Do not propagate the solution from ESCAPED
5317         but use ESCAPED as a placeholder.
5318         (solve_graph): Likewise.
5319         * tree-flow.h (clobber_what_p_points_to): Remove.
5320         (clobber_what_escaped): Declare.
5321         * tree-ssa-alias.c (set_initial_properties): Call it.
5322         Remove code clobbering escaped pointers.
5323
5324 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
5325
5326         * function.c (allocate_struct_function): Only allocate a unique
5327         funcdef_no if the decl is nonzero.
5328
5329 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
5330
5331         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
5332         * config/mips/mips.c (mips_split_const_insns): New function.
5333         * config/mips/mips.md (move_type): New attribute.
5334         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
5335         (dword_mode): New attribute.
5336         (type): Avoid long line.  Map "move_type"s to "type"s,
5337         choosing "multi" for doubleword moves if appropriate.
5338         Swap MTC/MFC comments to match their declaration order.
5339         (extended_mips16): Default to "yes" if "move_type" is "sll0",
5340         "type" is "branch" or "jal" is "direct".
5341         (length): Handle "extended_mips16" first.  Make the default
5342         "0" for "ghost" instructions.  Set the length from "move_type".
5343         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
5344         of "type", with "sll0" for the register alternative.  Remove the
5345         "extended_mips16" attribute.
5346         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
5347         of "type", with "shift_shift" for the register alternative.
5348         Remove the "length" attribute.
5349         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
5350         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
5351         of "type", with "andi" for the register alternative.
5352         (*zero_extendqihi2): Likewise.
5353         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
5354         of "andi" instead of a "type" of "arith".
5355         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
5356         instead of "type".
5357         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
5358         (mov_<store>r, *mov<mode>_ra): Likewise.
5359         (extendsidi2): Use "move_type" instead of "type", with "move"
5360         for the register alternative.
5361         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
5362         of "type", with "signext" for the register alternative.
5363         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
5364         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
5365         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
5366         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
5367         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
5368         (unnamed branch insn): Likewise.
5369         (*movdi_gp32_fp64): Fold into...
5370         (*movdi_32bit): ...here.
5371         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
5372         (*movdf_hardfloat): ...this new pattern.
5373         (*movdf_softfloat): Remove redundant FPR alternatives.
5374         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
5375         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
5376         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
5377         the "move" attribute.
5378         (*movdi_32bit): Use "move_type" instead of "type" and remove the
5379         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
5380         and "store" for COP loads and stores.
5381         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
5382         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
5383         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
5384         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
5385         (*movtf_mips16, *movv2sf): Likewise.
5386         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
5387         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
5388         (mfhc1<mode>): Use "move_type" instead of "move".
5389         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
5390         (loadgp_blockage): Remove the "length" attribute.
5391         (blockage, set_got_version, update_got_version): Likewise.
5392         (call_internal): Remove the "extended_mips16" attribute.
5393         (call_value_internal, call_value_multiple_internal): Likewise.
5394         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
5395         instead of "move".
5396         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
5397         the "length" attribute.
5398
5399 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5400
5401         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
5402         -Wcast-qual warnings.
5403         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
5404         handle_pragma_pop_macro): Likewise.
5405         * collect2.c (resolve_lib_name): Likewise.
5406         * config/arc/arc.c (arc_init): Likewise.
5407         * config/arm/arm.c (neon_builtin_compare,
5408         locate_neon_builtin_icode): Likewise.
5409         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
5410         * config/bfin/bfin.c (bfin_init_machine_status,
5411         bfin_optimize_loop): Likewise.
5412         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
5413         * config/cris/cris.c (cris_init_expanders): Likewise.
5414         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
5415         * config/darwin.c (machopic_indirection_eq,
5416         machopic_indirection_name, machopic_output_indirection): Likewise.
5417         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
5418         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
5419         frv_optimize_membar): Likewise.
5420         * config/i386/cygwin.h (mingw_scan,
5421         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
5422         * config/i386/cygwin1.c (mingw_scan): Likewise.
5423         * config/i386/i386.c (machopic_output_stub): Likewise.
5424         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
5425         i386_pe_unique_section): Likewise.
5426         * config/ia64/ia64.c (ia64_init_machine_status,
5427         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
5428         Likewise.
5429         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
5430         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
5431         * config/m68k/m68k.c (m68k_handle_option,
5432         m68k_sched_md_init_global): Likewise.
5433         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
5434         mcore_unique_section): Likewise.
5435         * config/mips/mips.c (mips_block_move_straight,
5436         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
5437         Likewise.
5438         * config/mmix/mmix.c (mmix_init_machine_status,
5439         mmix_encode_section_info): Likewise.
5440         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
5441         * config/rs6000/rs6000.c (rs6000_init_machine_status,
5442         print_operand_address, output_toc, redefine_groups,
5443         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
5444         * config/s390/s390.c (s390_init_machine_status): Likewise.
5445         * config/score/score.c (score_block_move_straight,
5446         score_block_move_loop_body): Likewise.
5447         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
5448         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
5449         * emit-rtl.c (find_auto_inc): Likewise.
5450         * gcc.c (translate_options, process_command): Likewise.
5451         * reorg.c (dbr_schedule): Likewise.
5452         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
5453         * xcoffout.c (xcoffout_declare_function): Likewise.
5454
5455 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
5456
5457         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
5458         ipa-pta working again.
5459
5460 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
5461
5462         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
5463         genautomata.
5464
5465 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
5466
5467         * config.gcc (powerpc*-*-*): Add new core e500mc.
5468         * config/rs6000/e500mc.md: New file.
5469         * config/rs6000/rs6000.c (processor_costs): Add new costs for
5470         e500mc.
5471         (rs6000_override_options): Add e500mc case to
5472         processor_target_table. Altivec and Spe options not allowed
5473         with e500mc. Add isel instruction to e500mc by
5474         default. Initialize rs6000_cost for e500mc.
5475         (rs6000_issue_rate): Set issue rate for e500mc.
5476         * config/rs6000/rs6000.h (processor_type): Add
5477         PROCESSOR_PPCE500MC.
5478         (ASM_CPU_SPEC): Add e500mc.
5479         Set TARGET_ISEL to rs6000_isel.
5480         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
5481         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
5482         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
5483         Include e500mc.md.
5484         * doc/invoke.texi: Add e500mc to list of cpus.
5485
5486 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5487
5488         PR c/34867
5489         * c-lex.c (lex_charconst): Initialize unsignedp.
5490
5491 2008-06-27  Olivier Hainque  <hainque@adacore.com>
5492
5493         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
5494         documented assumptions.
5495
5496 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
5497
5498         * dwarf2out.c: Remove trailing white spaces.  Break long line
5499         in comments.
5500
5501 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
5502
5503         * libfuncs.h (LTI_synchronize): New libfunc_index.
5504         (synchronize_libfunc): Declare.
5505         * builtins.c (expand_builtin_synchronize): Consider using
5506         synchronize_libfunc before falling back on an asm blockage.
5507         * config/mips/mips.c: Include libfuncs.h
5508         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
5509
5510 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
5511
5512         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
5513         parameter.  Copy stack_reg to r11 where appropriate.
5514         (no_global_regs_above): Add gpr parameter.
5515         (rs6000_stack_info): Only add padding for SPE save area if we
5516         are saving SPE GPRs and CR.
5517         (saveres_routine_syms): New variable.
5518         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
5519         Define.
5520         (rs6000_savres_routine_sym): New function.
5521         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
5522         split out of...
5523         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
5524         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
5525         Tweak FPR out-of-line saving.
5526         (rs6000_make_savres_rtx): New function.
5527         (rs6000_use_multiple_p): New function.
5528         (rs6000_savres_strategy): New function.
5529         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
5530         out-of-line if appropriate.
5531         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
5532         if we are optimizing for size.
5533         (GP_SAVE_INLINE): Define.
5534         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
5535         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
5536         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
5537         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
5538         (*save_fpregs_<mode>): Add use of r11.
5539         (*restore_gpregs_<mode>): New insn.
5540         (*return_and_restore_gpregs_<mode>): New insn.
5541         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
5542         use r11.
5543         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
5544         (*restore_gpregs_spe): New insn.
5545         (*return_and_restore_gpregs_spe): New insn.
5546         * config/rs6000/predicates.md (save_world_operation): Fix check.
5547
5548 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
5549
5550         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
5551         this point, so assert that.
5552
5553 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
5554
5555         * cfganal.c: Include vec.h and vecprim.h.
5556         (compute_idf): Import from...
5557         * tree-into-ssa (compute_idf): ...here.
5558         * basic-block.h (compute_idf): Export.
5559
5560 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
5561
5562         * c-decl.c (merge_decls): Use !current_function_decl to check for
5563         extern declaration of C99 inline function being at file scope.
5564
5565 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
5566
5567         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
5568
5569 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5570
5571         * alias.c (record_alias_subset, init_alias_analysis): Fix
5572         -Wc++-compat and/or -Wcast-qual warnings.
5573         * attribs.c (lookup_attribute_spec): Likewise.
5574         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
5575         copy_bb, connect_traces,
5576         find_rarely_executed_basic_blocks_and_cr): Likewise.
5577         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
5578         note_btr_set, migrate_btr_defs): Likewise.
5579         * builtins.c (result_vector, expand_builtin_memcpy,
5580         expand_builtin_mempcpy_args, expand_builtin_strncpy,
5581         builtin_memset_read_str, expand_builtin_printf,
5582         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
5583         Likewise.
5584         * caller-save.c (mark_set_regs): Likewise.
5585         * calls.c (expand_call, emit_library_call_value_1): Likewise.
5586         * cgraph.c (cgraph_edge): Likewise.
5587         * combine.c (likely_spilled_retval_1): Likewise.
5588         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
5589         htab_counts_entry_del, get_coverage_counts): Likewise.
5590         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
5591         new_cselib_val): Likewise.
5592         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
5593         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
5594         Likewise.
5595         * df-core.c (df_compact_blocks): Likewise.
5596         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
5597         * df-scan.c (df_grow_reg_info, df_ref_create,
5598         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
5599         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
5600         df_record_entry_block_defs, df_record_exit_block_uses,
5601         df_bb_verify): Likewise.
5602         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
5603         DF_REF_EXTRACT_MODE_CONST): New.
5604         * dominance.c (get_immediate_dominator, get_dominated_by,
5605         nearest_common_dominator, root_of_dom_tree,
5606         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
5607         -Wc++-compat and/or -Wcast-qual warnings.
5608         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
5609         record_store, replace_read, check_mem_read_rtx, scan_insn,
5610         dse_step1, dse_record_singleton_alias_set): Likewise.
5611         * dwarf2asm.c (dw2_force_const_mem): Likewise.
5612
5613 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5614
5615         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
5616         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
5617         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
5618         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
5619         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
5620         add_ranges_num, add_ranges_by_labels, file_info_cmp,
5621         file_name_acquire, output_file_names, add_const_value_attribute,
5622         premark_used_types_helper, file_table_eq, file_table_hash,
5623         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
5624         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
5625         -Wcast-qual warnings.
5626         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
5627         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
5628         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
5629         gen_reg_rtx, start_sequence, init_emit): Likewise.
5630         * et-forest.c (et_new_occ, et_new_tree): Likewise.
5631         * except.c (init_eh_for_function, gen_eh_region,
5632         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
5633         arh_to_landing_pad, arh_to_label, add_action_record,
5634         add_call_site, switch_to_exception_section): Likewise.
5635         * expmed.c (synth_mult): Likewise.
5636         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
5637         store_expr): Likewise.
5638         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
5639         Likewise.
5640         * function.c (assign_stack_temp_for_type,
5641         allocate_struct_function, match_asm_constraints_1): Likewise.
5642         * gcov-io.c (gcov_allocate): Likewise.
5643         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
5644         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
5645         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
5646         record_one_set, insert_expr_in_table, insert_set_in_table,
5647         dump_hash_table, compute_hash_table_work, alloc_hash_table,
5648         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
5649         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
5650         -Wcast-qual warnings.
5651
5652 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5653
5654         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
5655         -Wcast-qual warnings.
5656         * gcc.c (process_command): Likewise.
5657         * genattrtab.c (oballoc): Use XOBNEW.
5658         (oballocvec): Define.
5659         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
5660         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
5661         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
5662         -Wc++-compat and/or -Wcast-qual warnings.
5663         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
5664         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
5665         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
5666         gen_presence_absence_set, gen_automaton, gen_regexp_el,
5667         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
5668         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
5669         add_excls, process_presence_absence_names,
5670         process_presence_absence_patterns, add_presence_absence,
5671         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
5672         get_free_state, add_arc, get_free_automata_list_el,
5673         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
5674         transform_3, cache_presence, create_ainsns, create_automata,
5675         create_state_ainsn_table, dfa_insn_code_enlarge,
5676         output_trans_func, output_min_issue_delay_func,
5677         output_dead_lock_func, output_reset_func,
5678         output_get_cpu_unit_code_func, output_dfa_start_func,
5679         expand_automata): Likewise.
5680         * genextract.c (gen_insn): Likewise.
5681         * gengtype-lex.l: Likewise.
5682         * gengtype.c (read_input_list, adjust_field_type,
5683         process_gc_options): Likewise.
5684         * genoutput.c (note_constraint): Likewise.
5685         * genpreds.c (mangle, add_constraint): Likewise.
5686         * genrecog.c (process_define_predicate, new_decision,
5687         add_to_sequence): Likewise.
5688         * gensupport.c (record_insn_name): Likewise.
5689
5690 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5691
5692         * config/i386/driver-i386.c (detect_caches_amd,
5693         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
5694         and/or -Wcast-qual warnings.
5695         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
5696         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
5697         gt_pch_save): Likewise.
5698         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
5699         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
5700         * global.c (compute_regsets): Likewise.
5701         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
5702         finish_graph_dump_file): Likewise.
5703         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
5704         unlink_bb_notes): Likewise.
5705         * integrate.c (get_hard_reg_initial_val): Likewise.
5706         * ipa-prop.c (ipa_push_func_to_list): Likewise.
5707         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
5708         * local-alloc.c (update_equiv_regs): Likewise.
5709         * loop-invariant.c (check_invariant_table_size,
5710         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
5711         Likewise.
5712         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
5713         altered_reg_used, mark_altered): Likewise.
5714         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
5715         insert_var_expansion_initialization,
5716         combine_var_copies_in_loop_exit, apply_opt_in_copies,
5717         release_var_copies): Likewise.
5718         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
5719         analyze_matrix_decl, add_allocation_site, analyze_transpose,
5720         analyze_accesses_for_phi_node, check_var_notmodified_p,
5721         check_allocation_function, find_sites_in_func,
5722         record_all_accesses_in_func, transform_access_sites,
5723         transform_allocation_sites): Likewise.
5724         * omp-low.c (new_omp_region, create_omp_child_function_name,
5725         check_omp_nesting_restrictions, check_combined_parallel,
5726         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
5727         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
5728         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
5729         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
5730         Likewise.
5731         * opts-common.c (prune_options): Likewise.
5732         * opts.c (add_input_filename, print_filtered_help,
5733         get_option_state): Likewise.
5734         * params.c (add_params): Likewise.
5735         * passes.c (set_pass_for_id, next_pass_1,
5736         do_per_function_toporder, pass_fini_dump_file): Likewise.
5737         * postreload.c (reload_cse_simplify_operands): Likewise.
5738         * predict.c (tree_predicted_by_p, tree_predict_edge,
5739         clear_bb_predictions, combine_predictions_for_bb): Likewise.
5740
5741 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5742
5743         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
5744         warnings.
5745         * recog.c (check_asm_operands, validate_change_1): Likewise.
5746         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
5747         subst_asm_stack_regs): Likewise.
5748         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
5749         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
5750         * regmove.c (reg_is_remote_constant_p): Likewise.
5751         * regrename.c (regrename_optimize, scan_rtx_reg,
5752         kill_clobbered_value, kill_set_value, kill_autoinc_value):
5753         Likewise.
5754         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
5755         regstat_compute_calls_crossed): Likewise.
5756         * reload1.c (init_reload, new_insn_chain,
5757         has_nonexceptional_receiver, reload, copy_reloads,
5758         calculate_needs_all_insns, init_elim_table): Likewise.
5759         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
5760         * rtl.c (shallow_copy_rtx_stat): Likewise.
5761         * rtlanal.c (parms_set): Likewise.
5762         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
5763         sbitmap_resize, sbitmap_vector_alloc): Likewise.
5764         * sched-ebb.c (earliest_block_with_similiar_load,
5765         add_deps_for_risky_insns): Likewise.
5766         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
5767         schedule_region): Likewise.
5768         * see.c (eq_descriptor_pre_extension,
5769         hash_descriptor_pre_extension, hash_del_pre_extension,
5770         eq_descriptor_properties, hash_descriptor_properties,
5771         hash_del_properties, see_seek_pre_extension_expr,
5772         see_initialize_data_structures, see_print_register_properties,
5773         see_print_pre_extension_expr, see_delete_merged_def_extension,
5774         see_delete_unmerged_def_extension, see_emit_use_extension,
5775         see_pre_delete_extension, see_map_extension, see_commit_changes,
5776         see_analyze_merged_def_local_prop,
5777         see_analyze_merged_def_local_prop,
5778         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
5779         see_set_prop_merged_def, see_set_prop_unmerged_def,
5780         see_set_prop_unmerged_use, see_print_one_extension,
5781         see_merge_one_use_extension, see_merge_one_def_extension,
5782         see_store_reference_and_extension, see_update_uses_relevancy,
5783         see_update_defs_relevancy): Likewise.
5784         * statistics.c (hash_statistics_hash, hash_statistics_eq,
5785         hash_statistics_free, curr_statistics_hash): Likewise.
5786         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
5787         expand_asm_operands, expand_return, case_bit_test_cmp,
5788         expand_case): Likewise.
5789         * stor-layout.c (start_record_layout): Likewise.
5790         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
5791         gt_pch_save_stringpool): Likewise.
5792         * tree-data-ref.c (hash_stmt_vertex_info,
5793         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
5794         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
5795
5796 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
5797
5798         PR target/36627
5799         * config/i386/i386.md : Change constraints of HImode and QImode
5800         immediate operands from "i" to "n".  Change SImode "ni" constraint to
5801         "i" and SImode "rmi" constraint to "g".  Remove all constraints
5802         from const0_operand and const1_operand predicated operands.
5803         (i): Change QImode and HImode attribute from "i" to "n".
5804         (*subqi_2): Change HImode operands to QImode.
5805         (*subqi_3): Ditto.
5806
5807 2008-06-25  Olivier Hainque  <hainque@adacore.com>
5808
5809         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
5810         sed substitutions.
5811
5812 2008-06-25  Richard Guenther  <rguenther@suse.de>
5813
5814         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
5815         not overflow the result type.
5816
5817 2008-06-25  Richard Guenther  <rguenther@suse.de>
5818
5819         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
5820         (vn_lookup): Likewise.
5821
5822 2008-06-25  Richard Guenther  <rguenther@suse.de>
5823
5824         PR tree-optimization/35518
5825         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
5826         * tree-sra.c (instantiate_element): Use fold_build3 to build
5827         BIT_FIELD_REFs.
5828         (try_instantiate_multiple_fields): Likewise.
5829
5830 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5831
5832         * config/rs6000/rs6000.md: Change all string instruction's clobber to
5833         be early clobbers.
5834
5835 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5836
5837         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
5838         use_backchain_to_restore_sp to true
5839         if the offset of the link register save area would go over the 32k - 1
5840         offset limit of the load
5841         instructions.
5842
5843 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
5844
5845         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
5846         anchor for the type-punning blurb.  Cross-reference "Structures
5847         unions enumerations and bit-fields implementation".  Provide a
5848         cast-through-pointer example.  Make final sentence self-contained.
5849         * doc/implement-c.texi (Structures unions enumerations and
5850         bit-fields implementation): Cross-reference the type-punning blurb
5851         in the -fstrict-aliasing documentation.
5852
5853 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5854
5855         PR middle-end/36594
5856         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
5857         the memory instead of the memory itself for the save area.
5858
5859 2008-06-24  Olivier Hainque  <hainque@adacore.com>
5860             Nicolas Roche  <roche@adacore.com>
5861
5862         * gengtype.c (srcdir_len): size_t instead of int.
5863         (get_file_realbasename): New function.  For F a filename, the real
5864         basename of F, with all the path components stripped.
5865         (get_file_srcdir_relative_path): New function.  For F a filename, the
5866         relative path to F from $(srcdir).
5867         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
5868         get_file_realbasename.  Adjust the head comment.
5869         (get_prefix_langdir_index): New function. For F a filename, return the
5870         lang_dir_names[] relative index of the language directory that is
5871         a prefix in F.
5872         (get_file_langdir): For F a filename, return the name of the language
5873         directory where F is located.
5874         (get_file_gtfilename): New function. The gt- output file name for an
5875         input filename F.
5876         (get_output_file_with_visibility): Replace in-line computations with
5877         uses of get_file_gtfilename and get_prefix_langdir_index.
5878         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
5879
5880 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
5881
5882         PR tree-optimization/36504
5883         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
5884         references without base address.
5885
5886 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
5887
5888         PR middle-end/36584
5889         * calls.c (expand_call): Increase alignment for recursive functions.
5890
5891 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
5892
5893         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
5894         (TARGET_FUNCTION_VALUE): New define.
5895         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
5896         * config/avr/avr.h (FUNCTION_VALUE): Remove.
5897
5898 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
5899
5900         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
5901         (fmod<mode>3): Ditto.
5902         (remainderxf3): Ditto.
5903         (remainder<mode>3): Ditto.
5904
5905 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
5906
5907         PR target/36533
5908         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
5909         REG is a hard register.
5910
5911         PR tree-optimization/36508
5912         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
5913         499, don't check it at all in release compilers.
5914
5915 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
5916
5917         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
5918         together with SSE_TARGET_MATH to disable insn pattern.
5919         (*fop_<MODEF:mode>_2_i387): Ditto.
5920         (*fop_<MODEF:mode>_3_i387): Ditto.
5921
5922 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
5923
5924         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
5925
5926 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5927
5928         PR middle-end/34906
5929         * gimplify.c (gimplify_asm_expr): Check the return code of
5930         parse_output_constraint call, set function return and is_inout
5931         value if it failed.
5932
5933 2008-06-22  Ian Lance Taylor  <iant@google.com>
5934
5935         * c-lex.c (narrowest_unsigned_type): Change itk to int.
5936         (narrowest_signed_type): Likewise.
5937         * c-typeck.c (c_common_type): Change local variable mclass to enum
5938         mode_class, twice.
5939         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
5940         tcc_comparison, not the tree code itself.
5941         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
5942         (c_expand_expr): Cast modifier to enum expand_modifier.
5943         * c-common.h (C_RID_CODE): Add casts.
5944         (C_SET_RID_CODE): Define.
5945         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
5946         (c_lex_one_token): Add cast to avoid warning.
5947         (c_parser_objc_type_name): Rename local typename to type_name.
5948         (check_no_duplicate_clause): Change code parameter to enum
5949         omp_clause_code.
5950         (c_parser_omp_var_list_parens): Change kind parameter to enum
5951         omp_clause_code.
5952         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
5953         c_parser_omp_list_var_parens.
5954         (c_parser_omp_threadprivate): Likewise.
5955         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
5956         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
5957         * c-format.c (NO_FMT): Define.
5958         (printf_length_specs): Use NO_FMT.
5959         (asm_fprintf_length_specs): Likewise.
5960         (gcc_diag_length_specs): Likewise.
5961         (scanf_length_specs): Likewise.
5962         (strfmon_length_specs): Likewise.
5963         (gcc_gfc_length_specs): Likewise.
5964         (printf_flag_specs): Change 0 to STD_C89.
5965         (asm_fprintf_flag_specs): Likewise.
5966         (gcc_diag_flag_specs): Likewise.
5967         (gcc_cxxdiag_flag_specs): Likewise.
5968         (scanf_flag_specs): Likewise.
5969         (strftime_flag_specs): Likewise.
5970         (strfmon_flag_specs): Likewise.
5971         (print_char_table): Likewise.
5972         (asm_fprintf_char_table): Likewise.
5973         (gcc_diag_char_table): Likewise.
5974         (gcc_tdiag_char_table): Likewise.
5975         (gcc_cdiag_char_table): Likewise.
5976         (gcc_cxxdiag_char_table): Likewise.
5977         (gcc_gfc_char_table): Likewise.
5978         (scan_char_table): Likewise.
5979         (time_char_table): Likewis.
5980         (monetary_char_table): Likewise.
5981         * c-format.h (BADLEN): Likewise.
5982
5983 2008-06-21  Ian Lance Taylor  <iant@google.com>
5984
5985         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
5986         Define END_OF_BASE_TREE_CODES around inclusion.
5987         * tree.c (tree_code_type): New global array.
5988         (tree_code_length, tree_code_name): Likewise.
5989         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
5990         $(lang_tree_files).
5991         (all-tree.def, s-alltree): New targets.
5992         (gencheck.h, s-gencheck): Remove.
5993         (tree.o): Depend upon all-tree.def.
5994         (build/gencheck.o): Remove gencheck.h dependency.
5995         (mostlyclean): Don't remove gencheck.h.
5996         * c-common.h (enum c_tree_code): Remove.
5997         * c-lang.c (tree_code_type): Remove.
5998         (tree_code_length, tree_code_name): Remove.
5999         * gencheck.c (tree_codes): Include all-tree.def, rather than
6000         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
6001         after it is used.
6002         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
6003         than tree.def.
6004         * cp/cp-tree.h (enum cplus_tree_code): Remove.
6005         (operator_name_info): Size to MAX_TREE_CODES.
6006         (assignment_operator_name_info): Likewise.
6007         * cp/cp-lang.c (tree_code_type): Remove.
6008         (tree_code_length, tree_code_name): Remove.
6009         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
6010         (assignment_operator_name_info): Likewise.
6011         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
6012         MAX_TREE_CODES.
6013         * cp/mangle.c (write_expression): Likewise.
6014         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
6015         * fortran/f95-lang.c (tree_code_type): Remove.
6016         (tree_code_length, tree_code_name): Remove.
6017         * java/java-tree.h (enum java_tree_code): Remove.
6018         * java/lang.c (tree_code_type): Remove.
6019         (tree_code_length, tree_code_name): Remove.
6020         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
6021         * objc/objc-act.h (enum objc_tree_code): Remove.
6022         * objc/objc-lang.c (tree_code_type): Remove.
6023         (tree_code_length, tree_code_name): Remove.
6024         * objcp/objcp-lang.c (tree_code_type): Remove.
6025         (tree_code_length, tree_code_name): Remove.
6026         * ada/ada-tree.h (enum gnat_tree_code): Remove.
6027         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
6028         * ada/misc.c (tree_code_type): Remove.
6029         (tree_code_length, tree_code_name): Remove.
6030
6031 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
6032
6033         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
6034         the grand_bitmap_obstack.
6035
6036 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6037
6038         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
6039         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
6040         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
6041         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
6042         move_stmt_r, new_label_mapper): Likewise.
6043         * tree-complex.c (cvc_lookup): Likewise.
6044         * tree-dfa.c (create_function_ann): Likewise.
6045         * tree-dump.c (dump_register): Likewise.
6046         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
6047         find_phi_replacement_condition): Likewise.
6048         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
6049         tree_function_versioning): Likewise.
6050         * tree-into-ssa.c (cmp_dfsnum): Likewise.
6051         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
6052         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
6053         get_nonlocal_debug_decl, convert_nonlocal_reference,
6054         convert_nonlocal_omp_clauses, get_local_debug_decl,
6055         convert_local_reference, convert_local_omp_clauses,
6056         convert_nl_goto_reference, convert_nl_goto_receiver,
6057         convert_tramp_reference, convert_call_expr): Likewise.
6058         * tree-outof-ssa.c (contains_tree_r): Likewise.
6059         * tree-parloops.c (reduction_phi, initialize_reductions,
6060         eliminate_local_variables_1, add_field_for_reduction,
6061         add_field_for_name, create_phi_for_local_result,
6062         create_call_for_reduction_1, create_loads_for_reductions,
6063         create_stores_for_reduction, create_loads_and_stores_for_name):
6064         Likewise.
6065         * tree-phinodes.c (allocate_phi_node): Likewise.
6066         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
6067         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
6068         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
6069         * tree-ssa-coalesce.c (compare_pairs): Likewise.
6070         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
6071         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
6072         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
6073         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
6074         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
6075         vn_nary_op_insert): Likewise.
6076         * tree-ssa.c (redirect_edge_var_map_add,
6077         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
6078         * tree-vectorizer.c (vectorize_loops): Likewise.
6079         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
6080         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
6081         tree_cons_stat, build1_stat, build_variant_type_copy,
6082         decl_init_priority_lookup, decl_fini_priority_lookup,
6083         decl_priority_info, decl_restrict_base_lookup,
6084         decl_restrict_base_insert, decl_debug_expr_lookup,
6085         decl_debug_expr_insert, decl_value_expr_lookup,
6086         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
6087         type_hash_add, get_file_function_name, tree_check_failed,
6088         tree_not_check_failed, tree_range_check_failed,
6089         omp_clause_range_check_failed, build_omp_clause,
6090         build_vl_exp_stat): Likewise.
6091         * value-prof.c (gimple_histogram_value,
6092         gimple_duplicate_stmt_histograms): Likewise.
6093         * var-tracking.c (attrs_list_insert, attrs_list_copy,
6094         unshare_variable, variable_union_info_cmp_pos, variable_union,
6095         dataflow_set_different_1, dataflow_set_different_2,
6096         vt_find_locations, variable_was_changed, set_variable_part,
6097         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
6098         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
6099         section_entry_hash, object_block_entry_eq,
6100         object_block_entry_hash, create_block_symbol,
6101         initialize_cold_section_name, default_function_rodata_section,
6102         strip_reg_name, set_user_assembler_name, const_desc_eq,
6103         build_constant_desc, output_constant_def, lookup_constant_def,
6104         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
6105         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
6106         default_internal_label): Likewise.
6107         * varray.c (varray_init, varray_grow): Likewise.
6108         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
6109
6110 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
6111
6112         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
6113         operators for "test" insn.  Macroize insn using SWI mode macro.
6114         (*jcc_fused_2): Ditto.
6115         (*jcc_fused_3): Macroize insn using SWI mode macro.
6116         (*jcc_fused_4): Ditto.
6117
6118 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
6119
6120         * tree-ssa-pre.c: Fix typo in comment.
6121         (init_antic, fini_antic): Add explicit funtions for
6122         initializing and deinitializing ANTIC and AVAIL sets.
6123         (create_expression_by_pieces): Fix typo in comment.
6124         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
6125         (execute_pre): Eventually dump details about ANTIC_IN.
6126
6127 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6128
6129         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
6130         * gcc.c (translate_options, init_spec, store_arg, read_specs,
6131         add_to_obstack, file_at_path, find_a_file, execute,
6132         add_preprocessor_option, add_assembler_option, add_linker_option,
6133         process_command, insert_wrapper, do_option_spec, do_self_spec,
6134         spec_path, do_spec_1, is_directory, main, used_arg,
6135         getenv_spec_function): Likewise.
6136         * tlink.c (symbol_hash_lookup, file_hash_lookup,
6137         demangled_hash_lookup, symbol_push, file_push, frob_extension):
6138         Likewise.
6139
6140 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
6141
6142         * doc/rtl.texi: Updated subreg section.
6143
6144 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
6145
6146         PR c++/36523
6147         * cgraphunit.c (cgraph_process_new_functions): Don't clear
6148         node->needed and node->reachable.
6149         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
6150         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
6151         (expand_task_call): Don't call expand_task_copyfn.
6152         (expand_task_copyfn): Renamed to...
6153         (finalize_task_copyfn): ... this.
6154
6155 2008-06-19  Jan Hubicka  <jh@suse.cz>
6156
6157         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
6158         clobbering framepointer.
6159
6160 2008-06-19  Jan Hubicka  <jh@suse.cz>
6161
6162         * tree-optimize.c (execute_early_local_optimizations): Set
6163         cgraph_state only at first invocation.
6164
6165 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6166
6167         * system.h (-Wc++-compat): Activate as a warning, no an error.
6168
6169 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
6170
6171         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
6172         instead of "#" in insn asm template.
6173         (*jcc_fused_2): Ditto.
6174
6175 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
6176
6177         * config/i386/i386.h (ix86_tune_indices)
6178         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
6179         (TARGET_FUSE_CMP_AND_BRANCH): New define.
6180         * config/i386/i386.md (*jcc_fused_1): New insn pattern
6181         (*jcc_fused_2): Ditto.
6182         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
6183         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
6184         (print operand): Handle 'E' and 'e' code.
6185
6186 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
6187
6188         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
6189         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
6190         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
6191
6192 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
6193
6194         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
6195         node->decl.
6196         (cgraph_expand_function): Use local copy of decl.
6197         (cgraph_expand_all_functions): Remove redundant initialization of
6198         order_pos.
6199         (cgraph_optimize): Reword internal_error message.
6200
6201 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
6202
6203         * arm-protos.h (arm_return_in_memory): Remove public
6204         arm_return_in_memory() prototype.
6205         * arm.c (arm_return_in_memory): Add static prototype, add target
6206         hook macro, change definition and comments.
6207         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
6208
6209 2008-06-19  Ben Elliston  <bje@au.ibm.com>
6210
6211         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
6212         real.c: Remove references to IEEE 754R.
6213         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
6214         * doc/libgcc.texi (Decimal float library routines): Likewise.
6215
6216 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6217
6218         * targhooks.h (struct gcc_target): New member unwind_word_mode.
6219         (default_unwind_word_mode): Add prototype.
6220         * targhooks.c (default_unwind_word_mode): New function.
6221         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
6222         instead of word_mode.
6223         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
6224         (TARGET_INITIALIZER): Use it.
6225
6226         * c-common.c (handle_mode_attribute): Support "unwind_word"
6227         mode attribute.
6228         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
6229
6230         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
6231         word_mode to access SjLj_Function_Context member "data".
6232         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
6233         conversion from targetm.eh_return_filter_mode () to
6234         targetm.unwind_word_mode () if they differ.
6235
6236         * builtin-types.def (BT_UNWINDWORD): New primitive type.
6237         (BT_FN_UNWINDWORD_PTR): New function type.
6238         (BT_FN_WORD_PTR): Remove.
6239         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
6240         * except.c (expand_builtin_extend_pointer): Convert pointer to
6241         targetm.unwind_word_mode () instead of word_mode.
6242
6243         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
6244         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
6245         (spu_unwind_word_mode): New function.
6246         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
6247         (TARGET_UNWIND_WORD_MODE): Define.
6248         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
6249
6250 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6251
6252         * config/spu/spu.c (reg_align): Remove.
6253         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
6254         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
6255         (spu_split_store): Likewise.
6256
6257 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
6258
6259         * gcc/tree-vn.c: Fix typo in comment.
6260
6261 2008-06-18  Jan Hubicka  <jh@suse.cz>
6262
6263         * cgraphunit.c (cgraph_optimize): Output debug info when doing
6264         toplevel reorder too.
6265
6266 2008-06-18  Jan Hubicka  <jh@suse.cz>
6267
6268         * c-opts.c (c_common_post_options): PCH is not compatible with
6269         no-unit-at-a-time.
6270         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
6271         -fno-toplevel-reorder by default now.
6272
6273 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6274
6275         PR documentation/30739
6276         * doc/install.texi (Prerequisites): Document dependency on awk.
6277
6278 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
6279             Ian Lance Taylor  <iant@google.com>
6280
6281         PR rtl-optimization/35604
6282         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
6283         only want to change jump destinations, not eventual label comparisons.
6284
6285 2008-06-16  Jan Hubicka  <jh@suse.cz>
6286
6287         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
6288         syntax errors.
6289         (cgraph_analyze_function): Likewise.
6290
6291 2008-06-16  Jan Hubicka  <jh@suse.cz>
6292
6293         * cgraph.h (cgraph_mark_if_needed): New function.
6294         * cgraphunit.c (cgraph_mark_if_needed): New function.
6295         * c-decl.c (duplicate_decl): Use it.
6296
6297 2008-06-16  Jan Hubicka  <jh@suse.cz>
6298
6299         * cgraph.c (cgraph_add_new_function): When in expansion state, do
6300         lowering.
6301
6302 2008-06-16  Jan Hubicka  <jh@suse.cz>
6303
6304         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
6305
6306 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
6307             Kazu Hirata  <kazu@codesourcery.com>
6308             Maxim Kuvyrkov  <maxim@codesourcery.com
6309
6310         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
6311         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
6312         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
6313         EXTRA_SPEC_FUNCTIONS.
6314         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
6315         (DRIVER_SELF_SPECS): Adjust.
6316         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
6317         * config/mips/st.h, config/mips/t-st: New.
6318         * config/mips/driver-native.c, config/mips/x-native: New.
6319         * doc/invoke.texi (MIPS): Document 'native' value for -march and
6320         -mtune options.
6321
6322 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
6323
6324         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
6325         from it.
6326         (ISA_HAS_FP_CONDMOVE): New macro.
6327         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
6328         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
6329         (ISA_HAS_NMADD3_NMSUB3): New macro.
6330         * config/mips/mips.c (mips_rtx_costs): Update.
6331         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
6332         compiling for ST Loongson 2E/2F.
6333         (madd<mode>): Rename to madd4<mode>.  Update.
6334         (madd3<mode>): New pattern.
6335         (msub<mode>): Rename to msub4<mode>.  Update.
6336         (msub3<mode>): New pattern.
6337         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
6338         (nmadd3<mode>): New pattern.
6339         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
6340         (nmadd3<mode>_fastmath): New pattern.
6341         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
6342         (nmsub3<mode>): New pattern.
6343         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
6344         (nmsub3<mode>_fastmath): New pattern.
6345         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
6346
6347 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
6348
6349         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
6350         (DF_REF_INSN_INFO): New.
6351         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
6352         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
6353         with a NULL DF_REF_INSN_INFO.
6354         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
6355         DF_INSN_SET.
6356         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
6357         DF_INSN_INFO_EQ_USES): New.
6358         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
6359         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
6360         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
6361         * df-core.c: Update comment for above changes.
6362         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
6363         DF_INSN_UID_* macros.
6364         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
6365         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
6366         insn rtx.  Update all callers.
6367         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
6368         df_ref_create_structure, df_insn_refs_collect): Likewise.
6369         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
6370         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
6371         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
6372         macros to access the insn refs.
6373         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
6374         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
6375         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
6376         for accessing the refs.
6377         (try_fwprop_subst): Likewise.
6378         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
6379         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
6380         for accessing the refs.
6381         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
6382         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
6383         to look at the insn refs.
6384         (record_uses): Likewise.
6385         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
6386         function anymore.
6387         (mark_artificial_uses): Don't mark_insn for artificial refs.
6388         (mark_reg_rependencies): Likewise.
6389
6390         * doc/rtl.texi: Remove documentation of ADDRESSOF.
6391
6392 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6393
6394         * configure: Regenerate.
6395
6396 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
6397
6398         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
6399         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6400         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6401
6402 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
6403
6404         * config/avr/avr.c (avr_mcu_t): Add attiny167.
6405         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6406         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6407
6408 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
6409
6410         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
6411         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6412         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6413
6414 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
6415
6416         * tree-ssa-sccvn.c: Fix format of comments.
6417
6418 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
6419
6420         * cgraph.c: Remove unneeded forward declarations of eq_node()
6421         and hash_node().
6422
6423 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
6424
6425         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
6426         REG_RETVAL notes.
6427         (see_update_relevancy): Likewise.
6428         * fwprop.c (try_fwprop_subst): Likewise.
6429         * rtlanal.c (noop_move_p): Likewise.
6430         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
6431         notes to non-existing libcall blocks.
6432         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
6433         Remove orig_set.
6434         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
6435         (dead_libcall_p): Remove.
6436         (delete_trivially_dead_insns): Don't use it.
6437         * web.c (union_defs): Remove comment about keeping nops.
6438         * gcse.c (hash_scan_insn): Don't take libcall pointers.
6439         (compute_hash_table_work): Don't track libcall notes.
6440         (do_local_cprop): Don't take libcall pointers.  Don't update
6441         libcall notes.
6442         (adjust_libcall_notes): Deleted.
6443         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
6444         ever have existed in the first place).
6445         (replace_store_insn): Don't try to remove libcall notes.
6446         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
6447         (resolve_reg_notes): Don't call them.
6448         (resolve_simple_move): Likewise.
6449         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
6450         Don't remove REG_RETVAL notes.
6451         * emit-rtl.c (try_split): Don't update libcall notes.
6452         (emit_copy_of_insn_after): Dito.
6453         * cselib.c (cselib_current_insn_in_libcall): Remove.
6454         (cselib_process_insn): Don't set/clear it.
6455         (new_elt_loc_list): Don't record it.
6456         (cselib_init): Don't initialize it.
6457         * cselib.c (struct elt_loc_list): Remove in_libcall field.
6458         * loop-invariant.c (find_invariant_insn): Don't look for libcall
6459         notes.
6460         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
6461         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
6462         (init_deps): Don't initialize it.
6463         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
6464         * combine.c (delete_noop_moves): Don't update libcall notes.
6465         (can_combine_p): Remove now pointless #if 0 block.
6466         (try_combine): Remove another obsolete #if 0 block.
6467         (distribute_notes): Don't distribute libcall notes.
6468         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
6469         * dce.c (libcall_dead_p): Remove.
6470         (delete_unmarked_insns): Don't handle libcall blocks.
6471         (preserve_libcall_for_dce): Remove.
6472         (prescan_insns_for_dce): Don't special-case libcall block insns.
6473         * reload1 (reload): Don't handle libcall notes.
6474         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
6475         documentation.
6476
6477 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
6478
6479         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
6480         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6481         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6482
6483 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
6484
6485         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
6486         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6487         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6488
6489 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6490
6491         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
6492
6493 2008-06-16  Ira Rosen  <irar@il.ibm.com>
6494
6495         PR tree-optimization/36493
6496         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
6497         the arguments list. Use VECTYPE to create vector pointer.
6498         (vectorizable_store): Fail if accesses through a pointer to vectype
6499         do not alias the original memory reference operands.
6500         Call vect_create_data_ref_ptr without the removed argument.
6501         (vectorizable_load): Likewise.
6502         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
6503         removed argument.
6504
6505 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
6506
6507         PR target/36336
6508         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
6509         reg_equiv_constant.
6510
6511 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
6512
6513         * config/mips/loongson2ef.md: New file.
6514         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
6515         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
6516         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
6517         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
6518         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
6519         and loongson_2f.
6520         (loongson2ef.md): New include.
6521         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
6522         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
6523         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
6524         (loongson_gt_<mode>, loongson_extract_halfword)
6525         (loongson_insert_halfword_0, loongson_insert_halfword_2)
6526         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
6527         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
6528         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
6529         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
6530         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
6531         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
6532         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
6533         (vec_interleave_low<mode>): Define type attribute.
6534         * config/mips/mips.c (mips_ls2): New static variable.
6535         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
6536         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
6537         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
6538         Implement target scheduling hooks.
6539         (mips_multipass_dfa_lookahead): Update to handle tuning for
6540         Loongson 2E/2F.
6541         (mips_sched_init): Initialize data for Loongson scheduling.
6542         (mips_ls2_variable_issue): New static function.
6543         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
6544         Add sanity check.
6545         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
6546         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
6547         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
6548         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
6549         Handle ST Loongson 2E/2F cores.
6550         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
6551
6552 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6553
6554         * omp-low.c (extract_omp_for_data): Fix comment typo.
6555         * c.opt: Fix typo.
6556
6557 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6558
6559         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
6560         FIXME note about gcc/config.guess.
6561         * doc/options.texi (Option file format): Remove non-ASCII bytes.
6562         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
6563         * doc/cppopts.texi: Likewise.
6564         * doc/extend.texi: Likewise.
6565         * doc/gcc.texi: Likewise.
6566         * doc/gccint.texi: Likewise.
6567         * doc/gcov.texi: Likewise.
6568         * doc/gty.texi: Likewise.
6569         * doc/hostconfig.texi: Likewise.
6570         * doc/install.texi: Likewise.
6571         * doc/invoke.texi: Likewise.
6572         * doc/loop.texi: Likewise.
6573         * doc/makefile.texi: Likewise.
6574         * doc/md.texi: Likewise.
6575         * doc/passes.texi: Likewise.
6576         * doc/tm.texi: Likewise.
6577         * doc/tree-ssa.texi: Likewise.
6578         * doc/trouble.texi: Likewise.
6579
6580 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
6581             Nathan Sidwell  <nathan@codesourcery.com>
6582             Maxim Kuvyrkov  <maxim@codesourcery.com>
6583             Richard Sandiford  <rdsandiford@googlemail.com>
6584
6585         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
6586         * config/mips/mips-protos.h (mips_expand_vector_init): New.
6587         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
6588         builtins.
6589         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
6590         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
6591         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
6592         V8QImode cases.
6593         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
6594         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
6595         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
6596         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
6597         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
6598         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
6599         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
6600         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
6601         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
6602         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
6603         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
6604         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
6605         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
6606         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
6607         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
6608         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
6609         (mips_builtins): Add Loongson builtins.
6610         (mips_loongson_2ef_bdesc): New.
6611         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
6612         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
6613         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
6614         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
6615         New.
6616         (mips_expand_vector_init): New.
6617         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
6618         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
6619         if appropriate.
6620         * config/mips/mips.md: Add unspec numbers for Loongson
6621         builtins.  Include loongson.md.
6622         (MOVE64): Include Loongson vector modes.
6623         (SPLITF): Include Loongson vector modes.
6624         (HALFMODE): Handle Loongson vector modes.
6625         * config/mips/loongson.md: New.
6626         * config/mips/loongson.h: New.
6627         * config.gcc: Add loongson.h header for mips*-*-* targets.
6628         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
6629
6630 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
6631
6632         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
6633         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
6634         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
6635         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
6636         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
6637         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
6638         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
6639         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
6640         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
6641         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
6642         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
6643         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
6644         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
6645         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
6646         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
6647         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
6648         Remove use_fixproto=yes.
6649         (ia64*-*-hpux*): Remove comment about using fixproto.
6650         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
6651
6652 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6653
6654         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
6655         library rebuilds.
6656         * configure: Regenerate.
6657
6658 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
6659
6660         PR middle-end/36520
6661         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
6662         before evaluating it.
6663
6664 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
6665
6666         PR c/36507
6667         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
6668         nested inline functions.
6669         (start_decl, start_function): Don't invert DECL_EXTERNAL
6670         for nested inline functions.
6671
6672 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
6673
6674         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
6675         splits that must be made for correctness.
6676
6677 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
6678
6679         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
6680         (AVAIL_NON_MIPS16): Likewise.
6681         (mips_builtin_description): Replace target_flags with a predicate.
6682         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
6683         (dspr2_32): New availability predicates.
6684         (MIPS_BUILTIN): New macro.
6685         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
6686         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
6687         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
6688         Replace the TARGET_FLAGS parameters with AVAIL parameters.
6689         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
6690         (mips_dsp_32only_bdesc): Merge into...
6691         (mips_builtins): ...this new array.
6692         (mips_bdesc_map, mips_bdesc_arrays): Delete.
6693         (mips_init_builtins): Update after above changes.
6694         (mips_expand_builtin_1): Merge into...
6695         (mips_expand_builtin): ...here and update after above changes.
6696
6697 2008-06-12  Paul Brook  <paul@codesourcery.com>
6698
6699         * longlong.h (__arm__): Define count_leading_zeros.
6700         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
6701         (clzsi2, clzdi2): New functions.
6702         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
6703         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
6704         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
6705         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
6706         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
6707         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
6708         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
6709         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
6710         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
6711         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
6712
6713 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
6714
6715         * config/m68k/m68k.c (m68k_tune_flags): New.
6716         (override_options): Compute m68k_tune_flags.
6717         (MULL_COST, MULW_COST): Update for various variants of CFV2.
6718         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
6719
6720 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
6721
6722         PR middle-end/36506
6723         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
6724
6725 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
6726
6727         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
6728         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
6729
6730 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
6731
6732         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
6733         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
6734
6735 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
6736
6737         PR middle-end/36506
6738         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
6739         reductions.
6740
6741 2008-06-12  Richard Guenther  <rguenther@suse.de>
6742
6743         PR tree-optimization/36345
6744         * tree-flow.h (struct ptr_info_def): Align escape_mask,
6745         add memory_tag_needed flag.
6746         (may_alias_p): Declare.
6747         * tree-ssa-alias.c (may_alias_p): Export.
6748         (set_initial_properties): Use memory_tag_needed flag.
6749         (update_reference_counts): Likewise.
6750         (reset_alias_info): Reset memory_tag_needed flag.
6751         (create_name_tags): Check memory_tag_needed flag.
6752         (dump_points_to_info_for): Dump it.
6753         * tree-ssa-structalias.c (struct variable_info): Remove
6754         directly_dereferenced flag.
6755         (new_var_info): Do not initialize it.
6756         (process_constraint_1): Do not set it.
6757         (update_alias_info): Set is_dereferenced flag.
6758         (set_uids_in_ptset): Use may_alias_p.
6759         (set_used_smts): Check memory_tag_needed flag.
6760         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
6761         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
6762         memory_tag_needed flag.
6763         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
6764         from broken design.
6765
6766 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
6767
6768         * config/i386/i386.c (ix86_compute_frame_layout): Disable
6769         red zone for w64 abi.
6770         (ix86_expand_prologue): Likewise.
6771         (ix86_force_to_memory): Likewise.
6772         (ix86_free_from_memory): Likewise.
6773
6774 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
6775
6776         PR target/36425
6777         * config/rs6000/rs6000.c (rs6000_override_options): Set
6778         rs6000_isel conditionally to the absence of comand line override.
6779         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
6780         Remove duplicate rs6000_isel setting.
6781         * config/rs6000/eabispe.h: Ditto.
6782
6783 2008-06-11  Richard Guenther  <rguenther@suse.de>
6784
6785         * alias.c (get_alias_set): Use the element alias-set for arrays.
6786         (record_component_aliases): For arrays and vectors do nothing.
6787         * c-common.c (strict_aliasing_warning): Handle the cases
6788         of alias set zero explicitly.
6789         * Makefile.in (dfp.o-warn): Add -Wno-error.
6790
6791 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
6792
6793         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
6794         tune_32 tune_64.
6795         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
6796         tune_32 tune_64 to supported_defaults.  Allow values not
6797         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
6798         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
6799         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
6800         with_cpu_64 to generic for 64-bit-supporting configurations, not
6801         with_cpu.  Remove FIXMEs.
6802         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
6803         --with-arch-64, --with-tune-32, --with-tune-64): Document.
6804         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
6805         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
6806         arch_32 and arch_64.
6807
6808 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
6809             Olivier Hainque  <hainque@adacore.com>
6810
6811         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
6812         Use DECL_SIZE_UNIT to retrieve the size of the field.
6813
6814 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
6815
6816         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
6817         with function calls after declarations.  Lay out
6818         neon_float_type_node before further use.
6819
6820 2008-06-11  Richard Guenther  <rguenther@suse.de>
6821
6822         * tree-flow.h (may_point_to_global_var): Declare.
6823         * tree-ssa-alias.c (may_point_to_global_var): New function.
6824         * tree-ssa-sink.c (is_hidden_global_store): Use it.
6825
6826 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
6827
6828         * configure.ac: Teach that fido supports .debug_line.
6829         * configure: Regenerate.
6830
6831 2008-06-10  Tom Tromey  <tromey@redhat.com>
6832
6833         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
6834         debug hook.
6835
6836 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
6837
6838         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
6839         (encode_decimal64, decode_decimal64, encode_decimal128,
6840         decode_decimal128): Reverse order of 32-bit parts of value if host
6841         and target endianness differ.
6842
6843 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
6844
6845         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
6846         Avoid division by 0.
6847         (tree_mod_pow2_value_transform): Likewise.
6848         (tree_ic_transform): Likewise.
6849         (tree_stringops_transform): Likewise.
6850         (tree_mod_subtract_transform): Likewise.
6851         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
6852         (copy_edges_for_bb): Likewise.
6853         (initialize_cfun): Likewise.
6854
6855 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
6856
6857         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
6858         nonmemory_operand. Add "N" operand constraint.
6859         (*btsi): Ditto.
6860         (*jcc_btdi_mask_rex64): New instruction and split pattern.
6861         (*jcc_btsi_mask): Ditto.
6862         (*jcc_btsi_mask_1): Ditto.
6863
6864 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
6865
6866         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
6867         TYPE_CANONICAL for copied element type.
6868
6869 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
6870
6871         PR target/36473
6872         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
6873         Add m_CORE2 and m_GENERIC.
6874         * config/i386/predicates.md (bt_comparison_operator): New predicate.
6875         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
6876         (*btsi): Ditto.
6877         (*jcc_btdi_rex64): New instruction and split pattern.
6878         (*jcc_btsi): Ditto.
6879         (*jcc_btsi_1): Ditto.
6880         (*btsq): Fix Intel asm dialect operand order.
6881         (*btrq): Ditto.
6882         (*btcq): Ditto.
6883
6884 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
6885
6886         PR middle-end/36447
6887         * simplify-rtx.c (simplify_subreg): Add check for shift count
6888         greater than size.
6889
6890 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
6891
6892         * doc/md.texi: Synchronize with later constraints.md change.
6893         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
6894         with a C implementation.
6895         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
6896         MFLO handling.
6897         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
6898         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
6899         when moving to and from MD_REGNUM.
6900         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
6901         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
6902         Handle byte and halfword moves.
6903         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
6904         separately.
6905         * config/mips/constraints.md (h): Turn into NO_REGS.
6906         (l, x): Update documentation.
6907         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
6908         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
6909         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
6910         (HILO): New mode iterator.
6911         (MOVE128): Add TI.
6912         (any_div): New code iterator.
6913         (u): Extend code attribute to div and udiv.
6914         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
6915         d_operand in the splitters.  Remove redundant CONST_INT checks.
6916         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
6917         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
6918         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
6919         accordingly, using normal moves instead of unspecs to move LO into
6920         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
6921         (<u>mulsidi3): Handle expansion in C code.
6922         (<u>mulsidi3_32bit_internal): Rename to...
6923         (<u>mulsidi3_32bit): ...this.
6924         (<u>mulsidi3_32bit_r4000): Fix insn separator.
6925         (*<u>mulsidi3_64bit): Rename to...
6926         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
6927         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
6928         to set LO and HI to the multiplication result.  Use a normal move
6929         for MFLO and an unspec for MFHI.
6930         (*<u>mulsidi3_64bit_parts): Replace with...
6931         (<u>mulsidi3_64bit_hilo): ...this new instruction.
6932         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
6933         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
6934         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
6935         instead of HI.  Split the instruction into a separate multiplication
6936         and MFHI if !TARGET_FIX_R4000.
6937         (<su>muldi3_highpart): Likewise.
6938         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
6939         and the "=h" clobber.
6940         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
6941         (<u>mulditi3): New expander.
6942         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
6943         (madsi): Remove "=h" clobber.
6944         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
6945         Force the modulus result to be a GPR and split the instruction into
6946         a division followed by an MFHI after reload.
6947         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
6948         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
6949         the MIPS16 HIGH define_split.
6950         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
6951         of acc<->gpr moves to "multi".
6952         (*movdi_64bit): Replace the single "x" alternative with
6953         alternatives for moving into and out of "a".
6954         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
6955         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
6956         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
6957         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
6958         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
6959         (movti): New expander.
6960         (*movti, *movti_mips16): New insns.
6961         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
6962         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
6963         (mthi<GPR:mode>_<HILO:mode>): Likewise.
6964         * config/mips/predicates.md (fpr_operand): Delete.
6965         (d_operand): New predicate.
6966
6967 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
6968
6969         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
6970         failure on some Bourne shells.
6971         (x86_64-*-*): Ditto.
6972
6973 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
6974
6975         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
6976
6977 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
6978
6979         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
6980         (sparc-sun-solaris2*): Likewise.
6981
6982 2008-06-09  Arnaud Charlet  <charlet@adacore.com
6983
6984         * doc/install.texi: Update requirements to build the Ada compiler.
6985
6986 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
6987
6988         * df-scan.c (struct df_scan_problem_data): Remove the
6989         mw_link_pool alloc pool.
6990         (df_scan_free_internal): Don't free it.
6991         (df_scan_alloc): Don't allocate it.
6992         * df.h (struct df_link): Update comment.
6993
6994 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
6995
6996         * except.h: Correct checks for when SJLJ exceptions must be used.
6997
6998 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6999
7000         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
7001         default.
7002
7003 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
7004
7005         PR tree-optimization/36218
7006         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
7007         configure for the build system.
7008         (BUILD_LDFLAGS): Define.
7009         * configure: Regenerate.
7010         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
7011
7012 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
7013
7014         PR target/36424
7015         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
7016         * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
7017         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
7018
7019 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
7020
7021         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
7022
7023 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
7024
7025         * config.gcc (Obsolete configurations): Remove list of
7026         configurations.
7027         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
7028         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
7029         targets matched by those patterns.
7030         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
7031         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
7032         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
7033         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
7034         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
7035         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
7036         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
7037         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
7038         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
7039         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
7040         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
7041         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
7042         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
7043         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
7044         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
7045         Make code for Solaris 7 and greater unconditional for Solaris.
7046         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
7047         Remove --with-* handling.
7048         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
7049         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
7050         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
7051         LINK_OS_WINDISS_SPEC): Remove.
7052         * config/rs6000/sysv4.opt (mwindiss): Remove.
7053         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
7054         * configure: Regenerate.
7055         * doc/cpp.texi: Don't mention BeOS.
7056         * doc/extend.texi (interrupt): Don't mention MS1.
7057         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
7058         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
7059         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
7060         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
7061         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
7062         Remove.
7063         * doc/invoke.texi (MT Options): Remove.
7064         (-mwindiss): Remove.
7065         (CRIS Options): Remove cris-axis-aout references.
7066         (HPPA Options): Don't mention hppa1.1-*-pro.
7067         * doc/md.texi: (MorphoTech family): Remove.
7068         * libgcc2.c: Don't handle UWIN.
7069         * config/alpha/t-unicosmk: Remove.
7070         * config/alpha/unicosmk.h: Remove.
7071         * config/arm/kaos-arm.h: Remove.
7072         * config/arm/kaos-strongarm.h: Remove.
7073         * config/arm/strongarm-coff.h: Remove.
7074         * config/arm/strongarm-elf.h: Remove.
7075         * config/arm/strongarm-pe.h: Remove.
7076         * config/arm/t-strongarm-pe: Remove.
7077         * config/arm/t-xscale-coff: Remove.
7078         * config/arm/t-xscale-elf: Remove.
7079         * config/arm/xscale-coff.h: Remove.
7080         * config/arm/xscale-elf.h: Remove.
7081         * config/chorus.h: Remove.
7082         * config/cris/aout.h: Remove.
7083         * config/cris/aout.opt: Remove.
7084         * config/cris/t-aout: Remove.
7085         * config/i386/beos-elf.h: Remove.
7086         * config/i386/kaos-i386.h: Remove.
7087         * config/i386/ptx4-i.h: Remove.
7088         * config/i386/sco5.h: Remove.
7089         * config/i386/sco5.opt: Remove.
7090         * config/i386/sysv4-cpp.h: Remove.
7091         * config/i386/sysv5.h: Remove.
7092         * config/i386/t-beos: Remove.
7093         * config/i386/t-sco5: Remove.
7094         * config/i386/t-uwin: Remove.
7095         * config/i386/uwin.asm: Remove.
7096         * config/i386/uwin.h: Remove.
7097         * config/kaos.h: Remove.
7098         * config/mips/windiss.h: Remove.
7099         * config/mt: Remove directory.
7100         * config/pa/pa-osf.h: Remove.
7101         * config/pa/pa-pro-end.h: Remove.
7102         * config/pa/t-pro: Remove.
7103         * config/ptx4.h: Remove.
7104         * config/rs6000/beos.h: Remove.
7105         * config/rs6000/kaos-ppc.h: Remove.
7106         * config/rs6000/t-beos: Remove.
7107         * config/rs6000/windiss.h: Remove.
7108         * config/sh/kaos-sh.h: Remove.
7109         * config/sol2-6.h: Remove.
7110         * config/sparc/sol26-sld.h: Remove.
7111         * config/sparc/sysv4-only.h: Remove.
7112         * config/vax/bsd.h: Remove.
7113         * config/vax/t-memfuncs: Remove.
7114         * config/vax/ultrix.h: Remove.
7115         * config/vax/vaxv.h: Remove.
7116         * config/windiss.h: Remove.
7117
7118 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
7119
7120         PR rtl-optimization/36438
7121         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
7122         for vector shifts with constant scalar shift operands.
7123
7124 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
7125
7126         * doc/invoke.texi: Document -march=xlr.
7127         * config/mips/xlr.md: New file.
7128         * config/mips/mips.md: Include it.
7129         (cpu): Add "xlr".
7130         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
7131         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
7132         (mips_rtx_cost_data): Likewise.
7133
7134 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
7135
7136         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
7137         PRE_INC and PRE_DEC cases.
7138
7139 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
7140
7141         PR rtl-optimization/36419
7142         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
7143         the emitting jump insn.
7144
7145         PR target/36362
7146         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
7147         is not bool, boolify the whole *expr_p and convert to the desired type.
7148
7149 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
7150
7151         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
7152         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
7153         Add omp_private_outer_ref hook, add another argument to
7154         omp_clause_default_ctor hook.
7155         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
7156         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
7157         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
7158         hook_tree_tree_tree_tree_null.
7159         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
7160         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
7161         * hooks.c (hook_tree_tree_tree_tree_null): New function.
7162         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
7163         * tree.def (OMP_TASK): New tree code.
7164         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
7165         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
7166         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
7167         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
7168         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
7169         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
7170         OMP_CLAUSE_COLLAPSE_EXPR): Define.
7171         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
7172         (OMP_DIRECTIVE_P): Add OMP_TASK.
7173         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
7174         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
7175         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
7176         and OMP_CLAUSE_UNTIED entries.
7177         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
7178         num_ops to 2.
7179         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
7180         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
7181         * tree-pretty-print.c (dump_omp_clause): Handle
7182         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
7183         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
7184         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
7185         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
7186         warning about unsigned iterators.  Change decl/init/cond/incr
7187         arguments to TREE_VECs, check arguments for all collapsed loops.
7188         (c_finish_omp_taskwait): New function.
7189         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
7190         ws_clauses.
7191         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
7192         default_function_array_conversion on init.  Add par_clauses argument.
7193         If decl is present in parallel's lastprivate clause, change it to
7194         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
7195         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
7196         collapse count in clauses.
7197         (c_parser_omp_for, c_parser_omp_parallel): Adjust
7198         c_parser_omp_for_loop callers.
7199         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
7200         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
7201         (c_parser_omp_clause_name): Handle collapse and untied clauses.
7202         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
7203         functions.
7204         (c_parser_omp_clause_schedule): Handle schedule(auto).
7205         Include correct location in the error message.
7206         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
7207         and PRAGMA_OMP_CLAUSE_UNTIED.
7208         (OMP_TASK_CLAUSE_MASK): Define.
7209         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
7210         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
7211         * tree-nested.c (convert_nonlocal_omp_clauses,
7212         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
7213         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
7214         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
7215         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
7216         OMP_CLAUSE_DECL.
7217         (conver_nonlocal_reference, convert_local_reference,
7218         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
7219         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
7220         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
7221         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
7222         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
7223         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
7224         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
7225         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
7226         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
7227         OMP_CLAUSE_UNTIED.
7228         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
7229         * c-common.h (c_finish_omp_taskwait): New prototype.
7230         * gimple-low.c (lower_stmt): Handle OMP_TASK.
7231         * tree-parloops.c (create_parallel_loop): Create 1 entry
7232         vectors for OMP_FOR_{INIT,COND,INCR}.
7233         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
7234         (make_edges): Handle OMP_TASK.
7235         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
7236         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
7237         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
7238         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
7239         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
7240         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
7241         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
7242         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
7243         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
7244         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
7245         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
7246         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
7247         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
7248         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
7249         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
7250         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
7251         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
7252         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
7253         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
7254         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
7255         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
7256         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
7257         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
7258         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
7259         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
7260         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
7261         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
7262         original iterator is present in lastprivate clause or if
7263         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
7264         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
7265         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
7266         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
7267         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
7268         if it is set, lookup var in outer contexts too.  Handle
7269         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
7270         to be implicitly determined firstprivate for task regions.
7271         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
7272         if it is set, lookup var in outer contexts too.  Set
7273         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
7274         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
7275         OMP_CLAUSE_UNTIED.  Take region_type as last argument
7276         instead of in_parallel and in_combined_parallel.
7277         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
7278         Adjust callers.
7279         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
7280         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
7281         (new_omp_context): Set default_kind to
7282         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
7283         (omp_region_type): New enum.
7284         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
7285         fields, add region_type.
7286         (new_omp_context): Take region_type as argument instead of is_parallel
7287         and is_combined_parallel.
7288         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
7289         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
7290         ctx->is_combined_parallel checks.
7291         (gimplify_omp_task): New function.
7292         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
7293         OMP_CLAUSE_UNTIED.
7294         * omp-low.c (extract_omp_for_data): Use schedule(static)
7295         for schedule(auto).  Handle pointer and unsigned iterators.
7296         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
7297         Add loops argument.  Extract data for collapsed OMP_FOR loops.
7298         (expand_parallel_call): Assert sched_kind isn't auto,
7299         map runtime schedule to index 3.
7300         (struct omp_for_data_loop): New type.
7301         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
7302         Add loop, loops, collapse and iter_type fields.
7303         (workshare_safe_to_combine_p): Disallow combined for if
7304         iter_type is unsigned long long.  Don't combine collapse > 1 loops
7305         unless all bounds and steps are constant.  Adjust extract_omp_for_data
7306         caller.
7307         (expand_omp_for_generic): Handle pointer, unsigned and long long
7308         iterators.  Handle collapsed OMP_FOR loops.  Adjust
7309         for struct omp_for_data changes.  If libgomp function doesn't return
7310         boolean_type_node, add comparison of the return value with 0.
7311         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
7312         pointer, unsigned and long long iterators.  Adjust for struct
7313         omp_for_data changes.
7314         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
7315         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
7316         unsigned long long.  Allocate loops array, pass it to
7317         extract_omp_for_data.  For collapse > 1 loops use always
7318         expand_omp_for_generic.
7319         (omp_context): Add sfield_map and srecord_type fields.
7320         (is_task_ctx, lookup_sfield): New functions.
7321         (use_pointer_for_field): Use is_task_ctx helper.  Change first
7322         argument's type from const_tree to tree.  Clarify comment.
7323         In OMP_TASK disallow copy-in/out sharing.
7324         (build_sender_ref): Call lookup_sfield instead of lookup_field.
7325         (install_var_field): Add mask argument.  Populate both record_type
7326         and srecord_type if needed.
7327         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
7328         in srecord_type.
7329         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
7330         and DECL_FIELD_OFFSET.
7331         (scan_sharing_clauses): Adjust install_var_field callers.  For
7332         firstprivate clauses on explicit tasks allocate the var by value in
7333         record_type unconditionally, rather than by reference.
7334         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
7335         Use is_taskreg_ctx instead of is_parallel_ctx.
7336         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
7337         (create_omp_child_function_name): Add task_copy argument, use
7338         *_omp_cpyfn* names if it is true.
7339         (create_omp_child_function): Add task_copy argument, if true create
7340         *_omp_cpyfn* helper function.
7341         (scan_omp_parallel): Adjust create_omp_child_function callers.
7342         Rename parallel_nesting_level to taskreg_nesting_level.
7343         (scan_omp_task): New function.
7344         (lower_rec_input_clauses): Don't run constructors for firstprivate
7345         explicit task vars which are initialized by *_omp_cpyfn*.
7346         Pass outer var ref to omp_clause_default_ctor hook if
7347         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
7348         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
7349         OMP_CLAUSE_REDUCTION_INIT.
7350         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
7351         avoid duplicate setting of fields.  Handle
7352         OMP_CLAUSE_PRIVATE_OUTER_REF.
7353         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
7354         copy-out if TREE_READONLY, only copy-in.
7355         (expand_task_copyfn): New function.
7356         (expand_task_call): New function.
7357         (struct omp_taskcopy_context): New type.
7358         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
7359         New functions.
7360         (lower_omp_parallel): Rename to...
7361         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
7362         Call create_task_copyfn if srecord_type is needed.  Adjust
7363         sender_decl type.
7364         (task_shared_vars): New variable.
7365         (check_omp_nesting_restrictions): Warn if work-sharing,
7366         barrier, master or ordered region is closely nested inside OMP_TASK.
7367         Add warnings for barrier if closely nested inside of work-sharing,
7368         ordered, or master region.
7369         (scan_omp_1): Call check_omp_nesting_restrictions even for
7370         GOMP_barrier calls.  Rename parallel_nesting_level to
7371         taskreg_nesting_level.  Handle OMP_TASK.
7372         (lower_lastprivate_clauses): Even if some lastprivate is found on a
7373         work-sharing construct, continue looking for them on parent parallel
7374         construct.
7375         (lower_omp_for_lastprivate): Add lastprivate clauses
7376         to the beginning of dlist rather than end.  Adjust for struct
7377         omp_for_data changes.
7378         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
7379         not after it.  Handle collapsed OMP_FOR loops, adjust for
7380         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
7381         (get_ws_args_for): Adjust extract_omp_for_data caller.
7382         (scan_omp_for): Handle collapsed OMP_FOR
7383         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
7384         (lower_omp_single_simple): If libgomp function doesn't return
7385         boolean_type_node, add comparison of the return value with 0.
7386         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
7387         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
7388         (parallel_nesting_level): Rename to...
7389         (taskreg_nesting_level): ... this.
7390         (is_taskreg_ctx): New function.
7391         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
7392         of is_parallel_ctx.
7393         (execute_lower_omp): Rename parallel_nesting_level to
7394         taskreg_nesting_level.
7395         (expand_omp_parallel): Rename to...
7396         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
7397         Call omp_task_call for OMP_TASK regions.
7398         (expand_omp): Adjust caller, handle OMP_TASK.
7399         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
7400
7401         * bitmap.c (bitmap_default_obstack_depth): New variable.
7402         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
7403         if argument is NULL and bitmap_default_obstack is already initialized.
7404         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
7405         at the end.
7406         * matrix-reorg.c (matrix_reorg): Likewise.
7407
7408 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
7409
7410         * config/i386/i386.md (*indirect_jump): Macroize using P
7411         mode iterator.  Remove !TARGET_64BIT from insn constraints.
7412         (*tablejump_1): Ditto.
7413         (*indirect_jump_rex64): Remove insn pattern.
7414         (*tablejump_1_rex64): Ditto.
7415         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
7416         and eh_return_si insn patterns.
7417
7418 2008-06-06  Richard Guenther  <rguenther@suse.de>
7419
7420         * tree-ssa-structalias.c (merge_smts_into): Remove.
7421         (find_what_p_points_to): Do not bother to compute the
7422         points-to set for pt_anything pointers.
7423         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
7424         for pt_anything pointers is ok.
7425
7426 2008-06-06  Jan Hubicka  <jh@suse.cz>
7427
7428         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
7429
7430 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7431
7432         * cgraph.c: Fix typos in comments.
7433         (cgraph_availability_names): Fix string typo.
7434         * fold-const.c: Fix typos in comments.
7435         (fold_binary): Fix typo in warning.
7436         * genautomata.c: Fix typos in comments.
7437         (check_presence_pattern_sets): Fix typo in local variable.
7438         (output_description): Fix typo in output.
7439         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
7440         * hwint.h: Likewise.
7441         * matrix-reorg.c (check_allocation_function): Likewise.
7442         * omega.c (smooth_weird_equations): Likewise.
7443         * auto-inc-dec.c: Fix typos in comments.
7444         * bb-reorder.c: Likewise.
7445         * builtins.c: Likewise.
7446         * c-common.c: Likewise.
7447         * c-cppbuiltin.c: Likewise.
7448         * c-parser.c: Likewise.
7449         * c-pretty-print.c: Likewise.
7450         * cfgcleanup.c: Likewise.
7451         * cfgexpand.c: Likewise.
7452         * cfghooks.c: Likewise.
7453         * cfglayout.c: Likewise.
7454         * cfgloopmanip.c: Likewise.
7455         * cgraphunit.c: Likewise.
7456         * coverage.c: Likewise.
7457         * dbxout.c: Likewise.
7458         * df-byte-scan.c: Likewise.
7459         * df-core.c: Likewise.
7460         * df-problems.c: Likewise.
7461         * df-scan.c: Likewise.
7462         * dfp.c: Likewise.
7463         * dominance.c: Likewise.
7464         * domwalk.c: Likewise.
7465         * dse.c: Likewise.
7466         * dwarf2out.c: Likewise.
7467         * emit-rtl.c: Likewise.
7468         * et-forest.c: Likewise.
7469         * function.c: Likewise.
7470         * function.h: Likewise.
7471         * gcc.c: Likewise.
7472         * gcov-io.c: Likewise.
7473         * gcov.c: Likewise.
7474         * gcse.c: Likewise.
7475         * genattrtab.c: Likewise.
7476         * ggc-page.c: Likewise.
7477         * gimplify.c: Likewise.
7478         * gthr-lynx.h: Likewise.
7479         * haifa-sched.c: Likewise.
7480         * ipa-cp.c: Likewise.
7481         * ipa-inline.c: Likewise.
7482         * ipa-prop.h: Likewise.
7483         * ipa-pure-const.c: Likewise.
7484         * ipa-struct-reorg.c: Likewise.
7485         * ipa-struct-reorg.h: Likewise.
7486         * ipa-type-escape.c: Likewise.
7487         * ipa.c: Likewise.
7488         * loop-doloop.c: Likewise.
7489         * mips-tfile.c: Likewise.
7490         * mkmap-flat.awk: Likewise.
7491         * mkmap-symver.awk: Likewise.
7492         * modulo-sched.c: Likewise.
7493         * omp-low.c: Likewise.
7494         * optabs.c: Likewise.
7495         * optabs.h: Likewise.
7496         * opts.c: Likewise.
7497         * passes.c: Likewise.
7498         * postreload-gcse.c: Likewise.
7499         * postreload.c: Likewise.
7500         * predict.c: Likewise.
7501         * pretty-print.h: Likewise.
7502         * profile.c: Likewise.
7503         * protoize.c: Likewise.
7504         * ra-conflict.c: Likewise.
7505         * real.c: Likewise.
7506         * recog.c: Likewise.
7507         * regclass.c: Likewise.
7508         * regs.h: Likewise.
7509         * reload.c: Likewise.
7510         * rtl-error.c: Likewise.
7511         * rtlanal.c: Likewise.
7512         * scan.h: Likewise.
7513         * sched-rgn.c: Likewise.
7514         * see.c: Likewise.
7515         * stmt.c: Likewise.
7516         * target.h: Likewise.
7517         * tree-dfa.c: Likewise.
7518         * tree-eh.c: Likewise.
7519         * tree-flow-inline.h: Likewise.
7520         * tree-inline.c: Likewise.
7521         * tree-into-ssa.c: Likewise.
7522         * tree-loop-distribution.c: Likewise.
7523         * tree-nested.c: Likewise.
7524         * tree-parloops.c: Likewise.
7525         * tree-pass.h: Likewise.
7526         * tree-pretty-print.c: Likewise.
7527         * tree-profile.c: Likewise.
7528         * tree-scalar-evolution.c: Likewise.
7529         * tree-sra.c: Likewise.
7530         * tree-ssa-alias-warnings.c: Likewise.
7531         * tree-ssa-ccp.c: Likewise.
7532         * tree-ssa-coalesce.c: Likewise.
7533         * tree-ssa-dom.c: Likewise.
7534         * tree-ssa-dse.c: Likewise.
7535         * tree-ssa-forwprop.c: Likewise.
7536         * tree-ssa-live.c: Likewise.
7537         * tree-ssa-live.h: Likewise.
7538         * tree-ssa-loop-im.c: Likewise.
7539         * tree-ssa-loop-ivopts.c: Likewise.
7540         * tree-ssa-loop-niter.c: Likewise.
7541         * tree-ssa-loop-prefetch.c: Likewise.
7542         * tree-ssa-phiopt.c: Likewise.
7543         * tree-ssa-phiprop.c: Likewise.
7544         * tree-ssa-sccvn.c: Likewise.
7545         * tree-ssa-ter.c: Likewise.
7546         * tree-ssa-threadupdate.c: Likewise.
7547         * tree-ssa.c: Likewise.
7548         * tree-vect-analyze.c: Likewise.
7549         * tree-vect-transform.c: Likewise.
7550         * tree-vectorizer.c: Likewise.
7551         * tree-vn.c: Likewise.
7552         * tree-vrp.c: Likewise.
7553         * tree.c: Likewise.
7554         * tree.def: Likewise.
7555         * tree.h: Likewise.
7556         * unwind-dw2-fde.c: Likewise.
7557         * unwind.inc: Likewise.
7558         * value-prof.c: Likewise.
7559         * vmsdbgout.c: Likewise.
7560
7561 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
7562
7563         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
7564         always place FP constants in the TOC for TARGET_POWERPC64.
7565         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
7566
7567 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
7568
7569         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
7570         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
7571         enable for TARGET_E500_DOUBLE.
7572         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
7573         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
7574         floating-point modes like integer modes for E500 double.
7575         (rs6000_legitimate_offset_address_p): Likewise.
7576         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
7577         addressing for DDmode for E500 double.
7578         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
7579         modes as using 64-bits of registers for E500 double.
7580         (spe_build_register_parallel): Do not handle DDmode or TDmode.
7581         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
7582         specially for E500 double.
7583         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
7584         TDmode for E500 double.
7585         (rs6000_gimplify_va_arg): Only handle SDmode in registers
7586         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
7587         (rs6000_split_multireg_move): Do not handle TDmode specially for
7588         E500 double.
7589         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
7590         using 64-bit registers for E500 double.
7591         (emit_frame_save): Do not handle DDmode specially for E500 double.
7592         (gen_frame_mem_offset): Likewise.
7593         (rs6000_function_value): Do not call spe_build_register_parallel
7594         for DDmode or TDmode.
7595         (rs6000_libcall_value): Likewise.
7596         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
7597         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
7598         for E500 double.
7599
7600 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
7601
7602         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
7603         in comments.
7604
7605 2008-06-04  Junjie Gu <jgu@tensilica.com>
7606
7607         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
7608         comparison for frame pointers.
7609
7610 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
7611
7612         PR target/27386
7613         * config/avr/avr.h (PUSH_ROUNDING): Remove.
7614
7615 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
7616
7617         PR target/30243
7618         * builtins.c (expand_builtin_signbit): Don't take lowpart when
7619         register is already smaller or equal to required mode.
7620
7621 2008-06-04  Xinliang David Li  <davidxl@google.com>
7622
7623         * tree-call-cdce.c: New file.
7624         (cond_dead_built_in_calls): New static variable.
7625         (input_domain): New struct.
7626         (check_pow): New function.
7627         (check_builtin_call): Ditto.
7628         (check_target_format): Ditto.
7629         (is_call_dce_candidate): Ditto.
7630         (gen_one_condition): Ditto.
7631         (gen_conditions_for_domain): Ditto.
7632         (get_domain): Ditto.
7633         (gen_conditions_for_pow_cst_base): Ditto.
7634         (gen_conditions_for_pow_int_base): Ditto.
7635         (gen_conditions_for_pow): Ditto.
7636         (get_no_error_domain): Ditto.
7637         (gen_shrink_wrap_conditions): Ditto.
7638         (shrink_wrap_one_built_in_call): Ditto.
7639         (shink_wrap_conditional_dead_built_in_calls): Ditto.
7640         (tree_call_cdce): Ditto.
7641         (gate_call_cdce): Ditto.
7642         (pass_call_cdce): New gimple pass.
7643         * passes.c: (init_optimization_passes): New pass.
7644         * tree-pass.h: New pass declaration.
7645         * opts.c (decode_options): New flag setting.
7646         * common.opt: Add -ftree-builtin-call-dce flag.
7647         * Makefile.in: Add new source file.
7648         * tempvar.def: New tv_id.
7649         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
7650
7651 2008-06-04  Richard Guenther  <rguenther@suse.de>
7652
7653         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
7654         (is_call_clobbered): Always check var_ann->call_clobbered.
7655         (mark_call_clobbered): Always set var_ann->call_clobbered.
7656         (clear_call_clobbered): Always clear var_ann->call_clobbered.
7657         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
7658         (reset_alias_info): Clear call clobbering info on MTAGs and
7659         globals as well.
7660         (set_pt_anything): Set pt_global_mem.
7661         (create_tag_raw): Adjust comment.
7662         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
7663
7664 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
7665             Maxim Kuvyrkov  <maxim@codesourcery.com>
7666
7667         * config/m68k/m68k.opt (mxgot): New option.
7668         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
7669         (m68k_output_addr_const_extra): New.
7670         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
7671         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
7672         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
7673         * doc/invoke.texi (M680x0 Options): Document -mxgot.
7674
7675 2008-06-04  Richard Guenther  <rguenther@suse.de>
7676
7677         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
7678         negative or non-representable offsets.
7679
7680 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
7681
7682         * config/i386/i386.c (ix86_gen_leave): New.
7683         (ix86_gen_pop1): Likewise.
7684         (ix86_gen_add3): Likewise.
7685         (ix86_gen_sub3): Likewise.
7686         (ix86_gen_sub3_carry): Likewise.
7687         (ix86_gen_one_cmpl2): Likewise.
7688         (ix86_gen_monitor): Likewise.
7689         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
7690         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
7691         ix86_gen_one_cmpl2 and ix86_gen_monitor.
7692         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
7693         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
7694         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
7695         (ix86_expand_epilogue): Updated.
7696         (print_operand): Handle integer register operand for 'z'.
7697         (ix86_expand_strlensi_unroll_1): Likewise.
7698         (ix86_expand_strlen): Likewise.
7699         (ix86_expand_builtin): Likewise.
7700         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
7701         mov{q}/mov{l} and add{q}/add{l}.
7702
7703 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
7704
7705         * config/i386/i386.md (P): New mode iterator.
7706         (SFmode push_operand splitter): Macroize DImode and SImode pushes
7707         using P mode iterator.
7708         (DFmode push_operand splitter): Ditto.
7709         (XFmode push_operand splitter): Ditto.
7710         (DFmode float_extend SFmode push_operand splitter): Ditto.
7711         (XFmode float_extend SFmode push_operand splitter): Do not generate
7712         SImode pushes for 64bit target.  Macroize Dimode and SImode
7713         pushes using P mode iterator.
7714         (XFmode float_extend DFmode push_operand splitter): Ditto.
7715
7716 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
7717
7718         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
7719         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
7720         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
7721         return type to int.
7722         (ix86_call_abi_override): Remove check for call_used_regs.
7723
7724 2008-06-03  Richard Guenther  <rguenther@suse.de>
7725
7726         * tree-ssa-structalias.c (find_func_aliases): Add constraints
7727         for the lhs of calls if the return type contains pointers.
7728
7729 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
7730
7731         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
7732         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
7733         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
7734         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
7735         of cfun and DEFAULT_ABI to deceide abi mode.
7736         (DEFAULT_ABI): New.
7737         (REG_PARM_STACK_SPACE): Removed.
7738         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
7739         (STACK_BOUNDARY): Use default target to deceide stack boundary.
7740         * config/i386/i386-protos.h (ix86_cfun_abi): New.
7741         (ix86_function_abi): Likewise.
7742         (ix86_function_type_abi): Likewise.
7743         (ix86_call_abi_override): Likewise.
7744         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
7745         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
7746         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
7747         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
7748         specific defines.
7749         (X86_64_REGPARM_MAX): New.
7750         (X86_64_SSE_REGPARM_MAX): New.
7751         (X64_REGPARM_MAX): New.
7752         (X64_SSE_REGPARM_MAX): New.
7753         (X86_32_REGPARM_MAX): New.
7754         (X86_32_SSE_REGPARM_MAX): New.
7755         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
7756         (ix86_function_regparm): Handle user calling abi.
7757         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
7758         by DEFAULT_ABI versus SYSV_ABI check.
7759         (ix86_reg_parm_stack_space): New.
7760         (ix86_function_type_abi): New.
7761         (ix86_call_abi_override): New.
7762         (ix86_function_abi): New.
7763         (ix86_cfun_abi): New.
7764         (init_cumulative_args): Call abi specific initialization.
7765         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
7766         (function_arg_64): Extend SSE_REGPARM_MAX check.
7767         (function_arg (): Remove TARGET_64BIT_MS_ABI.
7768         (ix86_pass_by_reference): Likewise.
7769         (ix86_function_value_regno_p): Likewise.
7770         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
7771         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
7772         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
7773         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
7774         (setup_incoming_varargs_64): Adjust regparm for call abi.
7775         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
7776         (ix86_va_start): Likewise.
7777         (ix86_gimplify_va_arg): Likewise.
7778         (ix86_expand_prologue): Likewise.
7779         (output_pic_addr_const): Likewise.
7780         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
7781         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
7782         (x86_output_mi_thunk): Likewise.
7783         (x86_function_profiler): Likewise.
7784         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
7785         (SYSV_ABI, MS_ABI): New constants.
7786         (DEFAULT_ABI): New.
7787         (init_regs): Add prototype of function in regclass.c file.
7788         (OVERRIDE_ABI_FORMAT): New.
7789         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
7790         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
7791         (OUTGOING_REG_PARM_STACK_SPACE): New.
7792         (ix86_reg_parm_stack_space): New prototype.
7793         (CUMULATIVE_ARGS): Add call_abi member.
7794         (machine_function): Add call_abi member.
7795         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
7796         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
7797
7798 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com>
7799
7800         PR target/34879
7801         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
7802         (avr_builtin_setjmp_frame_value): New function.
7803         * config/avr/avr.md (nonlocal_goto_receiver): Define.
7804         (nonlocal_goto): Define.
7805
7806 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
7807
7808         * config/mips/mips.c (mips_emit_loadgp): Return early if
7809         there is nothing do to, otherwise emit a blockage if
7810         !TARGET_EXPLICIT_RELOCS || crtl->profile.
7811         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
7812
7813 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7814
7815         * configure.ac: Drop unneeded backslash ending up in config.in.
7816         * acinclude.m4: Likewise.
7817         * config.in: Regenerate.
7818
7819 2008-05-26  Jan Hubicka  <jh@suse.cz>
7820
7821         * predict.c (maybe_hot_frequency_p): Break out of...
7822         (maybe_hot_bb_p): ... here.
7823         (maybe_hot_edge_p): New.
7824         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
7825         * basic-block.h (maybe_hot_edge_p): Declare.
7826
7827 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
7828
7829         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
7830         (*cmpfp_<mode>_cc): Ditto.
7831         (*fp_jcc_8<mode>_387): Ditto.
7832         (*fop_<MODEF:mode>_2_i387): Ditto.
7833         (*fop_<MODEF:mode>_3_i387): Ditto.
7834         (*fop_xf_2_i387): Ditto.
7835         (*fop_xf_3_i387): Ditto.
7836
7837 2008-06-02  Tomas Bily  <tbily@suse.cz>
7838
7839         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
7840
7841 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
7842
7843         * config/mips/mips.c (mips_valid_offset_p): New function.
7844         (mips_valid_lo_sum_p): Likewise.
7845         (mips_classify_address): Use them.
7846         (mips_force_address): New function.
7847         (mips_legitimize_address): Use it.
7848         * config/mips/mips.md (MOVE128): New mode iterator.
7849         (movtf): Require TARGET_64BIT.  Remove empty strings.
7850         (*movtf_internal): Rename to...
7851         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
7852         of "R" and use {,fp}{load,store} attributes instead of "multi".
7853         Use a separate define_split.
7854         (*movtf_mips16): New pattern.
7855
7856 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
7857
7858         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
7859         * config/mips/mips.c (mips_expand_before_return): New function.
7860         (mips_expand_epilogue): Call it.
7861         * config/mips/mips.md (return): Turn into a define_expand.
7862         (*return): New insn.
7863
7864 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
7865
7866         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
7867         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
7868         functions.  Do not emit uses and clobbers of CONCATs; individually
7869         use and clobber their operands.
7870         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
7871         gen_clobber, emit_use and gen_use.
7872         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
7873         (expand_builtin_return): Likewise.
7874         * cfgbuild.c (count_basic_blocks): Likewise.
7875         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
7876         * explow.c (emit_stack_restore): Likewise.
7877         * expmed.c (extract_bit_field_1): Likewise.
7878         * expr.c (convert_move, emit_move_complex_parts): Likewise.
7879         (emit_move_multi_word, store_constructor): Likewise.
7880         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
7881         (thread_prologue_and_epilogue_insns): Likewise.
7882         * lower-subreg.c (resolve_simple_move): Likewise.
7883         * optabs.c (widen_operand, expand_binop): Likewise.
7884         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
7885         * reload.c (find_reloads): Likewise.
7886         * reload1.c (eliminate_regs_in_insn): Likewise.
7887         * stmt.c (expand_nl_goto_receiver): Likewise.
7888         * config/alpha/alpha.md (builtin_longjmp): Likewise.
7889         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
7890         * config/arm/arm.c (arm_load_pic_register): Likewise.
7891         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
7892         * config/arm/arm.md (untyped_return): Likewise.
7893         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
7894         * config/avr/avr.c (expand_prologue): Likewise.
7895         * config/bfin/bfin.c (do_unlink): Likewise.
7896         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
7897         * config/cris/cris.c (cris_expand_prologue): Likewise.
7898         * config/darwin.c (machopic_indirect_data_reference): Likewise.
7899         (machopic_legitimize_pic_address): Likewise.
7900         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
7901         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
7902         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
7903         (ix86_expand_convert_uns_didf_sse): Likewise.
7904         (ix86_expand_vector_init_general): Likewise.
7905         * config/ia64/ia64.md (eh_epilogue): Likewise.
7906         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
7907         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
7908         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
7909         (config/iq2000/iq2000.c): Likewise.
7910         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
7911         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
7912         (builtin_longjmp): Likewise.
7913         * config/mn10300/mn10300.md (call, call_value): Likewise.
7914         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
7915         * config/pdp11/pdp11.md (abshi2): Likewise.
7916         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
7917         * config/s390/s390.c (s390_emit_prologue): Likewise.
7918         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
7919         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
7920         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
7921         * config/sh/sh.c (prepare_move_operands): Likewise.
7922         (output_stack_adjust, sh_expand_epilogue): Likewise.
7923         (sh_set_return_address, sh_expand_t_scc): Likewise.
7924         * config/sparc/sparc.c (load_pic_register): Likewise.
7925         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
7926         * config/spu/spu.c (spu_expand_epilogue): Likewise.
7927         * config/v850/v850.c (expand_epilogue): Likewise.
7928
7929 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
7930
7931         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
7932         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
7933         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
7934         * config/avr/avr.c (expand_prologue, expand_epilogue): Use
7935         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
7936         stack pointer register.
7937         (output_movhi): Remove code for interrupt specific writing to the
7938         stack pointer register.
7939
7940 2008-05-31  Richard Guenther  <rguenther@suse.de>
7941
7942         PR tree-optimization/34244
7943         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
7944         (tree_expr_nonzero_warnv_p): Likewise.
7945         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
7946         ssa_name_nonnegative_p.
7947         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
7948         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
7949         not tree_expr_nonzero_warnv_p.
7950
7951         PR tree-optimization/36262
7952         Revert
7953         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
7954
7955         PR tree-optimization/34244
7956         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
7957         (record_numbers_of_iterations): New function.
7958         (execute_vrp): Cache the numbers of iterations of loops.
7959         * tree-scalar-evolution.c (scev_reset_except_niters):
7960         New function.
7961         (scev_reset): Use scev_reset_except_niters.
7962         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
7963
7964 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
7965
7966         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
7967         __WORKAROUND_RETS when appropriate.
7968
7969 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
7970
7971         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
7972         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
7973         mode iterator.
7974         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
7975         *fop_df_comm_sse insn patterns using MODEF mode iterator.
7976         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
7977         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
7978         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
7979         *fop_df_1_mixed insn patterns using MODEF mode iterator.
7980         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
7981         *fop_df_1_sse insn patterns using MODEF mode iterator.
7982         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
7983         *fop_df_1_i387 insn patterns using MODEF mode iterator.
7984         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
7985         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
7986         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
7987         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
7988         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
7989         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
7990         (*fop_xf_4_i387): Use <MODE> for mode attribute.
7991         (*fop_xf_5_i387): Ditto.
7992         (*fop_xf_6_i387): Ditto.
7993
7994 2008-05-30  Richard Guenther  <rguenther@suse.de>
7995
7996         * builtins.c (build_string_literal): Avoid generating
7997         a non-gimple_val result.
7998
7999 2008-05-30  DJ Delorie  <dj@redhat.com>
8000
8001         * exec-tool.in: Use an environment variable (private) instead of a
8002         file (shared) as a semaphore, so as to not break parallel builds.
8003
8004 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
8005
8006         * optabs.c (maybe_encapsulate_block): Remove.
8007         (emit_libcall_block): Adjust accordingly.
8008         * optabs.h (maybe_encapsulate_block): Remove prototype.
8009
8010         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
8011         Don't use maybe_encapsulate_block.
8012
8013 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
8014
8015         * config/rs6000/rs6000.c (rs6000_legitimize_address,
8016         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
8017         rtx is a SYMBOL_REF before calling get_pool_constant.
8018
8019 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
8020
8021         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
8022
8023 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
8024
8025         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
8026         rather than OS names to choose INO_T_EQ definition.
8027         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
8028         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
8029
8030 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
8031
8032         PR target/36348
8033         * config/darwin-f.c: New.
8034         * config/t-darwin: Added rule to build darwin-f.o.
8035         * config.gcc: Defined new variable, fortran_target_objs.
8036         (*-*-darwin*): Set fortran_target_objs.
8037         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
8038         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
8039         * configure: Regenerated.
8040
8041 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
8042
8043         PR target/35771
8044         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
8045         canonical type if needed.
8046
8047 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
8048
8049         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
8050
8051 2008-05-29  Richard Guenther  <rguenther@suse.de>
8052
8053         PR tree-optimization/36343
8054         PR tree-optimization/36346
8055         PR tree-optimization/36347
8056         * tree-flow.h (clobber_what_p_points_to): Declare.
8057         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
8058         pointed-to variable is dereferenced is irrelevant to whether
8059         the pointer can access the pointed-to variable.
8060         (clobber_what_p_points_to): New function.
8061         * tree-ssa-alias.c (set_initial_properties): Use it.
8062         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
8063         call clobber check for NMTs.
8064
8065 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
8066
8067         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
8068         for printing gcov_type.
8069
8070 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
8071
8072         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
8073         and the eh region information.
8074         * value-prof.c (gimple_move_stmt_histograms): New function.
8075         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
8076
8077 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
8078
8079         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
8080
8081 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
8082
8083         * value-prof.c (tree_ic_transform): Print counts.
8084         * tree-profile.c (tree_gen_ic_func_profiler):
8085         Clear __gcov_indreict_call_callee variable to avoid misattribution
8086         of the profile.
8087
8088 2008-05-28  Rafael Espindola  <espindola@google.com>
8089
8090         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
8091         invalid sharing.
8092
8093 2008-05-28  Richard Guenther  <rguenther@suse.de>
8094
8095         PR tree-optimization/36339
8096         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
8097         and clobbering code out of the loop.
8098
8099 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
8100
8101         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
8102         letters defined.
8103
8104         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
8105         s390_contiguous_bitmask_p, s390_symref_operand_p,
8106         s390_check_symref_alignment, s390_reload_larl_operand,
8107         s390_reload_symref_address): New functions.
8108         (s390_branch_condition_mnemonic): Support compare and branch
8109         instructions.
8110         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
8111         and 'W' constraints.
8112         (s390_secondary_reload): Add secondary reloads for unaligned
8113         symbol refs or symbol refs to floating point or QI/TI mode
8114         integer values.
8115         (legitimate_address_p): Accept symbol references as addresses.
8116         (s390_expand_insv): Use rotate and insert selected bits
8117         instruction for insv when building for z10.
8118         (print_operand_address): Handle symbol ref addresses.
8119         (print_operand): Output modifier 'c' added for signed byte values.
8120         (s390_encode_section_info): Mark symbol refs with
8121         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
8122
8123         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
8124         (length attribute): RRF, RRR have 4 byte length.
8125         (FPALL, INTALL): New mode iterators added.
8126         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
8127         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
8128         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
8129         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
8130         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
8131         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
8132         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
8133         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
8134         instructions.
8135         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
8136         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
8137         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
8138         reload<INTALL:mode><P:mode>_toreg_z10,
8139         reload<FPALL:mode><P:mode>_tomem_z10,
8140         reload<FPALL:mode><P:mode>_toreg_z10,
8141         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
8142         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
8143         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
8144         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
8145         definition.
8146         (movmem, clrmem, cmpmem): New splitters added.
8147
8148         * config/s390/predicates.md (larl_operand): Use
8149         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
8150         SYMBOL_REF_ALIGN1_P.
8151         (s390_signed_integer_comparison,
8152         s390_unsigned_integer_comparison): New predicates.
8153
8154         * config/s390/s390-protos.h (s390_check_symref_alignment,
8155         s390_contiguous_bitmask_p, s390_reload_larl_operand,
8156         s390_reload_symref_address,
8157         s390_compare_and_branch_condition_mask): Prototypes added.
8158
8159         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
8160         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
8161         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
8162
8163 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
8164
8165         * config/s390/s390.c (z10_cost): New cost function for z10.
8166         (s390_handle_arch_option, override_options): Support -march=z10 switch.
8167         (s390_issue_rate): Adjust issue rate for z10.
8168         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
8169         (processor_flags): Add PF_Z10.
8170         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
8171         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
8172         * gcc/config.gcc: Add z10.
8173
8174 2008-05-28  Richard Guenther  <rguenther@suse.de>
8175
8176         PR tree-optimization/36291
8177         * tree-flow. h (struct gimple_df): Remove var_anns member.
8178         * tree-flow-inline.h (gimple_var_anns): Remove.
8179         (var_ann): Simplify.
8180         * tree-dfa.c (create_var_ann): Simplify.
8181         (remove_referenced_var): Clear alias info from var_anns of globals.
8182         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
8183         (delete_tree_ssa): Clear alias info from var_anns of globals.
8184         Do not free var_anns.
8185         (var_ann_eq): Remove.
8186         (var_ann_hash): Likewise.
8187
8188 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
8189
8190         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
8191         and loongson2f entries.
8192         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
8193         * config/mips/mips.h (processor_type): Add Loongson-2E
8194         and Loongson-2F entries.
8195         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
8196         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
8197         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
8198         * doc/invoke.texi (MIPS Options): Document loongson2e
8199         and loongson2f processor names.
8200
8201 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
8202
8203         PR target/35767
8204         PR target/35771
8205         * config/i386/i386.c (ix86_function_arg_boundary): Use
8206         alignment of canonical type.
8207         (ix86_expand_vector_move): Check unaligned memory access for
8208         all SSE modes.
8209
8210 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
8211
8212         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
8213         Moved to the front of file.
8214
8215 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
8216             H.J. Lu  <hongjiu.lu@intel.com>
8217
8218         * dwarf2out.c (current_fde): New.
8219         (add_cfi): Use it.
8220         (lookup_cfa:): Likewise.
8221         (dwarf2out_end_epilogue): Likewise.
8222         (dwarf2out_note_section_used): Likewise.
8223
8224 2008-05-27  Michael Matz  <matz@suse.de>
8225
8226         PR c++/27975
8227         * c.opt (Wenum-compare): New warning option.
8228         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
8229
8230 2008-05-27  Michael Matz  <matz@suse.de>
8231
8232         PR middle-end/36326
8233         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
8234         non-BLKmode types.
8235         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
8236         into memory as tail calls.
8237
8238 2008-05-27  Richard Guenther  <rguenther@suse.de>
8239
8240         PR tree-optimization/36339
8241         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
8242         pointers cause all addressable variables to be call clobbered.
8243
8244 2008-05-27  Richard Guenther  <rguenther@suse.de>
8245
8246         PR tree-optimization/36245
8247         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
8248
8249 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
8250
8251         * config/s390/s390.md: Replace all occurences of the 'm'
8252         constraint with 'RT'.
8253
8254 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
8255
8256         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
8257         definitions added.
8258         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
8259         "*movdi_64".
8260         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
8261         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
8262         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
8263
8264 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
8265
8266         * reload.c: (find_reloads): Skip alternatives according to the
8267         "enabled" attribute. Constify the constraint variable.
8268         * recog.c (get_attr_enabled): Add default implementation.
8269         (extract_insn): Set the alternative_enabled_p array
8270         in the recog_data struct.
8271         (preprocess_constraints, constrain_operands): Skip
8272         alternatives according to the "enabled" attribute
8273         * recog.h (struct recog_data): New field alternative_enabled_p.
8274         (skip_alternative): New inline function.
8275         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
8276         (record_reg_classes): Skip alternative according to the
8277         "enabled" attribute.
8278
8279         * doc/md.texi: Add documention for the "enabled" attribute.
8280
8281 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
8282
8283         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
8284         * postreload.c (reload_cse_simplify_operands): Replace 'm'
8285         constraint with TARGET_MEM_CONSTRAINT.
8286         * recog.c (asm_operand_ok, preprocess_constraints,
8287         constrain_operands): Likewise.
8288         * regclass.c (record_reg_classes): Likewise.
8289         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
8290         * reload1.c (maybe_fix_stack_asms): Likewise.
8291         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
8292         * recog.h: Adjust comment.
8293         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
8294         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
8295         * doc/md.texi: Add a note to description of 'm' constraint.
8296         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
8297
8298 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
8299
8300         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
8301         that the bitfield is of integral type before testing its precision.
8302
8303 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
8304             Sa Liu  <saliu@de.ibm.com>
8305
8306         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
8307         __modti3, __udivti3, __umodti3 and __udivmodti4.
8308         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
8309         that implement TImode mul and div functions.
8310         * config/spu/multi3.c: New. Implement __multi3.
8311         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
8312         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
8313         functions on SPU.
8314
8315 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
8316
8317         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
8318         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
8319         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
8320         tls_sysv_suffix): New mode and mode attribute iterators.
8321         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
8322         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
8323         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
8324         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
8325         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
8326         iterators.
8327
8328 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
8329
8330         PR tree-optimization/36329
8331         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
8332         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
8333         * cgraphbuild.c (initialize_inline_failed): Use the latter
8334         macro in lieu of the former.
8335         * ipa-inline.c (cgraph_mark_inline): Likewise.
8336         (cgraph_decide_inlining_of_small_function): Likewise.
8337         (cgraph_decide_inlining): Likewise.
8338         (cgraph_decide_inlining_incrementally): Likewise.
8339
8340 2008-05-26  Tristan Gingold  <gingold@adacore.com>
8341             Anatoly Sokolov  <aesok@post.ru>
8342
8343         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
8344         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
8345         * config/avr/avr.c (expand_prologue): Tune "call_prologue"
8346         optimization for 'avr6' architecture.
8347
8348 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
8349
8350         PR target/34932
8351         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
8352
8353 2008-05-26  Richard Guenther  <rguenther@suse.de>
8354
8355         * tree-ssa-sccvn.c (expr_has_constants): Declare.
8356         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
8357
8358 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
8359
8360         PR middle-end/36253
8361         * caller-save.c (insert_restore): Verify alignment of spill space.
8362         (insert_save): Likewise.
8363         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
8364         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
8365         (STACK_SLOT_ALIGNMENT): Likewise.
8366         * function.c (LOCAL_ALIGNMENT): Removed.
8367         (get_stack_local_alignment): New.
8368         (assign_stack_local): Use it.  Set alignment on stack slot.
8369         (assign_stack_temp_for_type): Use get_stack_local_alignment.
8370         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
8371         (STACK_SLOT_ALIGNMENT): New.
8372         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
8373         stack slot in XFmode.
8374
8375         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
8376
8377 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
8378
8379         PR/36321
8380         * config/i386/i386.md (allocate_stack_worker_64): Make sure
8381         argument operand in rax isn't removed.
8382
8383 2008-05-26  Richard Guenther  <rguenther@suse.de>
8384
8385         PR middle-end/36300
8386         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
8387         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
8388
8389 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
8390
8391         PR bootstrap/36331
8392         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
8393
8394 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
8395
8396         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
8397         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
8398
8399 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
8400
8401         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
8402         build a trampoline if we don't want one.
8403         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
8404         return zero for nested functions if we don't want a trampoline.
8405
8406 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
8407
8408         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
8409
8410 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
8411
8412         PR fortran/18428
8413         * c.opt: Removed undocumented option '-lang-fortran'.
8414         * c-common.h: Removed global variable 'lang_fortran'.
8415         * c-opts.c (c_common_handle_option): Removed code to handle
8416         option '-lang-fortran'. Updated includes.
8417         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
8418         definition of '__GFORTRAN__'.
8419         (define__GNUC__): Reimplemented to use BASEVER and
8420         cpp_define_formatted.
8421         (builtin_define_with_value_n): Removed.
8422         * c-incpath.h: Renamed to ...
8423         * incpath.h: ... this.
8424         * c-incpath.c: Renamed to ...
8425         * incpath.c: ... this. Updated includes.
8426         * fix-header.c: Updated includes.
8427         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
8428         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
8429         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
8430
8431 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
8432
8433         * tree.h: Update the table of flags used on tree nodes.
8434         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
8435         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
8436         (FORCED_LABEL): Add access check.
8437         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
8438         (ASM_INPUT_P): Likewise.
8439         (ASM_VOLATILE_P): Likewise.
8440         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
8441         (OMP_SECTION_LAST): Access private_flag directly.
8442         (OMP_RETURN_NOWAIT): Likewise.
8443         (OMP_PARALLEL_COMBINED): Likewise.
8444         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
8445         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
8446         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
8447         deprecated_flag directly.
8448
8449 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
8450
8451         * final.c (frame_pointer_needed): Removed.
8452         * flags.h (frame_pointer_needed): Likewise.
8453
8454         * function.h (rtl_data): Add frame_pointer_needed.
8455         (frame_pointer_needed): New.
8456
8457 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
8458
8459         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
8460
8461 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
8462
8463         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
8464         SRC is a REG.
8465
8466 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
8467
8468         * c-common.c (strip_array_types): Move function to..
8469         * tree.c: ..here.
8470         (get_inner_array_type): Delete.
8471         * c-common.h (strip_array_types): Move declaration to..
8472         * tree.h: ..here.
8473         (get_inner_array_type): Delete.
8474         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
8475         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
8476         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
8477         * config/pa/pa.c (emit_move_sequence): Likewise.
8478
8479 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
8480
8481         * config/i386/i386.md (*sse_prologue_save_insn): Set length
8482         attribute to 34.
8483
8484 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
8485
8486         * function.c: Include target hook for nonlocal_goto frame value.
8487
8488 2008-05-24  Richard Guenther  <rguenther@suse.de>
8489
8490         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
8491         variable can be only accessed through a pointer or a union.
8492
8493 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8494
8495         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
8496         * doc/extend.texi: Likewise.
8497
8498 2008-05-23  DJ Delorie  <dj@redhat.com>
8499
8500         * config/m32c/jump.md (untyped_call): Add.
8501
8502         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
8503         for A24 to PSImode.
8504         (m32c_address_cost): Detail costs for indirect offsets.
8505
8506 2008-05-23  Rafael Espindola  <espindola@google.com>
8507
8508         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
8509         if a node is a SUBREG.
8510         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
8511         is a SUBREG.
8512
8513 2008-05-23  Paul Brook  <paul@codesourcery.com>
8514             Carlos O'Donell  <carlos@codesourcery.com>
8515
8516         * doc/extend.texi: Clarify use of __attribute__((naked)).
8517         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
8518         * target.h (gcc_target): Add allocate_stack_slots_for_args.
8519         * function.c (use_register_for_decl): Use
8520         targetm.calls.allocate_stack_slots_for_args.
8521         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
8522         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
8523         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
8524
8525 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
8526
8527         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
8528
8529 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
8530
8531         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
8532         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
8533         is only rounded once.
8534
8535 2008-05-23  Richard Guenther  <rguenther@suse.de>
8536
8537         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
8538
8539 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
8540             Jakub Jelinek  <jakub@redhat.com>
8541
8542         PR target/36079
8543         * configure.ac: Handle --enable-cld.
8544         * configure: Regenerated.
8545         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
8546         * config/i386/i386.h (struct machine_function): Add needs_cld field.
8547         (ix86_current_function_needs_cld): New define.
8548         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
8549         (cld): New isns pattern.
8550         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
8551         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
8552         * config/i386/i386.opt (mcld): New option.
8553         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
8554         TARGET_CLD and ix86_current_function_needs_cld.
8555         (override_options): Use -mcld by default for 32-bit code if
8556         USE_IX86_CLD.
8557
8558         * doc/install.texi (Options specification): Document --enable-cld.
8559         * doc/invoke.texi (Machine Dependent Options)
8560         [i386 and x86-64 Options]: Add -mcld option.
8561         (Intel 386 and AMD x86-64 Options): Document -mcld option.
8562
8563 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
8564         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
8565         (return_in_memory_64): Likewise.
8566         (return_in_memory_ms_64): Likewise.
8567
8568 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8569
8570         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
8571         * builtins.c (fold_builtin_fpclassify): New.
8572         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
8573         * builtins.def (BUILT_IN_FPCLASSIFY): New.
8574         * c-common.c (handle_type_generic_attribute): Adjust to accept
8575         fixed arguments before an elipsis.
8576         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
8577         * doc/extend.texi: Document __builtin_fpclassify.
8578
8579 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
8580
8581         * omp-low.c (gate_expand_omp_ssa): Remove.
8582         (pass_expand_omp_ssa): Remove.
8583         (gate_expand_omp): Do not check for flag_openmp_ssa.
8584         * common.opt (-fopenmp-ssa): Remove.
8585         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
8586
8587 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
8588
8589         * config/sh/sh.opt (mfixed-range): New option.
8590         * config/sh/sh-protos.h (sh_fix_range): Declare.
8591         * config/sh/sh.c (sh_fix_range): New function.
8592         * config/sh/sh.h (sh_fixed_range_str): Declare.
8593         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
8594         is not empty.
8595         * doc/invoke.texi (SH Options): Document -mfixed-range.
8596
8597 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
8598
8599         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
8600         it before the redeclaration.
8601
8602 2008-05-22  Anatoly Sokolov <aesok@post.ru>
8603
8604         * config/avr/avr.c (get_sequence_length): Add new function.
8605         (expand_prologue, expand_epilogue): Remove duplicate code.
8606
8607 2008-05-22  Rafael Espindola  <espindola@google.com>
8608
8609         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
8610         sharing.
8611
8612 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
8613
8614         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
8615         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
8616
8617         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
8618         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
8619         (vect_update_misalignment_for_peel): Likewise.
8620         (vector_alignment_reachable_p): Likewise.
8621         * tree-vect-transform.c (vectorizable_load): Likewise.
8622         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
8623         (get_vectype_for_scalar_type): Pass mode of scalar_type
8624         to UNITS_PER_SIMD_WORD.
8625
8626         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
8627         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
8628         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
8629         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
8630         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
8631
8632 2008-05-22  Ira Rosen  <irar@il.ibm.com>
8633
8634         PR tree-optimization/36293
8635         * tree-vect-transform.c (vect_transform_strided_load): Don't check
8636         if the first load must be skipped because of a gap.
8637
8638 2008-05-22  Richard Guenther  <rguenther@suse.de>
8639
8640         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
8641         more cases of offset disambiguation that is possible if
8642         strict-aliasing rules apply.
8643         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
8644         for basic offset and type-based disambiguation.
8645
8646 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8647
8648         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
8649         ix86_expand_vector_set on V16QImode for SSE4.1.
8650
8651 2008-05-21  Tom Tromey  <tromey@redhat.com>
8652
8653         * c.opt (Wimport): Mark as undocumented.
8654         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
8655         -Wno-import.
8656         (Warning Options): Likewise.
8657         * doc/cppopts.texi: Don't mention -Wimport.
8658
8659 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
8660
8661         PR tree-optimization/36287
8662         PR tree-optimization/36286
8663         * lambda-code.c (build_access_matrix): Do not use the loop->num
8664         for computing the number of induction variables: use the loop depth
8665         instead.
8666
8667 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
8668
8669         PR/36280
8670         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
8671         option -f(no-)leading-underscore.
8672
8673 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8674
8675         * config/i386/i386.c (ix86_expand_vector_init_general): Use
8676         GET_MODE_NUNITS (mode).
8677
8678 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
8679
8680         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
8681         (-mmulhw): Add 464 to description.
8682         (-mdlmzb): Likewise.
8683         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
8684         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
8685         464fp entries.
8686         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
8687         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
8688         * config/rs6000/rs6000.md: Update comments for 464.
8689
8690 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
8691
8692         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
8693
8694 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8695
8696         * config/i386/sse.md (vec_extractv4sf): Removed.
8697         (vec_extractv2df): Likewise.
8698         (vec_extractv2di): Likewise.
8699         (vec_extractv4si): Likewise.
8700         (vec_extractv8hi): Likewise.
8701         (vec_extractv16qi): Likewise.
8702         (vec_extract<mode>): New.
8703
8704 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8705
8706         * config/i386/sse.md (vec_setv4sf): Removed.
8707         (vec_setv2df): Likewise.
8708         (vec_setv2di): Likewise.
8709         (vec_setv4si): Likewise.
8710         (vec_setv8hi): Likewise.
8711         (vec_setv16qi): Likewise.
8712         (vec_set<mode>): New.
8713
8714 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8715
8716         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
8717         goto for vec_concat and vec_interleave.
8718
8719 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8720
8721         * config/i386/sse.md (vec_initv4sf): Removed.
8722         (vec_initv2df): Likewise.
8723         (vec_initv2di): Likewise.
8724         (vec_initv4si): Likewise.
8725         (vec_initv8hi): Likewise.
8726         (vec_initv16qi): Likewise.
8727         (vec_init<mode>): New.
8728
8729 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
8730
8731         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
8732
8733 2008-05-21  Tom Tromey  <tromey@redhat.com>
8734
8735         * ggc-zone.c (lookup_page_table_if_allocated): New function.
8736         (zone_find_object_offset): Likewise.
8737         (gt_ggc_m_S): Likewise.
8738         (highest_bit): Likewise.
8739         * ggc-page.c (gt_ggc_m_S): New function.
8740         * stringpool.c (string_stack): Remove.
8741         (init_stringpool): Update.
8742         (ggc_alloc_string): Use ggc_alloc.
8743         (maybe_delete_ident): New function.
8744         (ggc_purge_stringpool): Likewise.
8745         (gt_ggc_m_S): Remove.
8746         * ggc-common.c (ggc_protect_identifiers): New global.
8747         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
8748         ggc_protect_identifiers.
8749         * ggc.h (ggc_protect_identifiers): Declare.
8750         (gt_ggc_m_S): Update.
8751         (ggc_purge_stringpool): Declare.
8752         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
8753         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
8754         special case.
8755         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
8756
8757 2008-05-21  David S. Miller  <davem@davemloft.net>
8758
8759         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
8760         tmake_file.
8761
8762 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
8763
8764         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
8765         once finished.
8766
8767 2008-05-20  David Daney  <ddaney@avtrex.com>
8768
8769         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
8770         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
8771         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
8772         UNSPEC_UPDATE_GOT_VERSION): Renumber.
8773         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
8774         (atomic_hiqi_op): New define_code_iterator.
8775         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
8776         mips_expand_compare_and_swap_12.
8777         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
8778         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
8779         (sync_<optab><mode>, sync_old_<optab><mode>,
8780         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
8781         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
8782         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
8783         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
8784         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
8785         (test_and_set_12): New insn.
8786         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
8787         sync_new_<optab><mode>, sync_old_nand<mode>,
8788         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
8789         clobber to operand 0 for SI and DI mode insns.
8790         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
8791         mips_gen_fn_4): New typedefs.
8792         (mips_gen_fn_ptrs): Define new union type.
8793         (mips_expand_compare_and_swap_12): Remove declaration.
8794         (mips_expand_atomic_qihi): Declare function.
8795         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
8796         (mips_expand_atomic_qihi): ... this.  Use new generator function
8797         parameter.
8798         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
8799         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
8800         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
8801         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
8802         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
8803         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
8804         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
8805         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
8806         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
8807         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
8808         New macros.
8809
8810 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
8811
8812         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
8813         the missing break.
8814
8815 2008-05-20  Anatoly Sokolov <aesok@post.ru>
8816
8817         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
8818         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
8819         (avr_attribute_table): Add 'OS_main' function attribute.
8820         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
8821         functions with 'OS_main' attribute.
8822
8823 2008-05-20  Richard Guenther  <rguenther@suse.de>
8824
8825         PR tree-optimization/35204
8826         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
8827         helper, split out from ...
8828         (DFS): ... here.  Make the DFS walk non-recursive.
8829
8830 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
8831             Jan Sjodin  <jan.sjodin@amd.com>
8832
8833         PR tree-optimization/36181
8834         * tree-parloops.c (loop_has_vector_phi_nodes): New.
8835         (parallelize_loops): Don't parallelize when the loop has vector
8836         phi nodes.
8837
8838 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
8839             Sebastian Pop  <sebastian.pop@amd.com>
8840
8841         * tree-loop-linear.c (gather_interchange_stats): Look in the access
8842         matrix, and never look at the tree representation of the memory
8843         accesses.
8844         (linear_transform_loops): Computes parameters and access matrices.
8845         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
8846         when fails.
8847         (access_matrix_get_index_for_parameter): New.
8848         * tree-data-ref.h (struct access_matrix): New.
8849         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
8850         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
8851         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
8852         am_vector_index_for_loop): New.
8853         (struct data_reference): Add field access_matrix.
8854         (DR_ACCESS_MATRIX): New.
8855         (compute_data_dependences_for_loop): Update declaration.
8856         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
8857         * lambda.h (lambda_vector_vec_p): Declared.
8858         * lambda-code.c: Depend on pointer-set.h.
8859         (lambda_collect_parameters_from_af, lambda_collect_parameters,
8860         av_for_af_base, av_for_af, build_access_matrix,
8861         lambda_compute_access_matrices): New.
8862         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
8863
8864 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
8865
8866         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
8867         $SOURCEDIR/include.
8868
8869 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
8870             Sebastian Pop  <sebastian.pop@amd.com>
8871
8872         PR tree-optimization/36206
8873         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
8874         FOLD_CONVERSIONS.
8875         (instantiate_scev_1): Rename flags to fold_conversions.
8876         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
8877         outeside instantiation_loop.
8878         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
8879         (evolution_function_is_affine_or_constant_p): Removed.
8880         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
8881         instantiate_scev.
8882         (analyze_siv_subscript): Pass in the loop nest number.
8883         Call evolution_function_is_affine_in_loop instead of
8884         evolution_function_is_affine_p.
8885         (analyze_overlapping_iterations): Pass in the loop nest number.
8886
8887 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
8888             Sebastian Pop  <sebastian.pop@amd.com>
8889
8890         PR tree-optimization/36206
8891         * tree-chrec.h (chrec_fold_op): New.
8892         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
8893         and other trees.
8894
8895 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
8896
8897         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
8898         (DIRS_EQ): New.
8899         (remove_duplicates): Do not set inode on non-inode systems.
8900         Use DIRS_EQ.
8901
8902 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
8903
8904         * config.gcc (tm_file): Update comments about relative pathnames.
8905
8906 2008-05-20  Richard Guenther  <rguenther@suse.de>
8907
8908         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
8909         * tree-ssa-sccvn.c (process_scc): Likewise.
8910         * tree-ssa-sink.c (execute_sink_code): Likewise.
8911         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
8912         * tree-vrp.c (process_assert_insertions): Likewise.
8913         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
8914         (perform_tree_ssa_dce): Likewise.
8915         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
8916         (dump_dominator_optimization_stats): Likewise.
8917         * tree-vectorizer.c (vectorize_loops): Likewise.
8918
8919 2008-05-20  Richard Guenther  <rguenther@suse.de>
8920
8921         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
8922
8923 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
8924
8925         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
8926         (ix86_i386elf_return_in_memory): Likewise.
8927         (ix86_i386interix_return_in_memory): Likewise.
8928         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
8929         (SUBTARGET_RETURN_IN_MEMORY): New.
8930         * config/i386/i386elf.h: Likewise.
8931         * config/i386/ptx4-i.h: Likewise.
8932         * config/i386/sol2-10.h: Likewise.
8933         * config/i386/sysv4.h: Likewise.
8934         * config/i386/vx-common.h: Likewise.
8935         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
8936         * config/i386/i386.c (ix86_return_in_memory): Made static and
8937         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
8938         (ix86_i386elf_return_in_memory): Removed.
8939         (ix86_i386interix_return_in_memory): Removed.
8940         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
8941         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
8942
8943 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
8944
8945         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
8946
8947 2008-05-19  Xinliang David Li  <davidxl@google.com>
8948
8949         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
8950         * opts.c: Ditto.
8951         * common.opt: Ditto.
8952         * doc/invoke.texi: Ditto.
8953
8954 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
8955
8956         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
8957         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
8958
8959 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
8960
8961         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
8962         sizes of operand array from 8/4 to 4/2.
8963         (ix86_expand_vector_init_general): Change size of operand array
8964         from 32 to 16.  Remove op0, op1 and half_mode.
8965
8966 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
8967
8968         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
8969         (ix86_expand_vector_init_interleave): Likewise.
8970         (ix86_expand_vector_init_general): Use them.  Assert
8971         word_mode == SImode when n_words == 4.
8972
8973 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
8974
8975         * config/i386/i386.c (ix86_secondary_reload): New static function.
8976         (TARGET_SECONDARY_RELOAD): New define.
8977         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
8978         * config/i386/i386.md (reload_outqi): Remove.
8979
8980 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8981
8982         PR middle-end/35509
8983         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
8984         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
8985         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
8986         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
8987         (fold_builtin_1): Likewise.
8988         * builtins.def (BUILT_IN_ISINF_SIGN): New.
8989         c-common.c (check_builtin_function_arguments): Handle
8990         BUILT_IN_ISINF_SIGN.
8991         * doc/extend.texi: Document __builtin_isinf_sign.
8992         * fold-const.c (operand_equal_p): Handle COND_EXPR.
8993
8994 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
8995
8996         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
8997         EH cleanup at the end of the pass, search for those that have been
8998         turned into forwarder blocks and do the cleanup on their successor.
8999
9000 2008-05-18  Richard Guenther  <rguenther@suse.de>
9001
9002         * tree-cfg.c (verify_gimple_expr): Allow conversions from
9003         pointers to sizetype and vice versa.
9004
9005 2008-05-18 Xinliang David Li   <davidxl@google.com>
9006
9007         * gcc/tree-ssa-dce.c: Coding style fix.
9008         (check_pow): Documentation comment.
9009         (check_log): Documenation comment. Coding style fix.
9010         (is_unnecessary_except_errno_call): Ditto.
9011         (gen_conditions_for_pow): Ditto.
9012         (gen_conditions_for_log): Ditto.
9013         (gen_shrink_wrap_conditions): Ditto.
9014         (shrink_wrap_one_built_in_calls): Ditto.
9015         * gcc/doc/invoke.texi: Better documentation string.
9016         * ChangeLog: Fix wrong change log entries from
9017         May 17 checkin on function call DCE.
9018
9019 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
9020
9021         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
9022
9023 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
9024
9025         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
9026         * df-problems.c (simulation routines): Fixed block comment to
9027         properly say how to add forwards scanning functions.
9028
9029 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
9030
9031         * tree-inline.c (setup_one_parameter): Remove dead code.
9032
9033 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
9034
9035         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
9036         a BIT_AND_EXPR only for an INTEGER_TYPE.
9037
9038 2008-05-17 Xinliang David Li   <davidxl@google.com>
9039
9040         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
9041         (check_pow, check_log, is_unnecessary_except_errno_call): New
9042         functions to check for eliminating math functions that are pure
9043         except for setting errno.
9044         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
9045         general condition expressions for shrink-wrapping pow/log calls.
9046         (gen_shrink_wrap_conditions): Ditto.
9047         (shrink_wrap_one_built_in_call): Ditto.
9048         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
9049         (mark_operand_necessary): If debugging, output if OP is necessary.
9050         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
9051         unnecessary.
9052         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
9053         opt level >= 2.
9054         * gcc/common.opt: New user flag -ftree-builtin-dce.
9055         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
9056
9057 2008-05-16  David S. Miller  <davem@davemloft.net>
9058
9059         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
9060         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
9061
9062 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
9063
9064         PR target/36246
9065         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
9066
9067 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
9068
9069         * ifcvt.c (dead_or_predicable): Rename
9070         df_simulate_one_insn_backwards to df_simulate_one_insn.
9071         * recog.c (peephole2_optimize): Ditto.
9072         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
9073         Ditto.
9074         * df.h: Rename df_simulate_one_insn_backwards to
9075         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
9076         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
9077         scanning of defs and uses.
9078         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
9079         (df_simulate_one_insn_forwards): Removed.
9080
9081 2008-05-16  Doug Kwan  <dougkwan@google.com>
9082
9083         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
9084         QNaN & SNaN.
9085         (real_from_string): Handle NaNs and Inf as approriate.
9086
9087 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
9088
9089         * doc/gty.texi (Source Files Containing Type Information): Note
9090         that headers should appear first in the gtfiles list.
9091
9092 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
9093
9094         * tree.def (COND_EXEC): Properly documented this code.
9095
9096 2008-05-16  Diego Novillo  <dnovillo@google.com>
9097
9098         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
9099         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
9100         the new field.
9101
9102 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
9103
9104         * tree-ssa-dse (max_stmt_uid): Removed.
9105         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
9106         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
9107         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
9108         * function.h (cfun.last_stmt_uid): New field.
9109         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
9110         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
9111         New functions.
9112         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
9113         (create_stmt_ann): Initialize the ann->uid field.
9114         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
9115         with new calls.
9116         * tree-flow.h (renumber_gimple_stmt_uids): New function.
9117
9118 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
9119
9120         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
9121         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
9122         (init_empty_tree_cfg): Call it.
9123
9124 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
9125
9126         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
9127         Update all users.
9128
9129 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
9130
9131         * doc/invoke.text (-fdump-tree-*-verbose): New option.
9132         * tree-dump.c (dump_options): New verbose option.
9133         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
9134         Add verbose dump.
9135         * tree-pass.h (TDF_VERBOSE): New dump flag.
9136         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
9137         (tree-flow.h): Added include.
9138         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
9139
9140 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
9141
9142         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
9143
9144         From Jie Zhang  <jie.zhang@analog.com>
9145         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
9146         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
9147         mcpu=bf561-none and mcpu=bf561-0.2.
9148         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
9149         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
9150         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
9151         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
9152         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
9153         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
9154         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
9155         option.
9156         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
9157         (cputype_selected): Remove.
9158         (bfin_handle_option): Don't use cputype_selected.
9159         (override_options): When no mcpu option, enable all workarounds.
9160         Don't use bfin_workarounds.
9161         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
9162         processor type.
9163         (DEFAULT_CPU_TYPE): Don't define.
9164
9165 2008-05-16  Richard Guenther  <rguenther@suse.de>
9166
9167         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
9168         on deletion of the last stmt.
9169
9170 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
9171
9172         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
9173         V8HImode for SSE2 and V16QImode for SSE4.1.
9174
9175 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
9176
9177         * cgraph.h (compute_inline_parameters): Made public.
9178         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
9179         variable_generate_summary, function_write_summary,
9180         variable_write_summary, variable_read_summary.  Added generate_summary,
9181         write_summary, read_summary.
9182         * cgraphunit.c (cgraph_process_new_functions): Changed call from
9183         pass_ipa_inline.function_generate_summary, to
9184         compute_inline_parameters.
9185         * ipa-inline.c (compute_inline_parameters): Made public and added
9186         node parameter.
9187         (compute_inline_parameters_for_current): New function.
9188         (pass_inline_param): Now calls compute_inline_parameters_for_current.
9189         (inline_generate_summary): Removed parameter and made to loop over
9190         all cgraph nodes.
9191         (pass_ipa_inline): Updated for new IPA_PASS structure.
9192         * passes.c (execute_ipa_summary_passes): Now is called once per
9193         pass rather than once per node*pass.
9194
9195 2008-05-15  Anatoly Sokolov <aesok@post.ru>
9196
9197         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
9198         avr_have_mul_p, avr_asm_only_p): Remove variables.
9199         (avr_override_options): Remove initialization of removed variables.
9200         (avr_file_start):  Convert removed variables to fields of
9201         'struct base_arch_s *avr_current_arch'.
9202         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
9203         (AVR_HAVE_MUL): (Ditto.).
9204         (AVR_HAVE_MOVW): (Ditto.).
9205         (AVR_HAVE_LPMX): (Ditto.).
9206         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
9207         avr_asm_only_p): Remove declaration.
9208
9209 2008-05-15  Diego Novillo  <dnovillo@google.com>
9210
9211         * config/arm/arm.c (arm_return_in_memory): Fix return type.
9212         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
9213
9214 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
9215
9216         PR middle-end/36194
9217         * combine.c (check_conversion): Rename back to check_promoted_subreg.
9218         Don't call record_truncated_value from here.
9219         (record_truncated_value): Turn it into a for_each_rtx callback.
9220         (record_truncated_values): New function.
9221         (combine_instructions): Call note_uses with record_truncated_values.
9222         Change name of check_conversion to check_promoted_subreg.
9223
9224 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
9225
9226         * doc/sourcebuild.texi: Document support for torture tests.
9227
9228 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
9229
9230         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
9231         to alternative 4 of operand 2.
9232
9233 2008-05-15  Richard Guenther  <rguenther@suse.de>
9234
9235         * tree-pass.h (current_pass): Declare.
9236         (get_pass_for_id): Likewise.
9237         * passes.c (passes_by_id, passes_by_id_size): New globals.
9238         (set_pass_for_id): New function.
9239         (get_pass_for_id): Likewise.
9240         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
9241         (execute_function_todo): Flush per function statistics.
9242         * toplev.c (compile_file): Init statistics.
9243         (general_init): Do early statistics initialization.
9244         (finalize): Finish statistics.
9245         * statistics.h (statistics_early_init): Declare.
9246         (statistics_init): Likewise.
9247         (statistics_fini): Likewise.
9248         (statistics_fini_pass): Likewise.
9249         (statistics_counter_event): Likewise.
9250         (statistics_histogram_event): Likewise.
9251         * statistics.c: New file.
9252         * Makefile.in (OBJS-common): Add statistics.o.
9253         (statistics.o): Add dependencies.
9254         * doc/invoke.texi (-fdump-statistics): Document.
9255
9256         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
9257         (insert): Likewise.
9258         (execute_pre): Use statistics_counter_event.
9259         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
9260         (substitute_and_fold): Increment it.  Use statistics_counter_event.
9261
9262 2008-05-15  Diego Novillo  <dnovillo@google.com>
9263
9264         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
9265
9266         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
9267         * tree-ssa-alias.c (new_type_alias): Remove references to
9268         sub-variables from comment.
9269         * tree-ssa-operands.c (swap_tree_operands): Likewise.
9270
9271 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
9272
9273         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
9274         attribute to 1 only for insertps alternative.
9275
9276 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
9277
9278         * config/bfin/bfin.md (loadbytes): New pattern.
9279         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
9280         (bfin_init_builtins): Initialize it.
9281         (bdesc_1arg): Add it.
9282
9283 2008-05-15  Sa Liu  <saliu@de.ibm.com>
9284
9285         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
9286         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
9287         * testsuite/lib/target-supports.exp: Add
9288         check_effective_target_fortran_integer_16.
9289
9290 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
9291
9292         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
9293         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
9294         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
9295         (TARGET_RETURN_IN_MEMORY): Define.
9296
9297 2008-05-15  Richard Guenther  <rguenther@suse.de>
9298
9299         PR middle-end/36244
9300         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
9301         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
9302         represent unmodifiable vars.
9303
9304 2008-05-15  Richard Guenther  <rguenther@suse.de>
9305
9306         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
9307         INDIRECT_REF and TARGET_MEM_REF.
9308         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
9309         TARGET_MEM_REF.
9310
9311 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
9312             H.J. Lu  <hongjiu.lu@intel.com>
9313
9314         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
9315         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
9316         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
9317         insn alternatives.  Add missing alternatives.
9318         (*vec_concatv2di_rex64_sse4_1): Likewise.
9319         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
9320         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
9321         Require TARGET_SSE.
9322
9323 2008-05-15  Richard Guenther  <rguenther@suse.de>
9324
9325         PR tree-optimization/36009
9326         PR tree-optimization/36204
9327         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
9328         (determine_invariantness_stmt): Record the loop a store is
9329         always executed in.
9330         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
9331         dependency.
9332
9333 2008-05-15  Richard Guenther  <rguenther@suse.de>
9334
9335         PR tree-optimization/34330
9336         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
9337         through the pointer will alias the SMT.
9338
9339 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
9340
9341         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
9342
9343 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
9344
9345         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
9346
9347 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
9348             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
9349
9350         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
9351         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
9352         (vashl_optab): New optab for vector/vector shifts.
9353         (vashr_optab): Ditto.
9354         (vlshr_optab): Ditto.
9355         (vrotl_optab): Ditto.
9356         (vrotr_optab): Ditto.
9357         (optab_subtype): New enum for optab_for_tree_code call.
9358         (optab_for_tree_code): Add enum optab_subtype argument.
9359
9360         * optabs.c (optab_for_tree_code): Take an additional argument to
9361         distinguish between a vector shift by a scalar and vector shift by
9362         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
9363         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
9364         vector shift by a vector.
9365         (expand_widen_pattern_expr): Pass additional argument to
9366         optab_for_tree_code.
9367
9368         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
9369         vrotl_optab, vrotr_optab.
9370
9371         * expr.c (expand_expr_real_1): Update calls to
9372         optab_for_tree_code to distinguish between vector shifted by a
9373         scalar and vector shifted by a vector.
9374         * tree-vectorizer.c (supportable_widening_operation): Ditto.
9375         (supportable_narrowing_operation): Ditto.
9376         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
9377         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
9378         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
9379         (vect_create_epilog_for_reduction): Ditto.
9380         (vectorizable_reduction): Ditto.
9381         (vectorizable_operation): Ditto.
9382         (vect_strided_store_supported): Ditto.
9383         (vect_strided_load_supported): Ditto.
9384         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
9385         * expmed.c (expand_shift): Ditto.
9386
9387         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
9388         scalar type.
9389         (ashr@var{m}3): Ditto.
9390         (vashl@var{m}3): Document new vector/vector shift standard name.
9391         (vashr@var{m}3): Ditto.
9392         (vlshr@var{m}3): Ditto.
9393         (vrotl@var{m}3): Ditto.
9394         (vrotr@var{m}3): Ditto.
9395
9396         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
9397         (PPERM_INVERT): Ditto.
9398         (PPERM_REVERSE): Ditto.
9399         (PPERM_REV_INV): Ditto.
9400         (PPERM_ZERO): Ditto.
9401         (PPERM_ONES): Ditto.
9402         (PPERM_SIGN): Ditto.
9403         (PPERM_INV_SIGN): Ditto.
9404         (PPERM_SRC1): Ditto.
9405         (PPERM_SRC2): Ditto.
9406
9407         * config/i386/sse.md (mulv2di3): Add SSE5 support.
9408         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
9409         allows a memory operand to be the value being added, and split it
9410         to improve vectorization.
9411         (sse5_pmacsdqh_mem): Ditto.
9412         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
9413         (sse5_mulv2div2di3_high): Ditto.
9414         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
9415         (vec_pack_trunc_v4si): Ditto.
9416         (vec_pack_trunc_v2di): Ditto.
9417         (sse5_pcmov_<mode>): Remove code that tried to use use
9418         andps/andnps instead of pcmov.
9419         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
9420         pmacsdqh instructions.
9421         (vec_widen_smult_lo_v4si): Ditto.
9422
9423         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
9424         (PPERM_INVERT): Ditto.
9425         (PPERM_REVERSE): Ditto.
9426         (PPERM_REV_INV): Ditto.
9427         (PPERM_ZERO): Ditto.
9428         (PPERM_ONES): Ditto.
9429         (PPERM_SIGN): Ditto.
9430         (PPERM_INV_SIGN): Ditto.
9431         (PPERM_SRC1): Ditto.
9432         (PPERM_SRC2): Ditto.
9433         (ix86_expand_sse_movcc): Move the SSE5 test after the if
9434         true/false tests.
9435         (ix86_expand_int_vcond): If SSE5 generate all possible integer
9436         comparisons.
9437         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
9438         says ignore whether the last reference is a memory operand.
9439
9440 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
9441             Paolo Bonzini <bonzini at gnu dot org>
9442
9443         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
9444         shift patterns.
9445
9446         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
9447         (vlshr<mode>3): Rename from vlshr<mode>3.
9448         (vashr<mode>3): Rename from vashr<mode>3.
9449         (mulv4sf3): Change the names of vector shift patterns.
9450         (mulv4si3): Ditto.
9451         (negv4sf2): Ditt.
9452
9453         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
9454         shift insns.
9455
9456         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
9457         (SI_SHLHI): Ditto.
9458         (SI_SHL): Ditto.
9459         (SI_SHLI): Ditto.
9460         (SI_ROTH): Ditto.
9461         (SI_ROTHI): Ditto.
9462         (SI_ROT): Ditto.
9463         (SI_ROTI): Ditto.
9464         (SPU_RL_0): Ditto.
9465         (SPU_RL_1): Ditto.
9466         (SPU_RL_2): Ditto.
9467         (SPU_RL_3): Ditto.
9468         (SPU_RL_4): Ditto.
9469         (SPU_RL_5): Ditto.
9470         (SPU_RL_6): Ditto.
9471         (SPU_RL_7): Ditto.
9472         (SPU_SL_0): Ditto.
9473         (SPU_SL_1): Ditto.
9474         (SPU_SL_2): Ditto.
9475         (SPU_SL_3): Ditto.
9476         (SPU_SL_4): Ditto.
9477         (SPU_SL_5): Ditto.
9478         (SPU_SL_6): Ditto.
9479         (SPU_SL_7): Ditto.
9480
9481         * config/spu/spu.md (v): New iterator macro to add v for vector types.
9482         (floatunssidf2_internal): Change vector/vector shift names.
9483         (floatunsdidf2_internal): Ditto.
9484         (mulv8hi3): Ditto.
9485         (ashrdi3): Ditto.
9486         (ashrti3): Ditto.
9487         (cgt_df): Ditto.
9488         (cgt_v2df): Ditto.
9489         (dftsv): Ditto.
9490         (vashl<mode>3): Rename from ashl<mode>3.
9491         (vashr<mode>3): Rename from ashr<mode>3.
9492         (vlshr<mode>3): Rename from lshr<mode>3.
9493         (vrotl<mode>3): Rename from rotl<mode>3.
9494
9495 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
9496
9497         PR target/36224
9498         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
9499         multiply gives the wrong value when doing widening multiplies.
9500         (vec_widen_smult_lo_v4si): Ditto.
9501
9502 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
9503
9504         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
9505         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
9506         emit_library_call_value.
9507         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
9508         * tree.h (ECF_LIBCALL_BLOCK): Removed.
9509         * calls.c (initialize_argument_information, precompute_arguments,
9510         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
9511         (precompute_arguments): Removed flags parameter.
9512         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
9513
9514 2008-05-14  Richard Guenther  <rguenther@suse.de>
9515
9516         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
9517         Make sure to register the store if the use is a PHI_NODE.
9518
9519 2008-05-14  Olivier Hainque  <hainque@adacore.com>
9520
9521         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
9522         memory if the component is to be referenced in BLKmode according
9523         to get_inner_reference.
9524
9525 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
9526
9527         * calls.c (emit_library_call_value_1): Restore code clearing
9528         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
9529
9530 2008-05-14  Olivier Hainque  <hainque@adacore.com>
9531             Nicolas Roche  <roche@adacore.com>
9532
9533         * configure.ac: Add support for a "gcc_subdir" variable in
9534         config-lang.in, to denote a subdirectory where the language/GCC
9535         integration files are to be found.
9536         * configure: Regenerate.
9537
9538 2008-05-14  Ira Rosen  <irar@il.ibm.com>
9539
9540         PR tree-optimization/36098
9541         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
9542         value for the first load in the group in case of a gap.
9543         (vect_build_slp_tree): Check that there are no gaps in loads.
9544
9545 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
9546
9547         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
9548         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
9549         expand_copysign_bit, ): Change call to emit_no_conflict_block to
9550         emit_insn and remove unneeded code to construct extra args.
9551         (emit_no_conflict_block): Removed.
9552         * optabls.h: (emit_no_conflict_block): Removed.
9553         * cse.c (cse_extended_basic_block): Remove search for
9554         REG_NO_CONFLICT note.
9555         * global.c: Removed incorrect comment added in revision 117.
9556         * expr.c (convert_move): Change call to emit_no_conflict_block to
9557         emit_insn.
9558         * recog.c: Change comments so that they do not mention
9559         REG_NO_CONFLICT.
9560         * local_alloc.c (combine_regs): Removed last parameter.
9561         (no_conflict_p): Removed.
9562         (block_alloc): Removed note, no_conflict_combined_regno and set
9563         local vars. Removed all code to process REG_NO_CONFLICT blocks.
9564         (combine_regs): Removed already_dead and code to look for
9565         REG_NO_CONFLICT notes.
9566         * lower_subreg (remove_retval_note): Removed code to look for
9567         REG_NO_CONFLICT block.
9568         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
9569         (resolve_clobber): Remove code to process libcalls that have
9570         REG_NO_CONFLICT notes.
9571         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
9572         case.
9573         * combine.c (can_combine_p, distribute_notes):  Removed
9574         REG_NO_CONFLICT case.
9575         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
9576         to emit_insns.
9577         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
9578         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
9579         Ditto.
9580         * reg-notes.def (NO_CONFLICT): Removed.
9581
9582 2008-05-14  David S. Miller  <davem@davemloft.net>
9583
9584         * config/sparc/sparc.c (sparc_profile_hook): If
9585         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
9586         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
9587         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
9588
9589 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
9590
9591         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
9592
9593 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
9594
9595         PR target/36222
9596         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
9597         and op1 expansion before vector concat to have less live pseudos.
9598
9599 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
9600
9601         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
9602         ix86_expand_vector_set if supported.
9603
9604 2008-05-13  Diego Novillo  <dnovillo@google.com>
9605             Kenneth Zadeck  <zadeck@naturalbridge.com>
9606
9607         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
9608
9609         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
9610         phinodes_print_statistics, init_ssanames, fini_ssanames,
9611         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
9612         release_ssa_name, release_defs, replace_ssa_name_symbol,
9613         ssanames_print_statistics): Move ...
9614         * tree-flow.h: ... here.
9615         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
9616         Use FN instead of cfun.
9617         (make_ssa_name_fn): Rename from make_ssa_name.
9618         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
9619         * tree-flow-inline.h (make_ssa_name): Move from
9620         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
9621         * omp-low.c (expand_omp_parallel):
9622         * tree-flow-inline.h (redirect_edge_var_map_result):
9623         * tree-ssa.c (init_tree_ssa): Add argument FN.
9624         Use it instead of cfun.  Update all users.
9625
9626 2008-05-13  Tom Tromey  <tromey@redhat.com>
9627
9628         PR preprocessor/22168:
9629         * doc/cpp.texi (Top): Update menu.
9630         (Alternatives to Wrapper #ifndef): New node.
9631         (Other Directives): Document deprecation.
9632         (Obsolete Features): Remove menu.
9633         (Assertions): Merge node into Obsolete Features.
9634         (Obsolete once-only headers): Move earlier; rename to Alternatives
9635         to Wrapper #ifndef.
9636         * doc/cppopts.texi: Update.
9637         * c.opt (Wdeprecated): Enable for C and ObjC.
9638         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
9639         (C++ Dialect Options): Move -Wno-deprecated from here to...
9640         (Warning Options): ... here.
9641
9642 2008-05-13  Richard Guenther  <rguenther@suse.de>
9643
9644         PR middle-end/36227
9645         * fold-const.c (fold_sign_changed_comparison): Do not allow
9646         changes in pointer-ness.
9647
9648 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
9649
9650         PR target/24713
9651         * config/sh/sh.c (sh_expand_prologue): Don't clear
9652         RTX_FRAME_RELATED_P for push insns.
9653
9654 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
9655
9656         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
9657
9658 2008-05-12  Anatoly Sokolov <aesok@post.ru>
9659
9660         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
9661         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
9662         Use 'machine->is_leaf' instead of 'leaf_func_p'.
9663
9664 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
9665
9666         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
9667         (*vec_concatv4sf_sse): This.
9668         (*sse2_concatv2si): Renamed to ...
9669         (*vec_concatv2si_sse2): This.
9670         (*sse1_concatv2si): Renamed to ...
9671         (*vec_concatv2si_sse): This.
9672         (*vec_concatv2di_rex): Renamed to ...
9673         (*vec_concatv2di_rex64): This.
9674         (*vec_concatv2si_sse4_1): New.
9675         (*vec_concatv2di_rex64_sse4_1): Likewise.
9676
9677 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
9678
9679         PR rtl-optimization/36111
9680         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
9681         that was created for swappable operands.
9682
9683 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
9684
9685         PR ada/36001
9686         * Makefile.in: Substitute GNATMAKE and GNATBIND.
9687         * configure.ac: Add call to ACX_PROG_GNAT.
9688
9689 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
9690
9691         * optc-gen.awk: Fix comment typo.
9692
9693 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
9694
9695         * pretty-print.c (pp_integer_with_precision): Use
9696         HOST_LONG_LONG_FORMAT.
9697
9698 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
9699
9700         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
9701
9702 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
9703
9704         * config/i386/i386.c (bdesc_ptest): Removed.
9705         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
9706         (bdesc_args): Add __builtin_ia32_ptestz128,
9707         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
9708         (ix86_init_mmx_sse_builtins): Updated.
9709         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
9710         (ix86_expand_builtin): Updated.
9711
9712 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
9713
9714         * tree-cfg.c (valid_fixed_convert_types_p): New function.
9715         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
9716
9717 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
9718
9719         * value-prof.c (interesting_stringop_to_profile): Do not
9720         return early for BUILT_IN_MEMPCPY.
9721
9722 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
9723
9724         * calls.c (expand_call): Don't use callgraph to increase
9725         preferred_stack_boundary.
9726
9727         * cgraph.h (cgraph_rtl_info): Use unsigned on
9728         preferred_incoming_stack_boundary.
9729
9730         * final.c (rest_of_clean_state): Use unsigned on
9731         preferred_stack_boundary.
9732
9733 2008-05-09  Tom Tromey  <tromey@redhat.com>
9734
9735         PR preprocessor/22231:
9736         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
9737         proceeding.
9738
9739 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
9740
9741         PR tree-optimization/36129
9742         * tree-ssa-ccp.c: Include value-prof.h.
9743         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
9744         built-in function was folded to a constant.
9745         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
9746
9747 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
9748             Sebastian Pop  <sebastian.pop@amd.com>
9749
9750         * tree-scalar-evolution.c: Document instantiate_scev.
9751         (instantiate_parameters_1): Renamed instantiate_scev_1.
9752         Don't use the same loop for instantiation_loop and evolution_loop.
9753         (instantiate_scev): New.
9754         (instantiate_parameters): Moved...
9755         (resolve_mixers): Update call to instantiate_scev_1 to pass the
9756         same loop twice.  Maintains the semantics for this function.
9757         * tree-scalar-evolution.h (instantiate_scev): Declare.
9758         (instantiate_parameters): ...here.  Now static inline.
9759         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
9760         instead of resolve_mixers.
9761
9762 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
9763
9764         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
9765
9766 2008-05-09  Tomas Bily  <tbily@suse.cz>
9767
9768         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
9769         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
9770         * tree-ssa-structalias.c (get_constraint_for): Likewise.
9771         * c-common.c (c_common_truthvalue_conversion): Likewise.
9772         * tree-object-size.c (compute_object_offset): Likewise.
9773         * tree-inline.c (estimate_num_insns_1): Likewise.
9774         * varasm.c (const_hash_1, compare_constant, copy_constant)
9775         (compute_reloc_for_constant, output_addressed_constants)
9776         (initializer_constant_valid_p): Likewise.
9777         * c-omp.c (check_omp_for_incr_expr): Likewise.
9778         * gimplify.c (gimplify_expr): Likewise.
9779         * c-typeck.c (c_finish_return): Likewise.
9780         * tree-vectorizer.c (supportable_widening_operation)
9781         (supportable_narrowing_operation): Likewise.
9782         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
9783         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
9784         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
9785         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
9786         (descr_info_loc): Likewise.
9787         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
9788         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
9789         (fold_unary): Likewise.
9790         * builtins.c (get_pointer_alignment): Likewise.
9791         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
9792         (instantiate_parameters_1): Likewise.
9793         * tree.c (expr_align, stabilize_reference): Likewise.
9794         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
9795         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
9796         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
9797         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
9798         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
9799         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
9800         Likewise.
9801         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
9802         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
9803         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
9804         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
9805         (forward_propagate_comparison)
9806         (tree_ssa_forward_propagate_single_use_vars): Likewise.
9807         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
9808         * emit-rtl.c (component_ref_for_mem_expr)
9809         (set_mem_attributes_minus_bitpos): Likewise.
9810         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
9811         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
9812         Likewise.
9813         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
9814         (build_function_call, pointer_diff, build_compound_expr)
9815         (c_finish_return): Likewise.
9816         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
9817         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
9818         Likewise.
9819         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
9820         * expr.c (is_aligning_offset): Likewise.
9821         * tree-ssa-alias.c (is_escape_site): Likewise.
9822         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
9823         (check_all_va_list_escapes): Likewise.
9824         * tree-ssa-loop-ivopts.c (determine_base_object)
9825         (determine_common_wider_type): Likewise.
9826         * dojump.c (do_jump): Likewise.
9827         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
9828         * tree-gimple.c (is_gimple_cast): Likewise.
9829         * fold-const.c (decode_field_reference, )
9830         (fold_sign_changed_comparison, fold_unary, fold_comparison)
9831         (fold_binary): Likewise.
9832         * tree-ssa-alias-warnings.c (find_alias_site_helper)
9833         (already_warned_in_frontend_p): Likewise.
9834         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
9835         * tree.c (really_constant_p, get_unwidened): Likewise.
9836         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
9837         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
9838         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
9839         Likewise.
9840         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
9841         CONVERT_EXPR_P.
9842         (CONVERT_EXPR_P): Define.
9843         (CASE_CONVERT): Define.
9844
9845 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
9846
9847         PR middle-end/36117
9848         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
9849         (delete_unmarked_insns): When deleting a call, call
9850         delete_unreachable_blocks.
9851         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
9852         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
9853
9854 2008-05-08  Richard Guenther  <rguenther@suse.de>
9855
9856         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
9857         (-ftree-salias): Likewise.
9858         (salias-max-implicit-fields): Remove param documentation.
9859         (salias-max-array-elements): Likewise.
9860         * tree-pass.h (pass_create_structure_vars): Remove.
9861         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
9862         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
9863         * tree-ssa-alias.c (create_structure_vars): Remove.
9864         (gate_structure_vars): Likewise.
9865         (pass_create_structure_vars): Likewise.
9866         (gate_build_alias): Likewise.
9867         (pass_build_alias): Adjust to run always and dump the function.
9868         * common.opt (ftree-salias): Hide.
9869         * passes.c (init_optimization_passes): Remove
9870         pass_create_structure_vars, adjust comment.
9871         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
9872         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
9873         * opts.c (decode_options): Do not set flag_tree_salias.
9874         (common_handle_option): Add OPT_ftree_salias to the backward
9875         compatibility section.
9876
9877 2008-05-08  Richard Guenther  <rguenther@suse.de>
9878
9879         * tree-flow-inline.h (var_can_have_subvars): Move ...
9880         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
9881         * tree-flow.h (var_can_have_subvars): Remove.
9882         (push_fields_onto_fieldstack): Remove.
9883         (sort_fieldstack): Likewise.
9884         (struct fieldoff): Move ...
9885         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
9886         alias_set and base_for_components fields.
9887         (sort_fieldstack): Make static.
9888         (push_fields_onto_fieldstack): Likewise.  Remove code that
9889         handles anything but RECORD_TYPEs.  Remove alias_set and
9890         base_for_components handling.
9891         (create_variable_info_for): Adjust.
9892
9893 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
9894
9895         * common.opt (Wframe-larger-than=): Shorten the help message
9896         to one line.
9897         * doc/invoke.texi (Wframe-larger-than=): Add more description.
9898
9899 2008-05-08  Rafael Espindola  <espindola@google.com>
9900
9901         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
9902         trap.
9903         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
9904         trap and that both operands are gimple values.
9905         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
9906         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
9907         is a fp operation.
9908
9909 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
9910
9911         * read-rtl.c (join_c_conditions): Return the first string if the
9912         two strings are equal.
9913
9914 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
9915
9916         * gensupport.h (pred_data): Add a "num_codes" field.
9917         (add_predicate_code): Declare.
9918         * gensupport.c (add_predicate_code): New function.
9919         (std_pred_table): Add an "allows_const_p" field.
9920         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
9921         Remove the (incomplete) list of such codes from the codes field.
9922         (init_predicate_table): Use add_predicate_code.  Add all
9923         RTX_CONST_OBJs if allows_const_p is true.
9924         * genrecog.c (process_define_predicate): Use add_predicate_code.
9925
9926 2008-05-08  David Daney  <ddaney@avtrex.com>
9927             Richard Sandiford  <rsandifo@nildram.co.uk>
9928
9929         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
9930         special case of constant zero operands.
9931         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
9932         old and new values.  Special case constant zero values.
9933         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
9934         fails.
9935         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
9936         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
9937
9938 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
9939
9940         PR target/36090
9941         * simplify-rtx.c (simplify_plus_minus): Create CONST of
9942         similar RTX_CONST_OBJ before CONST_INT.
9943
9944 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
9945
9946         * stmt.c (expand_stack_restore): Change sa mode if needed.
9947
9948 2008-05-08  Richard Guenther  <rguenther@suse.de>
9949
9950         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
9951         return type to bool.
9952         (ix86_sol10_return_in_memory): Likewise.
9953         (ix86_i386elf_return_in_memory): Likewise.
9954         (ix86_i386interix_return_in_memory): Likewise.
9955         * config/i386/i386.c (ix86_return_in_memory): Likewise.
9956         (ix86_sol10_return_in_memory): Likewise.
9957         (ix86_i386elf_return_in_memory): Likewise.
9958         (ix86_i386interix_return_in_memory): Likewise.
9959
9960 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
9961
9962         PR bootstrap/36180
9963         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
9964         fndecl argument.
9965         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
9966         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
9967         declared in front.
9968
9969 2008-05-08  Richard Guenther  <rguenther@suse.de>
9970
9971         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
9972         * tree-data-ref.h (struct dr_alias): Remove subvars field.
9973         (DR_SUBVARS): Remove.
9974         * tree-dfa.c (dump_subvars_for): Remove.
9975         (debug_subvars_for): Likewise.
9976         (dump_variable): Do not dump subvars.
9977         (remove_referenced_var): Do not remove subvars.
9978         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
9979         (lookup_subvars_for_var): Remove.
9980         (get_subvars_for_var): Likewise.
9981         (get_subvars_at): Likewise.
9982         (get_first_overlapping_subvar): Likewise.
9983         (overlap_subvar): Likewise.
9984         * tree-flow.h (subvar_t): Remove.
9985         (struct var_ann_d): Remove subvars field.
9986         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
9987         argument.  Remove special handling of SFTs.
9988         (compute_tag_properties): Likewise.
9989         (set_initial_properties): Likewise.
9990         (compute_call_clobbered): Likewise.
9991         (count_mem_refs): Likewise.
9992         (compute_memory_partitions): Likewise.
9993         (compute_flow_insensitive_aliasing): Likewise.
9994         (setup_pointers_and_addressables): Likewise.
9995         (new_type_alias): Likewise.
9996         (struct used_part): Remove.
9997         (used_portions): Likewise.
9998         (struct used_part_map): Likewise.
9999         (used_part_map_eq): Likewise.
10000         (used_part_map_hash): Likewise.
10001         (free_used_part_map): Likewise.
10002         (up_lookup): Likewise.
10003         (up_insert): Likewise.
10004         (get_or_create_used_part_for): Likewise.
10005         (create_sft): Likewise.
10006         (create_overlap_variables_for): Likewise.
10007         (find_used_portions): Likewise.
10008         (create_structure_vars): Likewise.
10009         * tree.def (STRUCT_FIELD_TAG): Remove.
10010         * tree.h (MTAG_P): Adjust.
10011         (struct tree_memory_tag): Remove base_for_components and
10012         unpartitionable flags.
10013         (struct tree_struct_field_tag): Remove.
10014         (SFT_PARENT_VAR): Likewise.
10015         (SFT_OFFSET): Likewise.
10016         (SFT_SIZE): Likewise.
10017         (SFT_NONADDRESSABLE_P): Likewise.
10018         (SFT_ALIAS_SET): Likewise.
10019         (SFT_UNPARTITIONABLE_P): Likewise.
10020         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
10021         (union tree_node): Remove sft field.
10022         * alias.c (get_alias_set): Remove special handling of SFTs.
10023         * print-tree.c (print_node): Remove handling of SFTs.
10024         * tree-dump.c (dequeue_and_dump): Likewise.
10025         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
10026         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
10027         * tree-predcom.c (set_alias_info): Do not set subvars.
10028         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
10029         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
10030         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
10031         (add_vars_for_offset): Remove.
10032         (add_virtual_operand): Remove special handling of SFTs.
10033         (add_call_clobber_ops): Likewise.
10034         (add_call_read_ops): Likewise.
10035         (get_asm_expr_operands): Likewise.
10036         (get_modify_stmt_operands): Likewise.
10037         (get_expr_operands): Likewise.
10038         (add_to_addressable_set): Likewise.
10039         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
10040         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
10041         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
10042         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
10043         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
10044         (tree_node_structure): Likewise.
10045         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
10046         handling of SFTs.
10047         (find_what_p_points_to): Likewise.
10048
10049 2008-05-08  Sa Liu  <saliu@de.ibm.com>
10050
10051         * config/spu/spu.md: Fixed subti3 pattern.
10052
10053 2008-05-08  Richard Guenther  <rguenther@suse.de>
10054
10055         PR middle-end/36154
10056         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
10057         sure to create a representative for trailing arrays for PTA.
10058
10059 2008-05-08  Richard Guenther  <rguenther@suse.de>
10060
10061         PR middle-end/36172
10062         * fold-const.c (operand_equal_p): Two objects which types
10063         differ in pointerness are not equal.
10064
10065 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
10066
10067         * calls.c (compute_argument_block_size): Add argument tree fndecl.
10068         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
10069         (emit_library_call_value_1): Add new variable fndecl initialized by
10070         NULL_TREE. It should be the decl type of orgfun, but this information
10071         seems not to be available here, so it uses the default calling abi.
10072         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
10073         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
10074         by TARGET_RETURN_IN_MEMORY.
10075         * config/i386/i386-interix.h: Likewise.
10076         * config/i386/i386.h: Likewise.
10077         * config/i386/i386elf.h: Likewise.
10078         * config/i386/ptx4-i.h: Likewise.
10079         * config/i386/sol2-10.h: Likewise.
10080         * config/i386/sysv4.h: Likewise.
10081         * config/i386/vx-common.h: Likewise.
10082         * config/cris/cris.h: Removed #if 0 clause.
10083         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
10084         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
10085         argument.
10086         (ix86_sol10_return_in_memory): Likewise.
10087         (ix86_i386elf_return_in_memory): New.
10088         (ix86_i386interix_return_in_memory): New.
10089         * config/mt/mt-protos.h (mt_return_in_memory): New.
10090         * config/mt/mt.c: Likewise.
10091         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
10092         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
10093         * config/bfin/bfin.h: Likewise.
10094         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
10095         argument.
10096         * config/bfin/bfin.c: Likewise.
10097         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
10098         * config/alpha/unicosmk.h: Likewise.
10099         * config/i386/cygming.h: Likewise.
10100         * config/iq2000/iq2000.h: Likewise.
10101         * config/mips/mips.h: Likewise.
10102         * config/mn10300/mn10300.h: Likewise.
10103         * config/rs6000/rs6000.h: Likewise.
10104         * config/score/score.h: Likewise.
10105         * config/spu/spu.h: Likewise.
10106         * config/v850/v850.h: Likewise.
10107         * defaults.h: Likewise.
10108         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
10109         * expr.c (emit_block_move): Adjust use of
10110         OUTGOING_REG_PARM_STACK_SPACE.
10111         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
10112         OUTGOING_REG_PARM_STACK_SPACE.
10113         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
10114
10115 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
10116
10117         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
10118         on OMP_RETURN for OMP_FOR.
10119
10120         PR debug/35896
10121         * dwarf2out.c (dw_expand_expr, common_check): Removed.
10122         (fortran_common): New function.
10123         (gen_variable_die): Call fortran_common instead of common_check,
10124         adjust for it returning tree instead of rtx.  Formatting.
10125
10126 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
10127
10128         PR rtl/7335
10129         PR rtl/33826
10130         * see.c (see_copy_insn): Copy new pure const attributes for new call.
10131         * c-decl.c (merge_decls): Ditto.
10132         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
10133         to RTL_CONST_OR_PURE_CALL_P.
10134         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
10135         Initialized DECL_LOOPING_CONST_PURE.
10136         (process_call_operands): Set tree_side_effects properly.
10137         * tree.h (TREE_READONLY_DECL_P): Removed.
10138         (DECL_IS_PURE): Renamed to DECL_PURE_P.
10139         (DECL_LOOPING_OR_CONST_P): New macro.
10140         (struct tree_function_decl): Added looping_const_or_pure_p.
10141         (ECF_*) Renumbered.
10142         (ECF_LOOPING_OR_CONST_P): New macro.
10143         * rtlanal.c (pure_const_p): Removed.
10144         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
10145         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
10146         to RTL_CONST_CALL_P.
10147         * ipa-pure-const.c (pure_const_state_e): Added looping field.
10148         (check_decl, check_tree, check_call, scan_function): Initialize
10149         looping.
10150         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
10151         (static_execute): Set looping true for recursive functions.
10152         Undo setting state to IPA_NEITHER for recursive functions.
10153         * cse.c (cse_insn):
10154         * ifcvt.c (noce_can_store_speculate_p): Changed
10155         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
10156         RTL_CONST_OR_PURE_CALL_P.
10157         * dse.c (scan_insn): Ditto.
10158         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
10159         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
10160         RTL_CONST_OR_PURE_CALL_P.
10161         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
10162         pure_call_p to RTL_CONST_CALL_P.
10163         * gimplify.c (gimplify_call_expr): Clear side effects for
10164         non-looping pure and constant calls.
10165         * calls.c (emit_call_1): Set rtl flags from ecf flags.
10166         (flags_from_decl_or_type): Set ecf flags from decl flags.
10167         (initialize_argument_information): Turn off
10168         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
10169         Change const to pure if callee_copies is true rather than just
10170         turning off const.
10171         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
10172         way of marking pure calls.
10173         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
10174         Remove hack that was supposed to fix pr7335 and remove old
10175         way of marking pure calls.
10176         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
10177         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
10178         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
10179         RTL_CONST_OR_PURE_CALL_P.
10180         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
10181         * loop-invariant.c (find_exits, find_invariant_bb): Changed
10182         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
10183         * sched-deps.c (schedule_analyze): Ditto.
10184         * rtl.h (struct rtx_def): Use call field, unchanging field, and
10185         return_val field of calls to represent pure and const function info.
10186         (CONST_OR_PURE_CALL_P): Deleted macro.
10187         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
10188         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
10189         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
10190         TREE_READONLY.
10191         * tree-optimize.c (execute_fixup_cfg): Added test for
10192         ECF_LOOPING_CONST_OR_PURE.
10193         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
10194         DECL_PURE_P.
10195         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
10196         effects for looping pure or const calls.
10197         (verify_gimple_expr): Added verification code.
10198         * config/alpha/alpha.c (alpha_legitimize_address,
10199         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
10200         RTL_CONST_CALL_P.
10201         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
10202         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
10203         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
10204         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
10205         RTL_CONST_OR_PURE_CALL_P.
10206         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
10207         and const calls to be deleted.
10208
10209 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
10210
10211         PR target/35714
10212         * config/i386/mmx.md (mmx_subv2sf3): New expander.
10213         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
10214         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
10215         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
10216         to handle nonimmediate operands.
10217         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
10218         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
10219         to handle nonimmediate operands.
10220         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
10221         (mmx_pmulhrwv4hi3): New expander.  Use
10222         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10223         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
10224         (sse2_umulv1siv1di3): New expander.  Use
10225         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10226         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
10227         (mmx_eq<mode>3): New expander.  Use
10228         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10229         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
10230         (mmx_uavgv8qi3): New expander.  Use
10231         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10232         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
10233         (mmx_uavgv4hi3): New expander.  Use
10234         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10235
10236         * config/i386/sse.md
10237         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
10238         to handle nonimmediate operands.
10239         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
10240         to handle nonimmediate operands.
10241         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
10242         to handle nonimmediate operands.
10243         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
10244         to handle nonimmediate operands.
10245         (sse2_unpckhpd_exp): New expander.  Use
10246         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10247         (sse2_unpcklpd_exp): New expander.  Use
10248         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10249         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
10250         to handle nonimmediate operands.
10251         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
10252         to handle nonimmediate operands.
10253         (*sse2_<plusminus_insn><mode>3): Rename from
10254         sse2_<plusminus_insn><mode>3 insn pattern.
10255         (sse2_<plusminus_insn><mode>3): New expander.  Use
10256         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10257         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
10258         (sse2_umulv2siv2di3): New expander.  Use
10259         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10260         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
10261         (sse4_1_mulv2siv2di3): New expander.  Use
10262         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10263         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
10264         (sse2_pmaddwd): New expander.  Use
10265         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10266         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
10267         (sse2_eq<mode>3): New expander.  Use
10268         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10269         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
10270         (sse4_1_eqv2di3): New expander.  Use
10271         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10272         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
10273         (sse2_uavgv16qi3): New expander.  Use
10274         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10275         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
10276         (sse2_uavgv16qi3): New expander.  Use
10277         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10278         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
10279         (sse2_uavgv8hi3): New expander.  Use
10280         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10281         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
10282         (ssse3_pmulhrswv8hi3): New expander.  Use
10283         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10284         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
10285         (ssse3_pmulhrswv4hi3): New expander.  Use
10286         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10287
10288         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
10289         (<sse>_vmmul<mode>3): Ditto.
10290         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
10291         (divv2df3): Ditto.
10292         (ssse3_pmaddubsw128): Use register_operand for operand 1.
10293         (ssse3_pmaddubsw): Ditto.
10294
10295         * config/i386/i386.c (struct_builtin_description)
10296         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
10297         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
10298         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
10299         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
10300         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
10301         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
10302         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
10303         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
10304         (ix86_fixup_binary_operands): Assert that src1
10305         and src2 must have the same mode when swapped.
10306         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
10307         and ix86_binary_operator_ok.  Do not force operands in registers
10308         when optimizing.
10309
10310 2008-05-07  Jan Hubicka  <jh@suse.cz>
10311
10312         * cgraph.c (dump_cgraph_node): Update.
10313         * cgraph.h (cgraph_local_info): Break out inline summary.
10314         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
10315         hook.
10316         * ipa-inline (inline_summary): New accestor function.
10317         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
10318         cgraph_decide_inlining, compute_inline_parameters): Update.
10319         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
10320
10321 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
10322
10323         Cleanup ColdFire scheduling support and add V4 pipeline model.
10324
10325         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
10326         (define_attr cpu): Add cfv4 value.
10327         (define_attr type, define_attr type1): Merge into a single 'type'
10328         attribute.  Update all uses.
10329         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
10330         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
10331         Update all uses.
10332         (define_attr opx_mem, define_attr opy_mem): Remove.
10333         (define_attr op_mem): Clean up, update comment.
10334         (define_attr size): Use specific values instead of general int.
10335         (define_attr guess, define_attr split): Remove.  Update all uses.
10336         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
10337         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
10338         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
10339         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
10340         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
10341         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
10342         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
10343         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
10344         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
10345         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
10346         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
10347         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
10348         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
10349         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
10350         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
10351         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
10352         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
10353         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
10354         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
10355         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
10356         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
10357         Update or set attributes.
10358         (stack_tie): New fake instruction.
10359
10360         * config/m68k/m68k.h (TUNE_CFV4): New macro.
10361         (m68k_sched_attr_size): Update declaration.
10362         (m68k_sched_attr_type2): Remove.
10363         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
10364         Declare new bypass predicates.
10365
10366         * config/m68k/m68k.c (m68k_sched_issue_rate,
10367         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
10368         implementations.
10369         (TARGET_SCHED_ISSUE_RATE,
10370         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
10371         (override_options): Handle scheduling for ColdFire V4 core.
10372         (m68k_expand_prologue): Emit stack_tie.
10373         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
10374         'OP_TYPE_FPN'.  Update all uses.
10375         (sched_guess_p): Remove.
10376         (sched_address_type): Handle symbolic addresses.
10377         (sched_get_operand): New static function.
10378         (sched_operand_type): Merge into sched_attr_op_type.
10379         (sched_attr_op_type): Handle FP registers, handle quick constants,
10380         update.
10381         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
10382         (m68k_sched_attr_size): Update.  Move logic to ...
10383         (sched_get_attr_size_int): New static function.
10384         (sched_get_opxy_mem_type): New static function.
10385         (m68k_sched_attr_op_mem): Update.
10386         (m68k_sched_attr_type2): Remove.
10387         (sched_cfv4_bypass_data): New static variable.
10388         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
10389         (m68k_sched_issue_rate): Implement scheduler hook.
10390         (struct _sched_ib: enabled_p): New field.
10391         (m68k_sched_variable_issue): Update.  Handle V4.
10392         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
10393         sched_dump_class_func_t, sched_dump_split_class,
10394         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
10395         sched_dump_dfa_class, m68k_sched_dump): Remove.
10396         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
10397         hook.
10398         (m68k_sched_init_global): Remove statisctics dumping, introduce
10399         sanity check that all instructions have pipeline reservations.  Handle
10400         ColdFire V4 core.
10401         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
10402         Handle ColdFire V4 core.
10403         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
10404         New static functions.
10405         (m68k_sched_address_bypass_p): New bypass predicate.
10406         (sched_get_indexed_address_scale): New static function.
10407         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
10408
10409         * cf.md: Update comments.
10410         (define_attr type2): Remove.  Use 'type' attribute instead.
10411         Update all uses.
10412         (cf_ib): Rename to cfv123_ib.  Update all uses.
10413         (cf_oep): Rename to cfv123_oep.  Update all uses.
10414         (cf_chr): Rename to cfv123_chr.  Update all uses.
10415         (cf_mem): Rename to cfv123_mem.  Update all uses.
10416         (cf_mac): Move to more appropriate place.
10417         (cfv123_guess): New automaton and cpu_unit.
10418         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
10419         Update uses of 'size' attribute.  Handle before reload scheduling.
10420         (cfv123_guess): New dummy reservation for unhandled instructions.
10421         (cfv4_*): Pipeline description of ColdFire V4 core.
10422         (ignore): New reservation to handle 'ignore' type.
10423
10424 2008-05-07  Ian Lance Taylor  <iant@google.com>
10425
10426         PR middle-end/36013
10427         * gimplify.c (find_single_pointer_decl_1): Don't look through
10428         indirections.
10429         (find_single_pointer_decl): Adjust comments.
10430
10431 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
10432
10433         PR middle-end/36137
10434         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
10435         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
10436
10437         PR middle-end/36106
10438         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
10439         integral type rather than floating point, then VIEW_CONVERT_EXPR
10440         to the floating point type.
10441
10442 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
10443
10444         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
10445         TFmode op0 to register.
10446
10447 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
10448
10449         * c-decl.c (grokdeclarator): Comment typo.
10450
10451 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
10452
10453         * tree-flow.h: Remove prototype for computed_goto_p.
10454         * tree-cfg.c (computed_goto_p): Make static.
10455
10456 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
10457
10458         PR target/35657
10459         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
10460         (contains_aligned_value_p): This.  Handle _Decimal128.
10461         (ix86_function_arg_boundary): Only align _Decimal128 to its
10462         natural boundary and handle it properly.
10463
10464 2008-05-06  Martin Jambor  <mjambor@suse.cz>
10465
10466         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
10467         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
10468         (ipcp_method_set_orig_node): Removed.
10469         (ipcp_cval_get_cvalue_type): Removed.
10470         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
10471         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
10472         (ipcp_cval_set_cvalue_type): Removed.
10473         (ipcp_cval_get_cvalue): Removed.
10474         (ipcp_cval_set_cvalue): Removed.
10475         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
10476         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
10477         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
10478         (ipcp_cval_meet): Renamed to ipa_lattice_meet
10479         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
10480         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
10481         (ipcp_get_ith_lattice): Changed parameters.
10482         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
10483         (ipcp_lattice_from_jfunc): Changed parameters.
10484         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
10485         (ipcp_method_cval_print): Added temporary variable info.
10486         (ipcp_redirect): Removed already unused local variable caller.
10487         (ipcp_redirect): New temporary variable orig_callee_info
10488         (ipcp_redirect): Removed newly unused local variable callee.
10489         (ipcp_redirect): Removed (a bit confusing) local variable type.
10490         (ipcp_insert_stage): Added local variable info.
10491         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
10492         renamed too
10493         (ipcp_formal_create): Removed.
10494         (ipcp_method_cval_set): Removed.
10495         (ipcp_propagate_stage): Renamed lattice variables.
10496         (ipcp_method_cval_set_cvalue_type): Removed.
10497         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
10498         (ipcp_print_all_lattices): Changed printed strings to refer to
10499         lattices rather than cvals.
10500         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
10501         (ipcp_propagate_const): Changed formal parameters.
10502         (build_const_val): Changed formal parameters.
10503         (ipcp_insert_stage): Removed useless variable cvalue
10504         (build_const_val): Changed formal parameters.
10505         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
10506         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
10507         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
10508         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
10509         (ipcp_print_func_profile_counts): Changed string from "method" to
10510         "function"
10511         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
10512         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
10513         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
10514         (ipcp_structures_print): Renamed to ipcp_print_all_structures
10515         (ipcp_profile_print): Renamed to ipcp_print_profile_data
10516         (ipcp_lat_is_const): Changed parameters and made inline.
10517         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
10518         (ipcp_redirect): Renamed to ipcp_need_redirect_p
10519         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
10520         the predicate condition directly
10521         (ipcp_propagate_stage): Added local variable args. Removed local
10522         variable callee.  (Both are mere code simplifications.)
10523         (ipcp_method_dont_insert_const): Renamed to
10524         ipcp_node_not_modifiable_p.
10525         (ipcp_node_not_modifiable_p): Made inline.
10526         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
10527         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
10528         (ipcp_print_all_lattices): Removed variable cvalue
10529         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
10530         Updated comments.
10531
10532 2008-05-06  Olivier Hainque  <hainque@adacore.com>
10533
10534         * tree-sra.c (try_instantiate_multiple_fields): Early return
10535         if field has POINTER_TYPE.
10536
10537 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
10538
10539         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
10540         by using 'q' specifier for instruction.
10541         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
10542
10543 2008-05-06  Anatoly Sokolov <aesok@post.ru>
10544
10545         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
10546         Change mode of zero_extract from QImode to HImode.
10547         (sign bit tests peepholes): (Ditto.).
10548
10549 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
10550
10551         * config/i386/mmx.md: Remove double backslashes from asm templates.
10552         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
10553         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
10554         to handle nonimmediate operands.
10555         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
10556         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
10557         to handle nonimmediate operands.
10558         (*mmx_<code>v2sf3_finite): New insn pattern.
10559         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
10560         (mmx_<code>v2sf3): New expander.  Use
10561         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10562         (mmx_<plusminus_insn><mode>3): New expander.  Use
10563         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10564         (*mmx_<plusminus_insn><mode>3): New insn pattern.
10565         (mmx_add<mode>3): Removed.
10566         (mmx_ssadd<mode>3): Ditto.
10567         (mmx_usadd<mode>3): Ditto.
10568         (mmx_sub<mode>3): Ditto.
10569         (mmx_sssub<mode>3): Ditto.
10570         (mmx_ussub<mode>3): Ditto.
10571         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
10572         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
10573         to handle nonimmediate operands.
10574         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
10575         insn pattern.
10576         (mmx_smulv4hi3_highpart): New expander.  Use
10577         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10578         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
10579         insn pattern.
10580         (mmx_umulv4hi3_highpart): New expander.  Use
10581         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10582         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
10583         (mmx_<code>v4hi3): New expander.  Use
10584         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10585         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
10586         (mmx_<code>v8qi3): New expander.  Use
10587         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10588         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
10589         (mmx_<code><mode>3): New expander.  Use
10590         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10591
10592 2008-05-05  Jan Hubicka  <jh@suse.cz>
10593
10594         PR tree-optimization/36118
10595         * passes.c (pass_init_dump_file): Fix dump header.
10596
10597 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10598
10599         PR middle-end/36141
10600         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
10601         VCE for function decls.
10602
10603 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
10604
10605         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
10606
10607 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
10608
10609         * config/i386/i386.md (sat_plusminus): New.
10610         (plusminus_insn): Likewise.
10611         (plusminus_mnemonic): Likewise.
10612         (addsub): Removed.
10613         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
10614         (*<addsub><mode>3_cc_overflow): Renamed to ...
10615         (*<plusminus_insn><mode>3_cc_overflow): This.
10616         (*<addsub>si3_zext_cc_overflow): Renamed to ...
10617         (*<plusminus_insn>si3_zext_cc_overflow): This.
10618
10619         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
10620         (<plusminus_insn><mode>3): This.
10621         (*<addsub><mode>3): Renamed to ...
10622         (*<plusminus_insn><mode>3): This.
10623         (<sse>_vm<addsub><mode>3): Renamed to ...
10624         (<sse>_vm<plusminus_insn><mode>3): This.
10625         (sse3_h<addsub>v4sf3): Renamed to ...
10626         (sse3_h<plusminus_insn>v4sf3): This.
10627         (sse3_h<addsub>v2df3): Renamed to ...
10628         (sse3_h<plusminus_insn>v2df3): This.
10629         (<plusminus_insn><mode>3): New.
10630         (*<plusminus_insn><mode>3): Likewise.
10631         (sse2_<plusminus_insn><mode>3): Likewise.
10632         (add<mode>): Removed.
10633         (*add<mode>3): Likewise.
10634         (sse2_ssadd<mode>3): Likewise.
10635         (sse2_usadd<mode>3): Likewise.
10636         (sub<mode>3): Likewise.
10637         (*sub<mode>3): Likewise.
10638         (sse2_sssub<mode>3): Likewise.
10639         (sse2_ussub<mode>3): Likewise.
10640
10641 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
10642
10643         * gthr-single.h: Add in required interface elements as per gthr.h.
10644         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
10645         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
10646         Generalize UNUSED macro.
10647         (__gthread_once): Add.
10648         (__gthread_key_create): Add.
10649         (__gthread_key_delete): Add.
10650         (__gthread_getspecific): Add.
10651         (__gthread_setspecific): Add.
10652
10653 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
10654
10655         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
10656         the same size types for the indirect reference on the rhs, then
10657         create a VCE.
10658
10659 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
10660
10661         * config/i386/i386.md
10662         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
10663         one insn template instead of template series.
10664         (*xordi_1_rex64): Ditto.
10665         (*xordi_2_rex64): Ditto.
10666
10667 2008-05-05  Ira Rosen  <irar@il.ibm.com>
10668
10669         PR tree-optimization/36119
10670         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
10671         in case of SLP.
10672
10673 2008-06-04  Jan Hubicka  <jh@suse.cz>
10674
10675         tree-optimization/36100
10676         * tree-pass.h (pass_O0_always_inline): Declare.
10677         * ipa-inline.c (inline_transform): Remove dead code.
10678         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
10679         pass_O0_always_inline): New.
10680         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
10681
10682 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
10683
10684         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
10685         mnemonic in this_param move for TARGET_64BIT.
10686
10687 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
10688
10689         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
10690         (*strmovsi_rex_1): Ditto.
10691         (*strsetsi_1): Ditto.
10692         (*strsetsi_rex_1): Ditto.
10693
10694         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
10695         adddicc expanders using SWI mode iterator.
10696
10697 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
10698
10699         PR target/36121
10700         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
10701         argument handling.
10702
10703 2008-05-04  David S. Miller  <davem@davemloft.net>
10704
10705         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
10706         (sparc*-*-linux*): Use linux.h in tm_file.
10707         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
10708         compiler defaulting to 32-bit.
10709         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
10710         no longer needed.
10711         * config/sparc/linux.h: Remove definitions now obtained
10712         properly from linux.h
10713         * config/sparc/linux64.h: Likewise.
10714         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
10715         don't want this setting for 32-bit builds in a biarch compiler.
10716         * doc/install.texi: Add sparc-linux to list of targets
10717         supporting --enable-targets=all.
10718
10719 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
10720
10721         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
10722
10723 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
10724
10725         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
10726         after V4SI_FTYPE_V8HI.
10727         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
10728         case V4SI_FTYPE_V2DF.
10729
10730 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
10731
10732         * doc/invoke.texi (max-flow-memory-locations): Removed.
10733         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
10734
10735 2008-05-03  Richard Guenther  <rguenther@suse.de>
10736
10737         PR middle-end/34973
10738         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
10739
10740 2008-05-02  David S. Miller  <davem@davemloft.net>
10741
10742         * config.gcc (need_64bit_hwint): Document libcpp dependency.
10743
10744 2008-05-02  Simon Baldwin <simonb@google.com>
10745
10746         PR bootstrap/36108
10747         * c-common.h (warn_array_subscript_range): Removed.
10748         * c-common.c (warn_array_subscript_range): Ditto.
10749         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
10750         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
10751
10752 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
10753
10754         * config/i386/i386.c (ix86_special_builtin_type): New.
10755         (bdesc_special_args): Likewise.
10756         (ix86_expand_special_args_builtin): Likewise.
10757         (ix86_init_mmx_sse_builtins): Updated.
10758         (ix86_expand_builtin): Updated.
10759         (ix86_expand_store_builtin): Removed.
10760         (ix86_expand_unop_builtin): Likewise.
10761
10762         * config/i386/mm3dnow.h (__v2sf): Moved to ...
10763         * config/i386/mmintrin.h (__v2sf): Here.
10764
10765         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
10766         const __v2sf.
10767         (_mm_loadl_pi): Likewise.
10768         (_mm_storeh_pi): Replace __v2si with __v2sf.
10769         (_mm_storel_pi): Likewise.
10770
10771         * doc/extend.texi: Correct __builtin_ia32_loadhps,
10772         __builtin_ia32_loadlps, __builtin_ia32_storehps,
10773         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
10774         __builtin_ia32_loadlpd.
10775
10776 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
10777
10778         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
10779         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
10780         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
10781         (ix86_init_mmx_sse_builtins): Updated.
10782         (ix86_expand_args_builtin): Likewise.
10783         (ix86_expand_builtin): Likewise.
10784         (ix86_expand_unop1_builtin): Renamed to ...
10785         (ix86_expand_unop_vec_merge_builtin): This.
10786
10787 2008-05-01  Jan Hubicka  <jh@suse.cz>
10788
10789         PR bootstrap/36100
10790         * ipa-inline.c (inline_generate_summary): Make static.
10791         (inline_transform): Do not call inlining at -O0; make static.
10792         * passes.c (execute_todo): Add sanity check.
10793         (execute_one_ipa_transform_pass): Execute proper flags.
10794
10795 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
10796
10797         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
10798         (DECL_NONADDRESSABLE_P): Likewise.
10799         * alias.c (record_component_aliases): Fix comment.
10800
10801 2008-05-01  Simon Baldwin <simonb@google.com>
10802
10803         * c-common.h (warn_array_subscript_range): New function.
10804         * c-common.c (warn_array_subscript_range): Ditto.
10805         * tree-vrp.c (check_array_ref): Corrected code to agree with
10806         comment, ignoring only arrays of size 0 or size 1.
10807         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
10808
10809 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
10810
10811         * config/i386/i386.c (ix86_builtin_type): Replace
10812         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
10813         (bdesc_args): Updated.
10814         (ix86_init_mmx_sse_builtins): Likewise.
10815         (ix86_expand_args_builtin): Likewise.
10816
10817         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
10818         with __v1di.
10819
10820         * doc/extend.texi: Correct __builtin_ia32_palignr.
10821
10822 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
10823
10824         PR target/36095
10825         * config/i386/i386.c (bdesc_crc32): Removed.
10826         (ix86_expand_crc32): Likewise.
10827         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
10828         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
10829         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
10830         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
10831         UINT_FTYPE_UINT_UCHAR.
10832         (bdesc_args): Updated. Add crc32 builtins.
10833         (ix86_init_mmx_sse_builtins): Updated.
10834         (ix86_expand_args_builtin): Updated to support subreg.
10835
10836         * doc/extend.texi: Correct __builtin_ia32_crc32di.
10837
10838 2008-05-01  Jan Hubicka  <jh@suse.cz>
10839
10840         * tree-pass.h (opt_pass): Add IPA_PASS.
10841         (varpool_node, cgraph_node): Forward declare.
10842         (ipa_opt_pass): Define.
10843         (pass_ipa_inline): Turn into ipa_opt_pass.
10844         (pass_apply_inline): Remove.
10845         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
10846         (apply_inline): Turn into ....
10847         (inline_transform): ... this one.
10848         (inline_generate_summary): New function.
10849         (pass_apply_inline): Remove.
10850         * function.h (ipa_opt_pass): Forward declare structure; typedef;
10851         vector.
10852         (struct function): Add ipa_transforms_to_apply.
10853         * passes.c (register_one_dump_file): Work on IPA_PASS.
10854         (init_optimization_passes): Remove pass_inline_parameters and
10855         pass_apply_inline.
10856         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
10857         (execute_one_pass) ... here; apply transforms when possible.
10858         (add_ipa_transform_pass, execute_ipa_summary_asses,
10859         execute_one_ipa_transform_pass): New.
10860         (execute_ipa_pass_list): Update for IPA_PASS type.
10861
10862 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
10863
10864         * config/i386/i386.c (ix86_builtin_type): Add
10865         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
10866         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
10867         (bdesc_args): Add SSE4a builtins.
10868         (ix86_init_mmx_sse_builtins): Updated.
10869         (ix86_expand_args_builtin): Likewise.
10870         (ix86_expand_builtin): Likewise.
10871
10872 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
10873
10874         * config/i386/i386.c (ix86_builtin_type): Add
10875         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
10876         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
10877         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
10878         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
10879         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
10880         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
10881         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
10882         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
10883         and DI_FTYPE_DI_DI_INT.
10884         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
10885         (ix86_init_mmx_sse_builtins): Updated.
10886         (ix86_expand_args_builtin): Likewise.
10887         (ix86_expand_builtin): Likewise.
10888         (ix86_expand_binop_imm_builtin): Removed.
10889
10890         * doc/extend.texi: Correct __builtin_ia32_palignr128.
10891
10892 2008-04-30  Richard Guenther  <rguenther@suse.de>
10893
10894         PR tree-optimization/32921
10895         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
10896
10897 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
10898
10899         * config/arm/arm.c (arm_unwind_emit): Use
10900         crtl->all_throwers_are_sibcalls instead of
10901         cfun->all_throwers_are_sibcalls.
10902         (arm_output_fn_unwind): Likewise.
10903         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
10904         instead of cfun->uses_pic_offset_table.
10905         (frv_expand_prologue): Likewise.
10906         (frv_frame_pointer_required): Likewise.
10907         (frv_expand_fdpic_call): Likewise.
10908         (frv_emit_movsi): Likewise.
10909         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
10910         cfun->returns_pcc_struct instead of
10911         current_function_returns_pcc_struct.
10912         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
10913         instead of cfun->calls_eh_return.
10914         (m32c_pushm_popm): Likewise.
10915         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
10916         "extern" declaration.
10917
10918 2008-04-30  Richard Guenther  <rguenther@suse.de>
10919
10920         PR tree-optimization/21636
10921         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
10922         constant address.
10923         (evaluate_stmt): Print the likely value.
10924         (ccp_visit_stmt): Avoid excessive vertical spacing.
10925
10926 2008-04-30  Rafael Espindola  <espindola@google.com>
10927
10928         * builtins.c (fold_call_expr): Return realret.
10929         * tree-ssa-threadedge.c
10930         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
10931         __builtin_object_size.
10932
10933 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
10934
10935         * gcc.c (wrapper_string): New variable.
10936         (insert_wrapper): New function.
10937         (execute): New option -wrapper.
10938         * doc/invoke.texi (Overall Options): New driver option -wrapper.
10939
10940 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
10941
10942         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
10943         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
10944         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
10945         from...
10946         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
10947         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
10948         config/rs6000/e500crtres64gprctr.asm,
10949         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
10950         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
10951         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
10952         config/rs6000/e500crtsav64gprctr.asm,
10953         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
10954         config/rs6000/e500crtsavg64gprctr.asm: New files.
10955         * config/rs6000/t-ppccomm: Add build rules for new files.
10956         (LIB2FUNCS_STATIC_EXTRA): Add new files.
10957         * config/rs6000/t-netbsd: Add build rules for new files.
10958         (LIB2FUNCS_STATIC_EXTRA): New variable.
10959         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
10960         (CRTSAVRES_DEFAULT_SPEC): Likewise.
10961         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
10962
10963 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
10964
10965         * config/i386/i386.c (ix86_builtin_type): Add
10966         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
10967         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
10968         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
10969         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
10970         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
10971         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
10972         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
10973         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
10974         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
10975         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
10976         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
10977         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
10978         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
10979         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
10980         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
10981         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
10982         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
10983         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
10984         V1DI_FTYPE_V2SI_V2SI.
10985         (bdesc_2arg): Moved to ...
10986         (bdesc_args): Here.
10987         (ix86_init_mmx_sse_builtins): Updated.
10988         (ix86_expand_args_builtin): Updated.  Take a pointer
10989         to const struct builtin_description.  Handle comparison
10990         builtin functions.
10991         (ix86_expand_sse_compare): Take a new argument for swapping operands.
10992         (ix86_expand_builtin): Updated.
10993
10994         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
10995         (ssse3_pmaddubsw128): This.
10996         (ssse3_pmaddubswv4hi3): Renamed to ...
10997         (ssse3_pmaddubsw): This.
10998
10999         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
11000         (__builtin_ia32_packssdw128): Likewise.
11001         (__builtin_ia32_packuswb128): Likewise.
11002         (__builtin_ia32_pmaddubsw): Likewise.
11003         (__builtin_ia32_pmaddubsw128): Likewise.
11004
11005 2008-04-30  Richard Guenther  <rguenther@suse.de>
11006
11007         PR tree-optimization/14847
11008         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
11009         (recognize_bits_test): Use it.
11010         (recognize_single_bit_test): Likewise.
11011
11012 2008-04-30  Martin Jambor  <mjambor@suse.cz>
11013
11014         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
11015         instead of setting number of formal parameters to zero.
11016         (ipcp_init_stage): Do not set the number of actual parameters to zero
11017         either.
11018         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
11019         which are called with variable number of arguments.
11020         (ipcp_insert_stage): Explicitely skipping all nodes which are
11021         called with variable number of arguments.
11022         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
11023         number of parameters.
11024
11025         * ipa-prop.h (struct ipa_node_params): Added flag
11026         called_with_var_arguments
11027         (ipa_set_param_count): Added.  Changed sole setter to use it.
11028         (ipa_get_param_count): Added.  All readers of param_count
11029         converted to use it instead.
11030         (ipa_set_called_with_variable_arg): Added.
11031         (ipa_is_called_with_var_arguments): Added.
11032         (ipa_get_ith_param): Added.  All readers of param_decls converted
11033         to use it instead.
11034         (ipa_set_cs_argument_count): Added, sole writer to argument_count
11035         changed to use it.
11036         (ipa_get_cs_argument_count): Added, all readers of argument_count
11037         changed to cal it.
11038         (ipa_get_ith_jump_func): Added. Accessors of jump values changed
11039         to use it.
11040
11041         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
11042         (struct ipcp_lattice): Renamed cval_type to type
11043         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
11044
11045         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
11046         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
11047         (ipcp_insert_stage): Changed the type of variable cvalue to tree
11048         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
11049         (build_const_val): Changed the type of parameter cvalue to tree
11050         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
11051         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
11052
11053         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
11054         constant
11055
11056         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
11057         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
11058         (ipa_add_method): Renamed to ipa_push_func_to_list
11059         (ipa_remove_method): Renamed to ipa_pop_func_from_list
11060         (ipa_callsite_param_count): Removed.
11061         (ipa_callsite_param_count_set): Removed.
11062         (ipa_callsite_param): Removed.
11063         (ipa_callsite_callee): Removed.
11064         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
11065         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
11066         (ipa_method_formal_count): Removed.
11067         (ipa_method_formal_count_set): Removed.
11068         (ipa_method_get_tree): Removed.
11069         (ipa_method_tree_map_create): Removed.
11070         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
11071         (ipa_create_param_decls_array): Creates the array itself
11072         (ipa_create_param_decls_array): Temporary variable info instead of
11073         a few dereferences.
11074         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
11075         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
11076         (get_type): Removed.
11077         (ipa_jf_get_info_type): Removed.
11078         (ipa_node_create): Renamed to ipa_create_node_params
11079         (ipa_free): Renamed to ipa_free_all_node_params
11080         (ipa_nodes_create): Renamed to ipa_create_all_node_params
11081         (ipa_edges_create): Renamed to ipa_create_all_edge_args
11082         (ipa_edges_free): Renamed to ipa_free_all_edge_args
11083         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
11084         (ipa_free_all_node_params): Deallocation to jump_functions moved to
11085         ipa_free_all_edge_args
11086         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
11087         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
11088         (ipa_create_methodlist_node): Removed.
11089         (ipa_methodlist_method): Removed.
11090         (ipa_methodlist_method_set): Removed.
11091         (ipa_methodlist_next_method): Removed.
11092         (ipa_methodlist_next_method_set): Removed.
11093         (ipa_method_is_modified): Removed.
11094         (ipa_method_modify_create): Removed.
11095         (ipa_method_modify_init): Temporary variable info instead of a few
11096         dereferences.
11097         (ipa_detect_param_modifications): Temporary variable info instead of
11098         a few dereferences.
11099         (ipa_compute_jump_functions): Temporary variable info instead of
11100         a few dereferences.
11101         (ipa_method_modify_set): Removed.
11102         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
11103         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
11104         than craph_node as the first parameter.
11105         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
11106         (ipa_method_modify_init): Removed.
11107         (ipa_compute_jump_functions): Added a temp variable instead of
11108         repeatadly dereferencing the cgraph_edge.aux pointer
11109         (ipa_callsite_param_set_type): Removed.
11110         (ipa_compute_jump_functions): i renamed to index and moved to
11111         an inner block
11112         (ipa_callsite_param_set_info_type_formal): Removed.
11113         (ipa_callsite_param_set_info_type): Removed.
11114         (ipa_callsite_param_map_create): Removed.
11115         (ipa_callsite_tree): Removed.
11116         (ipa_callsite_caller): Removed.
11117         (ipa_pop_func_from_list): return_method removed to return_func
11118
11119         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
11120         prefixed all values with IPA_. Changed all users.
11121         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
11122         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
11123         and FORMAL_IPATYPE IPA_PASS_THROUGH.
11124         (union parameter_info): Renamed to jump_func_value.
11125         (union jump_func_value): Renamed value to constant
11126         (struct ipa_jump_func): Renamed info_type to value
11127         (struct ipa_node): Renamed to ipa_node_params
11128         (struct ipa_node_params): Renamed ipa_arg_num to param_count
11129         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
11130         (struct ipa_node_params): Renamed ipa_mod to modified_flags
11131         (struct ipa_edge): Renamed to ipa_edge_args
11132         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
11133         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
11134         (struct ipa_methodlist): Renamed to ipa_func_list
11135         (struct ipa_func_list): method_p renamed to node, next_method
11136         renamed to next
11137         (ipa_methodlist_p): Removed, switched all users to struct pointer
11138         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
11139
11140 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
11141
11142         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
11143         (rs6000_emit_epilogue): Use backchain to restore only when we
11144         have a large frame.  Make use of frame pointer to restore if we
11145         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
11146
11147 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
11148
11149         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
11150         Add mode to zero_extract.
11151         (sign bit tests peepholes): (Ditto.).
11152
11153 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
11154
11155         * config/i386/i386.c (ix86_builtins): Replace Prescott New
11156         Instructions in comments with SSE3.
11157         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
11158         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
11159         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
11160         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
11161         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
11162         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
11163         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
11164         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
11165         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
11166         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
11167         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
11168         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
11169         (bdesc_sse_args): Renamed to ...
11170         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
11171         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
11172         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
11173         IX86_BUILTIN_FABSQ.
11174         (bdesc_1arg): Moved to ...
11175         (bdesc_args): Here.
11176         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
11177         Instructions in comments with SSE3.
11178         (ix86_expand_sse_operands_builtin): Renamed to ...
11179         (ix86_expand_args_builtin): This.  Updated.
11180         (ix86_expand_unop1_builtin): Update comments.
11181         (ix86_expand_builtin): Updated.
11182
11183 2008-04-29  Richard Guenther  <rguenther@suse.de>
11184
11185         PR tree-optimization/36078
11186         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
11187         Update virtual SSA form after cleaning up the CFG.
11188
11189 2008-04-29  Richard Guenther  <rguenther@suse.de>
11190
11191         PR middle-end/15255
11192         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
11193
11194 2008-04-29  Richard Guenther  <rguenther@suse.de>
11195
11196         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
11197         (compute_may_aliases): Do not call finalize_ref_all_pointers.
11198         (compute_flow_insensitive_aliasing): Do not treat
11199         PTR_IS_REF_ALL pointers special.
11200         (get_smt_for): Likewise.
11201         (may_alias_p): Re-structure.
11202         (is_escape_site): A ref-all pointer conversion is not an escape site.
11203         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
11204         PTR_IS_REF_ALL pointers special.
11205         * tree-ssa-structalias.h (struct alias_info): Remove
11206         ref_all_symbol_mem_tag field.
11207         (PTR_IS_REF_ALL): Remove.
11208
11209 2008-04-29  Richard Guenther  <rguenther@suse.de>
11210
11211         PR middle-end/36077
11212         * fold-const.c (extract_muldiv_1): In combining division constants
11213         make sure to never overflow.
11214
11215 2008-04-29  Nick Clifton  <nickc@redhat.com>
11216
11217         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
11218
11219 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11220
11221         PR bootstrap/35169
11222         * optc-gen.awk: Work around HP-UX/IA awk bug.
11223
11224 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
11225
11226         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
11227         2008-04-25 commit.
11228
11229 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
11230
11231         PR target/36073
11232         * config/i386/i386.md
11233         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
11234         Change operand 1 predicate to nonimmediate_operand.
11235
11236 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
11237
11238         PR debug/36060
11239         * dwarf2out.c (struct die_struct): Mark as chain_circular through
11240         die_sub field.
11241         * gengtype.c (walk_type, write_func_for_structure): Handle
11242         chain_circular.
11243         * doc/gty.texi: Document chain_circular.
11244
11245 2008-04-28  Richard Guenther  <rguenther@suse.de>
11246
11247         PR tree-optimization/36066
11248         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
11249         SCEV and loop.
11250
11251 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
11252
11253         PR target/36064
11254         * config/i386/i386.md
11255         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
11256         Use match_scratch instead of match_operand for operands 3 and 4.
11257
11258 2008-04-27  Richard Guenther  <rguenther@suse.de>
11259
11260         PR tree-optimization/18754
11261         PR tree-optimization/34223
11262         * tree-pass.h (pass_complete_unrolli): Declare.
11263         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
11264         loop size before and after unconditionally of UL_NO_GROWTH in effect.
11265         Rewrite loop into loop closed SSA form if it is not already.
11266         (tree_unroll_loops_completely): Re-structure to iterate over
11267         innermost loops with intermediate CFG cleanups.
11268         Unroll outermost loops only if requested or the code does not grow
11269         doing so.
11270         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
11271         loops are available.
11272         (tree_vectorize): Instead do so here.
11273         (tree_complete_unroll): Also unroll outermost loops.
11274         (tree_complete_unroll_inner): New function.
11275         (gate_tree_complete_unroll_inner): Likewise.
11276         (pass_complete_unrolli): New pass.
11277         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
11278         uses outside of the loop.
11279         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
11280         form if it is available.
11281         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
11282         * passes.c (init_optimization_passes): Schedule complete inner
11283         loop unrolling pass before the first CCP pass after final inlining.
11284
11285 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
11286
11287         * targhooks.h (default_emutls_var_fields,
11288         default_emutls_var_init): Declare.
11289         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
11290         * target.h (struct gcc_target): Add struct emutls member.
11291         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
11292         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
11293         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
11294         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
11295         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
11296         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
11297         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
11298         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
11299         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
11300         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
11301         emit debug information.
11302         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
11303         * varasm.c: Include targhooks.h.
11304         (emutls_object_section, emutls_tmpl_section): New.
11305         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
11306         (EMUTLS_SEPARATOR): New.
11307         (prefix_name): New.
11308         (get_emutls_object_name): New.
11309         (default_emutls_var_fields): New, broken out of ...
11310         (get_emutls_object_type): ... here.  Adjust to use target hooks.
11311         (get_emutls_init_templ_addr): Adjust to use target hooks.
11312         (emutls_decl): Adjust to use target hooks.
11313         (emutls_finish): Likewise.
11314         (default_emutls_var_init): New, broken out of ...
11315         (assemble_variable): ... here.  Adjust to use target hooks.
11316         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
11317         SECCAT_EMUTLS_TMPL.
11318         * c-common.c (handle_section_attribute): Prevent overriding
11319         sections for emulated tls with special sections.
11320         * config/i386/i386.c (x86_64_elf_select_section): Add
11321         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
11322         (x86_64_elf_unique_section): Likewise.
11323         * config/vxworks.c: Include tree.h.
11324         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
11325         (vxworks_override_options): Set TLS scheme.
11326         * doc/tm.texi (Emulated TLS): New node.
11327
11328 2008-04-26  Simon Baldwin <simonb@google.com>
11329
11330         PR c/35652
11331         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
11332         with propagated string constants.
11333
11334 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
11335
11336         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
11337         constraint for operand 2 when operand 0 is memory operand.
11338         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
11339         operand 0 is memory operand.
11340         (fix_trunc<mode>_i387_with_temp): Ditto.
11341         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
11342         operand 2 when operand 1 is memory operand.
11343         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
11344         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
11345         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
11346         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
11347         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
11348         operands 2,3 and 4 when operand 1 is memory operand.
11349         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
11350         is memory operand.
11351         (fistdi2_floor_with_temp): Ditto.
11352         (fist<mode>2_floor_with_temp): Ditto.
11353         (fistdi2_ceil_with_temp): Ditto.
11354         (fist<mode>2_ceil_with_temp): Ditto.
11355         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
11356
11357 2008-04-26  David Daney  <ddaney@avtrex.com>
11358
11359         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
11360         unspec_volitile.
11361         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
11362         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
11363         UNSPEC_UPDATE_GOT_VERSION): Renumber.
11364         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
11365         (compare_and_swap_12): New insn.
11366         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
11367         * config/mips/mips.c (mips_force_binary): New function.
11368         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
11369         (mips_expand_compare_and_swap_12): New function.
11370         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
11371
11372 2008-04-25  Jan Hubicka  <jh@suse.cz>
11373
11374         PR testsuite/35843
11375         * cfgexpand.c (pass_expand): Turn into RTL pass.
11376         * passes.c (execute_one_pass): Do pass typechecking after execution.
11377         * tree-pass.h (pass_expand): Turn into RTL pass.
11378
11379         * function.h (struct rtl_data): Move here fields
11380         accesses_prior_frames, calls_eh_return, saves_all_registers,
11381         has_nonlocal_goto, has_asm_statement, is_thunk,
11382         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
11383         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
11384         arg_pointer_save_area_init from struct function; turn into bool.
11385         (struct function): Move
11386         calls_eh_return, saves_all_registers, has_nonlocal_goto,
11387         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
11388         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
11389         tail_call_emit, arg_pointer_save_area_init
11390         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
11391         (current_function_returns_struct, current_function_returns_pcc_struct,
11392         current_function_calls_setjmp, current_function_calls_alloca,
11393         current_function_accesses_prior_frames,
11394         current_function_calls_eh_return, current_function_is_thunk,
11395         current_function_stdarg, current_function_profile,
11396         current_function_limit_stack, current_function_uses_pic_offset_table,
11397         current_function_uses_const_pool, current_function_has_nonlocal_label,
11398         current_function_saves_all_registers,
11399         current_function_has_nonlocal_goto,
11400         current_function_has_asm_statement): Remove accesor macros.
11401         * ra-conflict.c (global_conflicts): Update.
11402         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
11403         (suitable_for_tail_call_opt_p): Update.
11404         * builtins.c (expand_builtin_return_addr): Update.
11405         (expand_builtin_setjmp_setup): Update.
11406         (expand_builtin_nonlocal_goto): Update.
11407         * final.c (final_start_function): Update.
11408         (profile_function): Update.
11409         (leaf_function_p): Update.
11410         (only_leaf_regs_used): Update.
11411         * df-scan.c (df_get_exit_block_use_set): Update.
11412         * dojump.c (clear_pending_stack_adjust): Update.
11413         * tree-stdarg.c (gate_optimize_stdarg): Update.
11414         * gimple-low.c (lower_function_body): Update.
11415         * global.c (compute_regsets): Update.
11416         (global_alloc): Update.
11417         * dwarf2out.c (dwarf2out_begin_prologue): Update.
11418         * expr.c (expand_assignment): Update.
11419         * dse.c (dse_step0): Update.
11420         (dse_step1): Update.
11421         * c-decl.c (store_parm_decls): Update.
11422         * local-alloc.c (combine_regs): Update.
11423         (find_free_reg): Update.
11424         * function.c (assign_parms_augmented_arg_list): Update.
11425         (assign_parm_find_data_types): Update.
11426         (assign_parms): Update.
11427         (allocate_struct_function): Update.
11428         (expand_function_start): Update.
11429         (expand_function_end): Update.
11430         (get_arg_pointer_save_area): Update.
11431         (thread_prologue_and_epilogue_insns): Update.
11432         (rest_of_match_asm_constraints): Update.
11433         * stor-layout.c (variable_size): Update.
11434         * gcse.c (gcse_main): Update.
11435         (bypass_jumps): Update.
11436         * gimplify.c (gimplify_function_tree): Update.
11437         * calls.c (emit_call_1): Update.
11438         (expand_call): Update.
11439         * bt-load.c (compute_defs_uses_and_gen): Update.
11440         * except.c (sjlj_assign_call_site_values): Update.
11441         (sjlj_emit_function_enter): Update.
11442         (can_throw_external): Update.
11443         (set_nothrow_function_flags): Update.
11444         (expand_builtin_unwind_init): Update.
11445         (expand_eh_return): Update.
11446         (convert_to_eh_region_ranges): Update.
11447         (output_function_exception_table): Update.
11448         * emit-rtl.c (gen_tmp_stack_mem): Update.
11449         * cfgexpand.c (expand_used_vars): Update.
11450         (tree_expand_cfg): Update.
11451         * cfgcleanup.c (rest_of_handle_jump): Update.
11452         * explow.c (allocate_dynamic_stack_space): Update.
11453         * varasm.c (assemble_start_function): Update.
11454         (force_const_mem): Update.
11455         (mark_constant_pool): Update.
11456         * tree-optimize.c (tree_rest_of_compilation): Update.
11457         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
11458         * tree-cfg.c (notice_special_calls): Update.
11459         (is_ctrl_altering_stmt): Update.
11460         (tree_can_make_abnormal_goto): Update.
11461         (tree_purge_dead_abnormal_call_edges): Update.
11462         * config/alpha/predicates.md: Update.
11463         * config/alpha/alpha.c (alpha_sa_mask): Update.
11464         (alpha_sa_size): Update.
11465         (alpha_does_function_need_gp): Update.
11466         (alpha_expand_prologue): Update.
11467         (alpha_start_function): Update.
11468         (alpha_output_function_end_prologue): Update.
11469         (alpha_expand_epilogue): Update.
11470         * config/frv/frv.c (frv_stack_info): Update.
11471         (frv_expand_epilogue): Update.
11472         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
11473         (s390_register_info): Update.
11474         (s390_frame_info): Update.
11475         (s390_init_frame_layout): Update.
11476         (s390_can_eliminate): Update.
11477         (save_gprs): Update.
11478         * config/spu/spu.c (spu_split_immediate): Update.
11479         (need_to_save_reg): Update.
11480         (spu_expand_prologue): Update.
11481         (spu_expand_epilogue): Update.
11482         * config/sparc/sparc.md: Update.
11483         * config/sparc/sparc.c (eligible_for_return_delay): Update.
11484         (sparc_tls_got): Update.
11485         (legitimize_pic_address): Update.
11486         (sparc_emit_call_insn): Update.
11487         (sparc_expand_prologue): Update.
11488         (output_return): Update.
11489         (print_operand): Update.
11490         (sparc_function_ok_for_sibcall): Update.
11491         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
11492         * config/m32r/m32r.md: Update.
11493         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
11494         (m32r_compute_frame_size): Update.
11495         (m32r_expand_prologue): Update.
11496         (m32r_expand_epilogue): Update.
11497         (m32r_legitimize_pic_address): Update.
11498         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
11499         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
11500         * config/i386/i386.c (ix86_frame_pointer_required): Update.
11501         (gen_push): Update.
11502         (ix86_save_reg): Update.
11503         (ix86_compute_frame_layout): Update.
11504         (ix86_expand_prologue): Update.
11505         (ix86_expand_epilogue): Update.
11506         * config/sh/sh.c (output_stack_adjust): Update.
11507         (calc_live_regs): Update.
11508         (sh5_schedule_saves): Update.
11509         (sh_expand_prologue): Update.
11510         (sh_expand_epilogue): Update.
11511         (sh_setup_incoming_varargs): Update.
11512         (sh_allocate_initial_value): Update.
11513         (sh_get_pr_initial_val): Update.
11514         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
11515         * config/sh/sh.md (label:): Update.
11516         * config/avr/avr.c (out_movhi_mr_r): Update.
11517         * config/crx/crx.h (enum): Update.
11518         * config/xtensa/xtensa.h (along): Update.
11519         * config/stormy16/stormy16.c Update.
11520         (xstormy16_compute_stack_layout): Update.
11521         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
11522         (fr30_expand_prologue): Update.
11523         * config/cris/cris.c (cris_conditional_register_usage): Update.
11524         (cris_reg_saved_in_regsave_area): Update.
11525         (cris_initial_frame_pointer_offset): Update.
11526         (cris_simple_epilogue): Update.
11527         (cris_expand_prologue): Update.
11528         (cris_expand_epilogue): Update.
11529         (cris_expand_pic_call_address): Update.
11530         (cris_asm_output_symbol_ref): Update.
11531         (cris_asm_output_label_ref): Update.
11532         * config/cris/cris.md Update.
11533         * config/iq2000/iq2000.c (compute_frame_size): Update.
11534         (iq2000_expand_epilogue): Update.
11535         * config/mt/mt.h (save_direction): Update.
11536         * config/mn10300/mn10300.c (mn10300_function_value): Update.
11537         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
11538         (ia64_secondary_reload_class): Update.
11539         * config/m68k/m68k.c (m68k_save_reg): Update.
11540         (m68k_expand_prologue): Update.
11541         (m68k_expand_epilogue): Update.
11542         (legitimize_pic_address): Update.
11543         * config/rs6000/rs6000.c (rs6000_got_register): Update.
11544         (first_reg_to_save): Update.
11545         (first_altivec_reg_to_save): Update.
11546         (compute_vrsave_mask): Update.
11547         (compute_save_world_info): Update.
11548         (rs6000_stack_info): Update.
11549         (spe_func_has_64bit_regs_p): Update.
11550         (rs6000_ra_ever_killed): Update.
11551         (rs6000_emit_eh_reg_restore): Update.
11552         (rs6000_emit_allocate_stack): Update.
11553         (rs6000_emit_prologue): Update.
11554         (rs6000_emit_epilogue): Update.
11555         (rs6000_output_function_epilogue): Update.
11556         (output_profile_hook): Update.
11557         (rs6000_elf_declare_function_name): Update.
11558         * config/rs6000/rs6000.h (rs6000_args): Update.
11559         * config/rs6000/rs6000.md: Update.
11560         * config/mcore/mcore.c (mcore_expand_prolog): Update.
11561         * config/arc/arc.c (arc_output_function_epilogue): Update.
11562         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
11563         * config/darwin.c (machopic_function_base_name): Update.
11564         * config/score/score3.c (score3_compute_frame_size): Update.
11565         (rpush): Update.
11566         (rpop): Update.
11567         (score3_epilogue): Update.
11568         * config/score/score7.c (score7_compute_frame_size): Update.
11569         (score7_prologue): Update.
11570         (score7_epilogue): Update.
11571         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
11572         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
11573         * config/arm/arm.c (use_return_insn): Update.
11574         (require_pic_register): Update.
11575         (arm_load_pic_register): Update.
11576         (arm_compute_save_reg0_reg12_mask): Update.
11577         (arm_compute_save_reg_mask): Update.
11578         (thumb1_compute_save_reg_mask): Update.
11579         (output_return_instruction): Update.
11580         (arm_output_function_prologue): Update.
11581         (arm_output_epilogue): Update.
11582         (arm_get_frame_offsets): Update.
11583         (arm_expand_prologue): Update.
11584         (thumb_pushpop): Update.
11585         (thumb_exit): Update.
11586         (thumb1_expand_prologue): Update.
11587         (thumb1_expand_epilogue): Update.
11588         (arm_unwind_emit): Update.
11589         (arm_output_fn_unwind): Update.
11590         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
11591         * config/arm/arm.md: Update.
11592         * config/pa/pa.md: Update.
11593         * config/pa/pa.c (legitimize_pic_address): Update.
11594         (compute_frame_size): Update.
11595         (hppa_expand_prologue): Update.
11596         (hppa_expand_epilogue): Update.
11597         (borx_reg_operand): Update.
11598         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
11599         (HARD_REGNO_RENAME_OK): Update.
11600         * config/mips/mips.c (mips_global_pointer): Update.
11601         (mips_save_reg_p): Update.
11602         (mips_compute_frame_info): Update.
11603         (mips_frame_pointer_required): Update.
11604         (mips_expand_prologue): Update.
11605         (mips_expand_epilogue): Update.
11606         (mips_can_use_return_insn): Update.
11607         (mips_reorg_process_insns): Update.
11608         * config/v850/v850.c (compute_register_save_size): Update.
11609         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
11610         * config/mmix/mmix.c (along): Update.
11611         (mmix_expand_epilogue): Update.
11612         * config/bfin/bfin.c (legitimize_pic_address): Update.
11613         (must_save_p): Update.
11614         (stack_frame_needed_p): Update.
11615         (add_to_reg): Update.
11616         (bfin_expand_prologue): Update.
11617         * stmt.c (expand_asm_operands): Update.
11618         * reload1.c (reload): Update.
11619         (init_elim_table): Update.
11620
11621 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
11622
11623         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
11624
11625 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
11626
11627         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
11628         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
11629         (mov<mode>): Removed.
11630         (*movv4sf_internal): Likewise.
11631         (*movv2df_internal): Likewise.
11632
11633 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
11634
11635         * config.gcc (crx-*-elf): Remove deprecation.
11636
11637 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
11638
11639         * config/i386/cygming-crtend.c (register_frame_ctor): Register
11640         __gcc_deregister_frame with atexit.
11641         (deregister_frame_dtor): Remove.
11642
11643 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
11644             Nathan Sidwell  <nathan@codesourcery.com>
11645
11646         * config/rs6000/rs6000.opt (mspe): Remove Var property.
11647         (misel): Likewise.
11648         * config/rs6000/rs6000.h (rs6000_spe): Declare.
11649         (rs6000_isel): Likewise.
11650         * config/rs6000/rs6000.c (rs6000_spe): New variable.
11651         (rs6000_isel): New variable.
11652         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
11653
11654 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
11655
11656         PR c++/35758
11657         * c-common.c (handle_vector_size_attribute): Call
11658         lang_hooks.types.reconstruct_complex_type instead of
11659         reconstruct_complex_type.
11660         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
11661         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
11662         * langhooks.h (struct lang_hooks_for_types): Add
11663         reconstruct_complex_type hook.
11664         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
11665         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
11666
11667 2008-04-24  Richard Guenther  <rguenther@suse.de>
11668
11669         * c-common.h (check_builtin_function_arguments): Declare.
11670         * c-common.c (validate_nargs): New function.
11671         (check_builtin_function_arguments): Likewise.
11672         * c-typeck.c (build_function_call): Call
11673         check_builtin_function_arguments.
11674         * builtins.c (fold_builtin_classify): Remove error reporting code.
11675         (fold_builtin_unordered_cmp): Likewise.
11676         (fold_builtin_1): Likewise.
11677         (fold_builtin_n): Likewise.
11678
11679 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
11680
11681         PR tree-optimization/36008
11682         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
11683         the original op1, rather than delta by step.
11684
11685 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
11686             Sebastian Pop  <sebastian.pop@amd.com>
11687
11688         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
11689         eliminate_local_variables_stmt, eliminate_local_variables,
11690         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
11691         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
11692         of code delimited by two edges in the CFG.
11693         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
11694         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
11695         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
11696         the case of parallelisation of reductions.
11697         (expr_invariant_in_region_p): New.
11698
11699         * tree-flow.h (gather_blocks_in_sese_region): Declared.
11700         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
11701
11702 2008-04-24  Ira Rosen  <irar@il.ibm.com>
11703             Richard Guenther  <rguenther@suse.de>
11704
11705         PR tree-optimization/36034
11706         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
11707         incapable of dealing with loads with gaps.
11708
11709 2008-04-24  Rafael Espindola  <espindola@google.com>
11710
11711         * tree-flow.h (vrp_evaluate_conditional): Change signature.
11712         * tree-ssa-propagate.c (fold_predicate_in): Update call to
11713         vrp_evaluate_conditional.
11714         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
11715         (vrp_evaluate_conditional): Split the cond argument.
11716         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
11717         (simplify_stmt_for_jump_threading): Update call to
11718         vrp_evaluate_conditional.
11719
11720 2008-04-24  Ira Rosen  <irar@il.ibm.com>
11721
11722         PR tree-optimization/35982
11723         * tree-vect-analyze.c (vect_check_interleaving): Check that the
11724         interleaved data-refs are of the same type.
11725
11726 2008-04-24  Danny Smith  <dannysmith@users.net>
11727
11728         * c-format.c (check_format_info_main): Use strncmp rather than a
11729         magic prefix to handle multichar length specs.
11730         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
11731         Don't prefix "I64" and "I32" with '\0'.
11732
11733 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
11734
11735         PR target/36015
11736         * config/i386/i386.c (init_cumulative_args): Don't pass anything
11737         in registers for -m32 only if stdarg_p (fntype).
11738
11739 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
11740
11741         PR rtl-optimization/36006
11742         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
11743         temp to op0 in order to avoid invalid rtx sharing.
11744
11745 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
11746
11747         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
11748         check TREE_INVARIANT.
11749         * tree-gimple.c (is_gimple_address): New.
11750         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
11751         * tree-gimple.h (is_gimple_address): New.
11752         * tree.h (decl_address_invariant_p): New.
11753         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
11754         (build_string): Likewise.
11755         (decl_address_invariant_p): New, from is_gimple_invariant_address.
11756         (tree_invariant_p_1): Likewise.
11757         (save_expr): Use it.
11758         (tree_invariant_p): New.
11759         (skip_simple_arithmetic): Use it.
11760         (stabilize_reference_1): Use it.
11761         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
11762         simplify.
11763         (build1_stat): Drop code to compute TREE_INVARIANT.
11764         (build2_stat): Drop code to compute TREE_INVARIANT.
11765         (build3_stat): Drop code to compute TREE_INVARIANT.
11766         (build4_stat): Drop code to compute TREE_INVARIANT.
11767         (build5_stat): Drop code to compute TREE_INVARIANT.
11768         (build7_stat): Drop code to compute TREE_INVARIANT.
11769         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
11770         * tree.h (struct tree_base): Remove invariant_flag.
11771         (TREE_INVARIANT): Remove.
11772         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
11773         (fold_builtin_expect): Check TREE_CONSTANT.
11774         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
11775         * c-tree.h (c_expr_to_decl): Drop third parameter.
11776         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
11777         (build_c_cast): Don't set TREE_INVARIANT.
11778         (pop_init_level): Don't set TREE_INVARIANT.
11779         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
11780         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
11781         TREE_CONSTANT.
11782         (gimplify_init_constructor): Don't set TREE_INVARIANT.
11783         (gimplify_addr_expr): Adjust comment.
11784         * tree-mudflap.c (mf_build_string):
11785         * print-tree.c (print_node): Don't print TREE_INVARIANT.
11786         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
11787         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
11788         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
11789         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
11790         * langhooks.h (struct lang_hooks): Drop third parameter from
11791         expr_to_decl.
11792
11793 2008-04-23  Richard Guenther  <rguenther@suse.de>
11794
11795         PR tree-optimization/27799
11796         PR tree-optimization/32921
11797         PR tree-optimization/32624
11798         * tree-ssa-structalias.c (merge_smts_into): Only merge the
11799         SMTs aliases and the tag itself into the solution.
11800         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
11801         merge the points-to solution back into the SMT aliases.
11802         (may_alias_p): Use alias_set_subset_of instead of
11803         aliases_conflict_p.  A pointer which points to
11804         memory with alias set zero may access any variable.
11805
11806 2008-04-23  Richard Guenther  <rguenther@suse.de>
11807
11808         * alias.c (alias_set_subset_of): Correctly handle asking
11809         if zero is a subset of an alias set with zero child.
11810         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
11811         (compute_flow_insensitive_aliasing): Correctly walk all
11812         pointers.  Do not unnecessarily union sets.
11813
11814 2008-04-23  Richard Guenther  <rguenther@suse.de>
11815
11816         PR middle-end/36021
11817         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
11818
11819 2008-04-22  Tomas Bily  <tbily@suse.cz>
11820
11821         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
11822         unreachable case.
11823         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
11824         NON_LVALUE_EXPR.
11825         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
11826         * tree-ssa-structalias.c (get_constraint_for): Likewise.
11827         * tree-inline.c (estimate_num_insns_1): Likewise.
11828         * varasm.c (const_hash_1, compare_constant, copy_constant)
11829         (compute_reloc_for_constant, output_addressed_constants): Likewise.
11830         * emit-rtl.c (component_ref_for_mem_expr)
11831         (set_mem_attributes_minus_bitpos): Likewise.
11832         * expr.c (highest_pow2_factor, expand_expr_real_1, )
11833         (is_aligning_offset): Likewise.
11834         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
11835         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
11836         * dojump.c (do_jump): Likewise.
11837         * builtins.c (get_pointer_alignment, get_memory_rtx)
11838         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
11839         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
11840
11841 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
11842
11843         PR rtl-optimization/36017
11844         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
11845         expanding the library call.
11846
11847 2008-04-22  Ian Lance Taylor  <iant@google.com>
11848
11849         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
11850         than size_in_bytes.
11851
11852 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
11853
11854         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
11855         of LR/CTR moves for Power6.
11856
11857 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
11858
11859         PR middle-end/36003
11860         * passes.c (init_optimization_passes): Remove
11861         pass_fast_rtl_byte_dce.
11862
11863 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
11864
11865         PR target/29096
11866         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
11867         builtin functions to generate faster code.
11868         (_mm_cvtpu16_ps): Ditto.
11869         (_mm_cvtpi32x2_ps): Ditto.
11870
11871 2008-04-22  Nick Clifton  <nickc@redhat.com>
11872
11873         * common.opt (ftree-loop-distribution): Add Optimization
11874         attribute.
11875
11876         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
11877         (frv_expand_builtin_va_start): Likewise.
11878
11879         * config/arm/arm.c (thumb_find_work_register): Fix location of
11880         argument register count.
11881
11882 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
11883
11884         Support scheduling for ColdFire V1 and V3 microarchitecture.
11885         Improve scheduling of multiplication instructions.
11886
11887         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
11888         (mac): New instruction attribute.
11889         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
11890         (m68k_sched_mac): New variable.
11891         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
11892         Handle cfv1 and cfv3.
11893         (max_insn_size): New static variable.
11894         (struct _sched_ib): New type.
11895         (sched_ib): New static variable.
11896         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
11897         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
11898         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
11899         Update.
11900         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
11901         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
11902         new variables.  Update.
11903         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
11904         Add modeling of cfv3 instruction buffer.  Update.
11905         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
11906         * config/m68k/m68k.h (TUNE_CFV3): New macro.
11907         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
11908         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
11909         a particular reservation applies to.
11910         (type2): Reorganize attribute values.  Rename alu to alu_reg,
11911         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
11912         to mul_l and mul_w.
11913         (cf_ib_*): Simplify description of instruction buffer.
11914         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
11915         (cf_mem): Split into cf_mem1 and cf_mem2.
11916         (cf_v2_move_??): Rename to cfv12_alu_??.
11917         (cf_v2_move_l_??): Rename to cfv12_omove_??.
11918         (cf_v2_mul_??): Remove reservations.
11919         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
11920         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
11921         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
11922         appropriate place.
11923         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
11924         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
11925         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
11926         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
11927         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
11928         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
11929         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
11930         expansions of the above reservations for instructions of sizes
11931         1, 2 and 3 words.
11932
11933 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
11934
11935         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
11936
11937 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
11938
11939         * coverage.c: Include tree-pass.h.
11940         (coverage_counter_alloc): Print da_file_name to the dump file.
11941
11942 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
11943
11944         * sbitmap.c (sbitmap_range_empty_p): New function.
11945         * sbitmap.h (sbitmap_range_empty_p): New function.
11946         * bitmap.h: Now includes obstack.h.
11947
11948 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
11949             Kenneth Zadeck  <zadeck@naturalbridge.com>
11950
11951         * dbgcnt.def (ra_byte_scan): Added.
11952         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
11953         when the last hit happens for a counter.
11954         * timevar.def (TV_DF_BYTE_LR): New variable.
11955         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
11956         * passes.c (pass_fast_rtl_byte_dce): New pass.
11957         * fwprop.c (update_df): Added mode to call df_ref_create.
11958         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
11959         DF_REF_EXTRACT_OFFSET.
11960         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
11961         DF_BYTE_LR_OUT, df_byte_lr): New macro.
11962         (df_mm): New enum.
11963         (df_ref_extract): Added mode field.
11964         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
11965         DF_REF_EXTRACT_OFFSET.
11966         (DF_REF_EXTRACT_MODE): New macro.
11967         (df_byte_lr_bb_info): New structure.
11968         (df_print_byte_regset, df_compute_accessed_bytes,
11969         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
11970         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
11971         df_byte_lr_simulate_uses,
11972         df_byte_lr_simulate_artificial_refs_at_top,
11973         df_byte_lr_simulate_artificial_refs_at_end,
11974         df_compute_accessed_bytes): New function.
11975         (df_ref_create): Add parameter.
11976         (df_byte_lr_get_bb_info): New inline function.
11977         * df-scan.c (df_ref_record, df_uses_record,
11978         df_ref_create_structure): Added mode parameter.
11979         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
11980         df_defs_record, df_uses_record, df_get_conditional_uses,
11981         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
11982         df_entry_block_defs_collect, df_exit_block_uses_collect):
11983         Added mode parameter to calls to df_ref_record, df_uses_record,
11984         df_ref_create_structure.
11985         (df_ref_equal_p, df_ref_compare): Added test for modes.
11986         (df_ref_create_structure): Added code to set mode.  Renamed
11987         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
11988         DF_REF_EXTRACT_OFFSET.
11989         * df-core.c (df_print_byte_regset): New function.
11990         * df-byte-scan.c: New file.
11991         * df-problems.c (df_rd_transfer_function): Removed unnecessary
11992         calls to BITMAP_FREE.
11993         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
11994         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
11995         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
11996         df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
11997         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
11998         df_byte_lr_local_compute, df_byte_lr_init,
11999         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
12000         df_byte_lr_transfer_function, df_byte_lr_free,
12001         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
12002         df_byte_lr_add_problem, df_byte_lr_simulate_defs,
12003         df_byte_lr_simulate_uses,
12004         df_byte_lr_simulate_artificial_refs_at_top,
12005         df_byte_lr_simulate_artificial_refs_at_end): New function.
12006         * dce.c (byte_dce_process_block): New function.
12007         (dce_process_block): au is now passed in rather than computed
12008         locally.  Changed loops that look at artificial defs to not look
12009         for conditional or partial ones, because there never are any.
12010         (fast_dce): Now is able to drive byte_dce_process_block or
12011         dce_process_block depending on the kind of dce being done.
12012         (rest_of_handle_fast_dce): Add parameter to fast_dce.
12013         (rest_of_handle_fast_byte_dce): New function.
12014         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
12015         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
12016
12017 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
12018
12019         PR fortran/35019
12020         * gcc.h: Added fortran options that take arguments to
12021         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
12022         macros.
12023
12024 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
12025
12026         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
12027         scalarization if on the LHS and not a full access.
12028
12029 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12030
12031         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
12032
12033 2008-04-18  Rafael Espindola  <espindola@google.com>
12034
12035         * tree-vrp.c (find_case_label_index): Fix the binary search.
12036         (find_case_label_range): New.
12037         (vrp_visit_switch_stmt): Use find_case_label_range.
12038         (simplify_switch_using_ranges): Use find_case_label_range.
12039
12040 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
12041
12042         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
12043         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
12044
12045 2008-04-18  Tom Tromey  <tromey@redhat.com>
12046
12047         PR libcpp/15500:
12048         * doc/cpp.texi (Implementation-defined behavior): Mention
12049         -finput-charset.
12050
12051 2008-04-18  Ian Lance Taylor  <iant@google.com>
12052
12053         * fold-const.c (pointer_may_wrap_p): New static function.
12054         (fold_comparison): Add another test for pointer overflow.  Use
12055         pointer_may_wrap_p to disable some false positives.
12056
12057 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
12058
12059         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
12060         (fname_as_string): Match updated cpp_interpret_string prototype.
12061         (fix_string_type): Support char16_t* and char32_t*.
12062         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
12063         derivative) nodes.  Register as builtin if C++0x.
12064         (c_parse_error): Support CPP_CHAR{16,32}.
12065         * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
12066         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
12067         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
12068         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
12069         CTI_CHAR32_ARRAY_TYPE>: New elements.
12070         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
12071         char32_type_node, signed_char32_type_node, char16_array_type_node,
12072         char32_array_type_node): New defines.
12073         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
12074         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
12075         (lex_string): Support CPP_STRING{16,32}, match updated
12076         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
12077         (lex_charconst): Support CPP_CHAR{16,32}.
12078         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
12079         and CPP_STRING{16,32}.
12080
12081 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
12082
12083         PR bootstrap/35457
12084         * aclocal.m4: Regenerate.
12085         * configure: Regenerate.
12086
12087 2008-04-18  Jan Hubicka  <jh@suse.cz>
12088
12089         * except.c (dw2_size_of_call_site_table,
12090         sjlj_size_of_call_site_table): Use vector API for call_site_record.
12091
12092         * cgraphbuild.c (build_cgraph_edges): Update.
12093         * tree-pass.h: Update comment.
12094         * final.c (leaf_function_p): Update.
12095         (leaf_renumber_regs): Update.
12096         (rest_of_clean_state): Update.
12097         * omp-low.c (expand_omp_parallel): Update.
12098         * ipa-reference.c (analyze_function): Update.
12099         * reorg.c (find_end_label): Update.
12100         (optimize_skip): Update.
12101         (fill_simple_delay_slots): Update.
12102         (fill_simple_delay_slots): Update.
12103         (make_return_insns): Update.
12104         (dbr_schedule): Update.
12105         * gimple-low.c (record_vars_into): Update.
12106         * cfgbuild.c (make_edges): Update.
12107         * function.c (assign_stack_local): Update.
12108         (assign_parm_adjust_stack_rtl): Update.
12109         (locate_and_pad_parm): Update.
12110         (allocate_struct_function): Do not initialize stack_alignment_needed
12111         and preferred_stack_boundary here.
12112         (stack_protect_prologue): Update.
12113         (stack_protect_epilogue): Update.
12114         (expand_function_start): Initialize stack_alignment_needed,
12115         preferred_stack_boundary and max_jumptable_ents.
12116         (expand_function_end): Update.
12117         (free_after_compilation): Do not NULLify epilogue_delay_list.
12118         * function.h (struct rtl_data): Add stack_protect_guard,
12119         stack_alignment_needed,
12120         preferred_stack_boundary, epilogue_delay_list.
12121         (struct function): Remove value_histograms, stack_alignment_needed,
12122         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
12123         last_label_uid,
12124         unexpanded_var_list, stack_protect_guard.
12125         (current_function_epilogue_delay_list): Remove.
12126         * ipa-type-escape.c (analyze_function): Update.
12127         * gimplify.c (pop_gimplify_context): Update comment.
12128         * calls.c (expand_call): Update.
12129         (emit_library_call_value_1): Update.
12130         * except.c (set_nothrow_function_flags): Update.
12131         * cfgexpand.c (get_decl_align_unit): Update.
12132         (create_stack_guard): Update.
12133         (estimated_stack_frame_size): Update.
12134         (expand_used_vars): Update.
12135         (tree_expand_cfg): Free histogram earliers, init expansion variables.
12136         * explow.c (allocate_dynamic_stack_space): Update.
12137         * tree-ssa-live.c (remove_unused_locals): Update.
12138         * varasm.c (mark_constant_pool): Update.
12139         * tree-inline.c (remap_decls): Update.
12140         (initialize_cfun): Update.
12141         (declare_return_variable): Update.
12142         (inline_forbidden_p): Update.
12143         (expand_call_inline): Update.
12144         (declare_inline_vars): Update.
12145         (tree_function_versioning): Update.
12146         * tree-flow.h (value_histograms): New.
12147         (VALUE_HISTOGRAMS): New macro.
12148         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
12149         last_label_uid.
12150         * tree-cfg.c (set_bb_for_stmt): Update.
12151         (replace_by_duplicate_decl): Update.
12152         (move_block_to_fn): Update.
12153         (new_label_mapper): Update.
12154         (dump_function_to_file): Update.
12155         * ipa-struct-reorg.c (build_data_structure): Update.
12156         * cfgrtl.c (print_rtl_with_bb): Update.
12157         * reload1.c (reload): Update.
12158         (reload): Update.
12159         * config/i386/i386.c (setup_incoming_varargs_64,
12160         ix86_compute_frame_layout): Update.
12161         * config/arc/arc.c (arc_output_function_epilogue): Update.
12162
12163 2008-04-18  Marius Strobl <marius@FreeBSD.org>
12164
12165         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
12166         for FreeBSD as well.
12167         * gthr-posix95.h: Likewise.
12168
12169 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
12170
12171         PR rtl-optimization/35838
12172         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
12173         out the byte offset of the first subreg.
12174
12175 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
12176
12177         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
12178         to split_ti instead of three separate calls with single member arrays.
12179         (subti3 splitter): Ditto.
12180         (adddi3 splitter): Ditto with split_di.
12181         (subdi3 splitter): Ditto.
12182         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
12183         two separate calls with single member arrays.  Swap match_dup
12184         operands 1 and 2 to better fit into the array.
12185         (negdi2 splitter): Ditto with split_di.
12186         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
12187         two separate calls with single member arrays.  Swap match_dup operands
12188         6 and 7 to better fit into the array.
12189
12190 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
12191
12192         * config/i386/i386.c (sse_builtin_type): New.
12193         (bdesc_sse_args): Likewise.
12194         (bdesc_sse_3arg): Removed.
12195         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
12196         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
12197         IX86_BUILTIN_ROUNDPS.
12198         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
12199         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
12200         IX86_BUILTIN_ROUNDPS.
12201         (ix86_expand_sse_4_operands_builtin): Removed.
12202         (ix86_expand_sse_operands_builtin): New.
12203         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
12204         and CODE_FOR_sse4_1_roundps.
12205         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
12206         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
12207
12208 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
12209
12210         PR target/35907
12211         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
12212         regs before frame pop when needed.  If use_backchain_to_restore_sp
12213         then load backchain into a temp reg to restore vr and vrsave.  Add
12214         code to restore vr after frame pop if possible.
12215
12216 2008-04-17  Richard Guenther  <rguenther@suse.de>
12217
12218         * tree-vn.c (expressions_equal_p): Do not check type
12219         equality or compatibility before calling operand_equal_p.
12220         * fold-const.c (operand_equal_p): Check equivalence of
12221         integer constants before bailing out due to signedness or
12222         precision differences.
12223         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
12224         spurious differences in type qualification.  Ignore types
12225         for COMPONENT_REFs at all.
12226
12227 2008-04-17  Christian Bruel  <christian.bruel@st.com>
12228
12229         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
12230         msw_skip comparison.
12231
12232 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
12233
12234         PR c/35739
12235         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
12236         reg type.
12237
12238         PR tree-optimization/35899
12239         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
12240         rather than TREE_OPERAND.
12241
12242 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
12243
12244         PR target/35944
12245         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
12246         temporary registers.  Change operand predicate to general_operand.
12247         (remainderxf3): Ditto.
12248
12249 2008-04-16  Richard Guenther  <rguenther@suse.de>
12250
12251         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
12252         * tree-affine.c (aff_combination_expand): Look through some
12253         conversions.
12254
12255 2008-04-15  Doug Kwan  <dougkwan@google.com>
12256
12257         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
12258         for hex printing.
12259         * tree-pretty-print.c (dump_generic_node): Ditto.
12260         * final.c (output_addr_const): Ditto.
12261         * dwarf2out.c (output_cfi): Ditto.
12262         * c-pretty-print.c (pp_c_integer_constant): Ditto.
12263         * print-rtl.c (print_rtx): Ditto.
12264         * print-tree.c (print_node_brief, print_node): Ditto.
12265         * c-common.c (match_case_to_enum_1): Ditto.
12266         * sched-vis.c (print_value): Ditto.
12267         * config/i386/i386.c (print_operand): Cast to long unsigned int
12268         for hex printing.
12269
12270 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
12271         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
12272         MS Windows VirtualProtect function.
12273
12274 2008-04-15  Jan Hubicka  <jh@suse.cz>
12275
12276         * gengtype.c (write_root): Param_is argument is OK.
12277         * expr.c (expand_expr_real_1): Update call of get_exception_*.
12278         * function.h: Include varray.h
12279         (rtl_eh): New stucture based on except.c one.
12280         (call_site_record): New forward declaration and vector type.
12281         * calls.c (emit_call_1): Do not call
12282         note_current_region_may_contain_throw.
12283         * except.c (eh_status): Remove cur_region, try_region since they are
12284         unused.
12285         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
12286         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
12287         sjlj_fc, sjlj_exit_after to rth_eh in function.h.
12288         Remove call_site_data_used, call_site_data_size.
12289         Turn call_site_record into vector in function.h.
12290         (note_current_region_may_contain_throw): Remove.
12291         (get_exception_pointer, get_exception_filter): Do not take struct
12292         function argument; update.
12293         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
12294         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
12295         build_post_landing_pads, dw2_build_landing_pads,
12296         sjlj_assign_call_site_values, sjlj_mark_call_sites,
12297         sjlj_emit_function_enter, sjlj_emit_function_enter,
12298         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
12299         sjlj_build_landing_pads, finish_eh_generation,
12300         remove_exception_handler_label, remove_eh_handler,
12301         maybe_remove_eh_handler, add_reachable_handler,
12302         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
12303         add_action_record, collect_one_action_chain, add_call_site,
12304         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
12305         sjlj_output_call_site_table, output_function_exception_table,
12306         * except.h (note_current_region_may_contain_throw): Remove
12307         (get_exception_pointer, get_exception_filter): Do not take struct
12308         function argument.
12309         * Makefile.in (GTFILES): Put varargs before struct function.
12310
12311 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
12312
12313         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
12314         punt for STRING_CST.
12315         (get_constraint_for): Deal with STRING_CST here instead.
12316
12317 2008-04-15  Richard Guenther  <rguenther@suse.de>
12318
12319         * tree-ssa-propagate.c (substitute_and_fold): Substitute
12320         statements in a basic-block with a backward walk.  Do not
12321         substitute into dead statements but instead remove those.
12322
12323 2008-04-15  Richard Guenther  <rguenther@suse.de>
12324
12325         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
12326         to zero, thus disable creation of SFTs.
12327
12328 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
12329
12330         * tree-predcom.c (suitable_reference_p): Return false if the
12331         reference can throw.
12332
12333 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
12334
12335         PR c/35751
12336         * c-decl.c (finish_decl): If extern or static var has variable
12337         size, set TREE_TYPE (decl) to error_mark_node.
12338
12339 2008-04-15  Rafael Espindola  <espindola@google.com>
12340
12341         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
12342         variable arg1.
12343
12344 2008-04-15  Richard Guenther  <rguenther@suse.de>
12345
12346         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
12347         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
12348         (visit_reference_op_load): Do walk vuse-vdef chains on
12349         vn_reference_lookup.
12350         (visit_reference_op_store): But do not here.
12351         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
12352         vn_reference_lookup.
12353         (vn_lookup_with_vuses): But do so here.
12354
12355 2008-04-14  Ian Lance Taylor  <iant@google.com>
12356
12357         * fold-const.c (fold_overflow_warning): Remove assertion.
12358
12359 2008-04-15  Ben Elliston  <bje@au.ibm.com>
12360
12361         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
12362         temp1 local variables.
12363
12364 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
12365
12366         PR target/35661
12367         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
12368         ".text.unlikely" section as executable.
12369
12370 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
12371
12372         * config/ia64/ia64.c (rtx_needs_barrier): Handle
12373         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
12374         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
12375         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
12376         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
12377         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
12378         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
12379
12380 2008-04-14  Ian Lance Taylor  <iant@google.com>
12381
12382         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
12383         * fold-const.c (fold_comparison): If appropriate, test
12384         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
12385         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
12386         reassociating a pointer type.
12387         * doc/invoke.texi (Optimize Options): Document that
12388         -fstrict-overflow applies to pointer wraparound.
12389
12390 2008-04-13  Jan Hubicka  <jh@suse.cz>
12391
12392         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
12393
12394 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
12395
12396         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
12397         we are going to "save the world".
12398
12399 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
12400
12401         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
12402         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
12403         operand 0 constraint, not "=".
12404
12405 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
12406
12407         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
12408
12409 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
12410
12411         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
12412         of size of positions_needed * CHAR_BIT.
12413
12414 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
12415
12416         PR middle-end/35897
12417         * dse.c (store_info): Change positions_needed to unsigned
12418         HOST_WIDE_INT.
12419         (lowpart_bitmask): New.
12420         (record_store): Cast to unsigned HOST_WIDE_INT for
12421         positions_needed.  Assert width <= size of positions_needed *
12422         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
12423         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
12424         lowpart_bitmask to set mask.
12425
12426 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
12427
12428         * config/bfin/constraints.md: New file.
12429         * config/bfin/bfin.md: Include it.
12430         (adddi3): Use satisfies_constraint functions instead of the old macros.
12431         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
12432         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
12433         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
12434         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
12435         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
12436         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
12437         EXTRA_CONSTRAINT): Delete.
12438         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
12439         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
12440         of the old macros.
12441         * config/bfin/bfin.c: Include "tm-constrs.h".
12442         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
12443         Use satisfies_constraint functions instead of the old macros.
12444         * doc/md.texi (Blackfin Constraints): Update file name reference.
12445
12446 2008-04-11  Richard Guenther  <rguenther@suse.de>
12447
12448         PR tree-optimization/35869
12449         * tree-vrp.c (execute_vrp): Move switch statement update after
12450         jump threading.  Schedule another cfg cleanup run.
12451
12452 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
12453
12454         PR c/35744
12455         * attribs.c (decl_attributes): Return early on errorneous node.
12456
12457 2008-04-10  Oleg Ryjkov  <olegr@google.com>
12458
12459         * tree.h (struct tree_base): Added a new flag default_def_flag.
12460         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
12461
12462 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
12463
12464         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
12465
12466 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12467
12468         PR target/35768
12469         * pa.md: Define mode iterator P.  Define mode attribute dwc.
12470         (dcacheflush): Update pattern to use iterator P and attribute dwc.
12471         (icacheflush): Likewise.
12472         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
12473         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
12474
12475 2008-04-11  Ben Elliston  <bje@au.ibm.com>
12476
12477         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
12478
12479 2008-04-10  Rafael Espindola  <espindola@google.com>
12480
12481         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
12482         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
12483         (extract_range_from_expr): The same.
12484
12485 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
12486
12487         * config/mips/mips.md (GPR2): New mode iterator.
12488         (seq): Add comment.
12489         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
12490         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
12491         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
12492         Rewrite these to take two modes, the mode of comparison and the
12493         mode of the destination.
12494         * config/mips/mips.c (mips_expand_scc): Instead of having
12495         paradoxical subreg as destination, expand "narrowing" scc if mode
12496         of comparison is SI and target is requested in DI mode.
12497         (mips_emit_int_order_test): Update comment.  Make mode of
12498         comparison match CMP0 rather than TARGET.  When creating inverse
12499         target use mode of TARGET.
12500
12501 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
12502
12503         * gcov-dump.c (tag_summary): Only print summaries for the first
12504         GCOV_COUNTERS_SUMMABLE counters.
12505
12506 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
12507
12508         * config/i386/i386.md (absneg): New code iterator.
12509         (absnegprefix): New code attribute.
12510         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
12511         patterns using absneg code iterator.
12512         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
12513         using absneg code iterator.
12514         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
12515         *neg<mode>2 patterns using absneg code iterator.
12516         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
12517         *negextendsfdf2 patterns using absneg code iterator.
12518         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
12519         *negextendsfxf2 patterns using absneg code iterator.
12520         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
12521         *negextendsfdf2 patterns using absneg code iterator.
12522         * config/i386/sse.md (<code><mode>2): Macroize expander from
12523         abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
12524
12525 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
12526
12527         * config/s390/s390.h: Remove the remains of the recent search
12528         & replace action of current_function_outgoing_args_size.
12529
12530 2008-04-10  Ira Rosen  <irar@il.ibm.com>
12531
12532         PR tree-optimization/35821
12533         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
12534         NEW_STMT_LIST is not NULL.
12535
12536 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
12537
12538         PR libstdc++/35597
12539         * toplev.c (process_options): Remove -ffunction-sections debugging
12540         warning.
12541
12542 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
12543
12544         PR middle-end/PR28690
12545         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
12546         than gen_rtx_fmt_ee to perform more canonicalizations.
12547
12548 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12549
12550         PR driver/35665
12551         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
12552
12553 2008-04-09  Richard Guenther  <rguenther@suse.de>
12554
12555         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
12556         (dump_function_to_file): Dump function arguments with types.
12557
12558 2008-04-08  Richard Guenther  <rguenther@suse.de>
12559
12560         * fold-const.c (fold_widened_comparison): Do not allow
12561         sign-changes that change the result.
12562
12563 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
12564
12565         PR target/35839
12566         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
12567         kinds of indirect references.
12568
12569 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
12570
12571         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
12572         GNU Fortran language string.
12573
12574 2008-04-08  Rafael Espindola  <espindola@google.com>
12575
12576         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
12577         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
12578         * tree.h (tree_call_nonnegative_warnv_p): New.
12579
12580 2008-04-08  Jan Hubicka  <jh@suse.cz>
12581
12582         * function.c (free_after_compilation): Clear out regno_reg_rtx
12583         pointer.
12584
12585 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
12586
12587         Revert
12588         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
12589
12590         PR middle-end/PR28690
12591         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
12592         same precedence as REG_POINTER and MEM_POINTER operands.
12593
12594 2008-04-08  Richard Guenther  <rguenther@suse.de>
12595
12596         PR middle-end/35834
12597         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
12598         for adding index to base.
12599
12600 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
12601
12602         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
12603         (MINGW_ENABLE_EXECUTE_STACK): New.
12604         (IN_LIBGCC2): For libgcc include windows.h file for
12605         function declarations.
12606
12607 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
12608
12609         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
12610         and tem2 if tem1 is not a REG or MULT.
12611
12612 2008-04-08  Jan Hubicka  <jh@suse.cz>
12613
12614         * function.h (incomming_args): Break out of struct function.
12615         (function_subsections): Break out of struct function.
12616         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
12617         return_rtx and hard_reg_initial_vals from struct function.
12618         Kill inl_max_label_num.
12619         (current_function_pops_args, current_function_args_info,
12620         current_function_args_size, current_function_args_size,
12621         current_function_pretend_args_size,
12622         current_function_outgoing_args_size,
12623         current_function_internal_arg_pointer, current_function_return_rtx):
12624         Kill compatibility accestor macros.
12625         * builtins.c (expand_builtin_apply_args_1): Update.
12626         (expand_builtin_next_arg): Update.
12627         * df-scan.c (df_get_call_refs): Update.
12628         * dbxout.c (dbxout_function_end): Update.
12629         * dwarf2out.c (dwarf2out_switch_text_section): Update.
12630         (output_line_info): Update.
12631         (secname_for_decl): Update.
12632         (dwarf2out_var_location): Update.
12633         * function.c (free_after_compilation): Update.
12634         (assign_parm_find_stack_rtl): Update.
12635         (assign_parms): Update.
12636         (expand_dummy_function_end): Update.
12637         (expand_function_end): Update.
12638         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
12639         (expand_call): Update.
12640         (emit_library_call_value_1): Update.
12641         (store_one_arg): Update.
12642         * varasm.c (initialize_cold_section_name): Update.
12643         (unlikely_text_section): Update.
12644         (unlikely_text_section_p): Update.
12645         (assemble_start_function): Update.
12646         (assemble_end_function): Update.
12647         (default_section_type_flags): Update.
12648         (switch_to_section): Update.
12649         * integrate.c (set_decl_abstract_flags): Update.
12650         (get_hard_reg_initial_val): Update.
12651         (has_hard_reg_initial_val): Update.
12652         (allocate_initial_values): Update.
12653         * resource.c (init_resource_info): Update.
12654         * config/alpha/alpha.c (NUM_ARGS): Update.
12655         (direct_return): Update.
12656         (alpha_va_start): Update.
12657         (alpha_sa_size): Update.
12658         (alpha_initial_elimination_offset): Update.
12659         (alpha_expand_prologue): Update.
12660         (alpha_start_function): Update.
12661         (alpha_expand_epilogue): Update.
12662         (unicosmk_initial_elimination_offset):
12663         * config/alpha/alpha.md (call expander): Update.
12664         * config/s390/s390.c (s390_register_info): Update.
12665         (s390_register_info): Update.
12666         (s390_frame_info): Update.
12667         (s390_initial_elimination_offset): Update.
12668         (s390_build_builtin_va_list): Update.
12669         (s390_va_start): Update.
12670         * config/spu/spu.c (direct_return): Update.
12671         (spu_expand_prologue): Update.
12672         (spu_initial_elimination_offset): Update.
12673         (spu_build_builtin_va_list): Update.
12674         (spu_va_start): Update.
12675         * config/sparc/sparc.c (sparc_init_modes): Update.
12676         (sparc_compute_frame_size): Update.
12677         (function_value): Update.
12678         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
12679         * config/i386/i386.md (return expander): Update.
12680         * config/i386/i386.c (ix86_va_start): Update.
12681         (ix86_can_use_return_insn_p): Update.
12682         (ix86_compute_frame_layout): Update.
12683         (ix86_expand_epilogue): Update.
12684         * config/sh/sh.c (output_stack_adjust): Update.
12685         (calc_live_regs): Update.
12686         (sh_expand_prologue): Update.
12687         (sh_builtin_saveregs): Update.
12688         (sh_va_start): Update.
12689         (initial_elimination_offset): Update.
12690         (sh_allocate_initial_value): Update.
12691         (sh_function_ok_for_sibcall): Update.
12692         (sh_get_pr_initial_val): Update.
12693         * config/sh/sh.md (return expander): Update.
12694         * config/avr/avr.c (frame_pointer_required_p): UPdate.
12695         * config/crx/crx.c (crx_compute_frame): UPdate.
12696         (crx_initial_elimination_offset): UPdate.
12697         * config/xtensa/xtensa.c (compute_frame_size): Update
12698         (xtensa_builtin_saveregs): Update.
12699         (xtensa_va_start): Update.
12700         (order_regs_for_local_alloc): Update.
12701         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
12702         (xstormy16_expand_builtin_va_start): Update.
12703         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
12704         * config/m68hc11/m68hc11.md (return expanders): Update.
12705         * config/m68hc11/m68hc11.c (expand_prologue): Update.
12706         (expand_epilogue): Update.
12707         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
12708         (cris_simple_epilogue): Update.
12709         (cris_expand_prologue): Update.
12710         (cris_expand_epilogue): Update.
12711         * config/iq2000/iq2000.c (iq2000_va_start): Update.
12712         (compute_frame_size): Update.
12713         * config/mt/mt.c (mt_compute_frame_size): Update.
12714         * config/mn10300/mn10300.c (expand_prologue): Update.
12715         (expand_epilogue): Update.
12716         (initial_offset): Update.
12717         (mn10300_builtin_saveregs):
12718         * config/mn10300/mn10300.md (return expander): Update.
12719         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
12720         (ia64_initial_elimination_offset): Update.
12721         (ia64_initial_elimination_offset): Update.
12722         (ia64_expand_prologue): Update.
12723         * config/m68k/m68k.md (return expander): Update.
12724         * config/rs6000/rs6000.c (rs6000_va_start): Update.
12725         (rs6000_stack_info): Update.
12726         * config/mcore/mcore.c (layout_mcore_frame): Update.
12727         (mcore_expand_prolog): Update.
12728         * config/arc/arc.c (arc_compute_frame_size): Update.
12729         * config/score/score3.c (score3_compute_frame_size): Update.
12730         * config/score/score7.c (score7_compute_frame_size): Update.
12731         * config/arm/arm.c (use_return_insn): Update.
12732         (thumb_find_work_register): Update.
12733         (arm_compute_save_reg_mask): Update.
12734         (arm_output_function_prologue): Update.
12735         (arm_output_epilogue): Update.
12736         (arm_size_return_regs): Update.
12737         (arm_get_frame_offsets): Update.
12738         (arm_expand_prologue): Update.
12739         (thumb_exit): Update.
12740         (thumb_unexpanded_epilogue): Update.
12741         (thumb1_output_function_prologue): Update.
12742         * config/pa/pa.md (return expander): Update.
12743         * config/pa/pa.c (compute_frame_size): Update.
12744         (hppa_builtin_saveregs): Update.
12745         * config/mips/mips.c (mips_va_start): Update.
12746         (mips16_build_function_stub): Update.
12747         (mips_compute_frame_info): Update.
12748         (mips_restore_gp): Update.
12749         (mips_output_function_prologue): Update.
12750         (mips_expand_prologue): Update.
12751         * config/v850/v850.c (compute_frame_size): Update.
12752         (expand_prologue): * config/mmix/mmix.c (along): update.
12753         (mmix_initial_elimination_offset): update.
12754         (mmix_reorg): update.
12755         (mmix_use_simple_return): update.
12756         (mmix_expand_prologue): update.
12757         (mmix_expand_epilogue): Update.
12758         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
12759         (emit_link_insn): Update.
12760
12761 2008-04-08  Anatoly Sokolov <aesok@post.ru>
12762
12763         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
12764         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
12765         instructions.
12766         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
12767         atmega103 device.
12768
12769 2008-04-07  Jan Hubicka  <jh@suse.cz>
12770
12771         * function.h (rtl): Rename to x_rtl.
12772         (crtl): New define.
12773         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
12774         frame_offset, stack_check_probe_note, arg_pointer_save_area,
12775         used_temp_slots avail_temp_slots, temp_slot_level,
12776         nonlocal_goto_handler_labels): Update accesstors.
12777         (rtl): New global variable.
12778         (struct function): Move some fileds to rtl_data.
12779         (get_arg_pointer_save_area): Update prototype.
12780         * builtins.c (expand_builtin_setjmp_receiver): Update call of
12781         get_arg_pointer_save_area.
12782         * expr.c (init_expr): Update
12783         * function.c (get_frame_size): Update
12784         (assign_stack_local): Update
12785         (expand_function_end): Update.
12786         (get_art_pointer_save_area): Update
12787         * function.h
12788         * emit-rtl.c (rtl): Declare.
12789         (regno_reg_rtx): Declare.
12790         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
12791         Update.
12792         (gen_reg_rtx): Update.
12793         * varasm.c (n_deferred_constatns): Update accestor.
12794         (init_varasm_status): Do not allocate varasm_status.
12795         (force_const_mem, get_pool_size, output_constant_pool): Update.
12796         * stmt.c (force_label_rtx): Do not use x_ prefixes.
12797         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
12798         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
12799         * sparc/sparc.h (INIT_EXPANDERS): Update.
12800         * ia64/ia64.h (INIT_EXPANDERS): Update.
12801
12802 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
12803
12804         * reload.c (push_secondary_reload): Add missing break to for loop.
12805
12806 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
12807
12808         PR middle-end/PR28690
12809         * rtlanal.c: Update copyright years.
12810         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
12811         as REG_POINTER and MEM_POINTER operands.
12812         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
12813         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
12814         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
12815         * gcse.c: Update copyright years.
12816         (pre_delete): Call gen_reg_rtx_and_attrs.
12817         (hoist_code): Likewise.
12818         (build_store_vectors): Likewise.
12819         (delete_store): Likewise.
12820         * loop-invariant.c (move_invariant_reg): Likewise.
12821         Update copyright years.
12822
12823 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
12824
12825         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
12826         control string instead of quoted.
12827
12828 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
12829
12830         * doc/rtl.texi: Rewrite of subreg section.
12831
12832 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
12833
12834         PR/35842
12835         * config/i386/i386.c (legitimize_pic_address): Add treating
12836         of dllimport SYM_REF's.
12837         (legitimize_dllimport_symbol): Add prototype.
12838
12839 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
12840
12841         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
12842         reference in constructor with non self-referential type.
12843
12844 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
12845
12846         Removal of Return with Depressed Stack Pointer support
12847         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
12848         (ECF_SP_DEPRESSED): Likewise.
12849         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
12850         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
12851         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
12852         (expand_call): Do not test ECF_SP_DEPRESSED.
12853         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
12854         * function.c (keep_stack_depressed): Delete.
12855         (handle_epilogue_set): Likewise.
12856         (update_epilogue_consts): Likewise.
12857         (emit_equiv_load): Likewise.
12858         (thread_prologue_and_epilogue_insns): Remove support for Return with
12859         Depressed Stack Pointer.
12860         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
12861
12862 2008-04-06  Richard Guenther  <rguenther@suse.de>
12863
12864         PR tree-optimization/35400
12865         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
12866         information from SSA_NAMEs.
12867
12868 2008-04-06  Anatoly Sokolov <aesok@post.ru>
12869
12870         * config/avr/avr.h (avr_mega_p): Remove declaration.
12871         (AVR_MEGA): Remove macro.
12872         * config/avr/avr.c (avr_mega_p): Remove variable.
12873         (avr_override_options): Remove inicializion of avr_mega_p.
12874         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
12875         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
12876         (avr_jump_mode): (Ditto.).
12877         (avr_output_progmem_section_asm_op): (Ditto.).
12878         (avr_asm_init_sections): (Ditto.).
12879         (avr_asm_init_sections): (Ditto.).
12880         (avr_rtx_costs): (Ditto.).
12881         * config/avr/avr.md: (Ditto.).
12882         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
12883         '__AVR_MEGA__'.
12884
12885 2008-04-06  Richard Guenther  <rguenther@suse.de>
12886
12887         PR tree-optimization/35842
12888         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
12889         is_gimple_invariant_address.
12890
12891 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
12892
12893         * gcc.c (default_compilers): Sync Fortran extensions list with
12894         that in fortran/lang-specs.h.
12895         * doc/invoke.texi: Likewise.
12896         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
12897         * dwarf2out.c (gen_compile_unit_die): Likewise.
12898
12899 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
12900
12901         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
12902
12903 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
12904
12905         PR target/12329
12906         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
12907         attribute is used for nested functions.
12908
12909 2008-04-05  Jan Hubicka  <jh@suse.cz>
12910
12911         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
12912
12913         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
12914         letter argument.
12915         (dump_files): Update.
12916         (enable_rtl_dump_file): Do not accept letter argument.
12917         * tree-pass.h (dump_file_info): Remove letter argument.
12918         * toplev.c (decode_d_option): Update -da handling.
12919         * toplev.h (enable_rtl_dump_file): Update prototype.
12920         * passes.c (register_one_dump_file): Do not accept IPA argument; work
12921         it out based on pass type.
12922         (register_dump_files_1): Likewise.
12923         (init_optimization_passes): Update register_one_dump_file calls.
12924         (execute_one_pass): Sanity check that IPA passes are called at IPA
12925         level and RTL passes at RTL level.
12926         (execute_pass_list): IPA pass can not be after or subpass of
12927         GIMPLE/RTL pass.
12928         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
12929         disallov RTL subpasses of IPA subpasses.
12930
12931 2008-04-05  Ben Elliston  <bje@au.ibm.com>
12932
12933         * tree-cfg.c (need_fake_edge_p): Return false for calls to
12934         builtins that return exactly once and do not throw. Cache call to
12935         call_expr_flags.
12936
12937 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
12938
12939         PR rtl-optimization/34916
12940         PR middle-end/35519
12941         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
12942         between instruction pairs.
12943
12944 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
12945
12946         * doc/invoke.texi: Document -mbitops for SH.
12947         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
12948         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
12949         * config/sh/sh.c (print_operand): Add %t operand code.
12950         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
12951         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
12952         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
12953         (extendqihi2): Likewise.
12954         (movqi_i): Likewise.
12955         (insv): Use bset, bclr and bst instructions for SH2A if possible.
12956         (extv): Use bld instruction for SH2A if possible.
12957         (extzv): Likewise.
12958         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
12959         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
12960         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
12961         (bset.b, bclr.b): Define peepholes.
12962         * config/sh/sh.opt (mbitops): New option.
12963
12964 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
12965
12966         PR target/35620
12967         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
12968         and view convert expression.
12969
12970 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
12971
12972         PR target/35364
12973         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
12974
12975 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
12976
12977         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
12978
12979         * config/i386/cpuid.h (bit_AES): New.
12980         (bit_PCLMUL): Likewise.
12981
12982         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
12983         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
12984         SSE2 if AES or PCLMUL is enabled.
12985         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
12986         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
12987         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
12988         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
12989         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
12990         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
12991         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
12992         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
12993         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
12994         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
12995         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
12996         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
12997         __builtin_ia32_aeskeygenassist128 and
12998         __builtin_ia32_pclmulqdq128.
12999         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
13000         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
13001         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
13002
13003         * config/i386/i386.h (TARGET_AES): New.
13004         (TARGET_PCLMUL): Likewise.
13005         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
13006
13007         * config/i386/i386.md (UNSPEC_AESENC): New.
13008         (UNSPEC_AESENCLAST): Likewise.
13009         (UNSPEC_AESDEC): Likewise.
13010         (UNSPEC_AESDECLAST): Likewise.
13011         (UNSPEC_AESIMC): Likewise.
13012         (UNSPEC_AESKEYGENASSIST): Likewise.
13013         (UNSPEC_PCLMUL): Likewise.
13014
13015         * config/i386/i386.opt (maes): New.
13016         (mpclmul): Likewise.
13017
13018         * config/i386/sse.md (aesenc): New pattern.
13019         (aesenclast): Likewise.
13020         (aesdec): Likewise.
13021         (aesdeclast): Likewise.
13022         (aesimc): Likewise.
13023         (aeskeygenassist): Likewise.
13024         (pclmulqdq): Likewise.
13025
13026         * config/i386/wmmintrin.h: New.
13027
13028         * doc/extend.texi: Document AES and PCLMUL built-in function.
13029
13030         * doc/invoke.texi: Document -maes and -mpclmul.
13031
13032 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
13033
13034         * function.c (free_after_parsing): Replace with
13035         cxx_push_function_context from C++ front-end.
13036         (allocate_struct_function): Don't call langhook.
13037         * langhooks.h (struct lang_hooks_for_functions): Delete.
13038         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
13039         member "function".
13040         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
13041         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
13042         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
13043         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
13044         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
13045         remove LANG_HOOKS_FUNCTION_INITIALIZER.
13046         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
13047
13048         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
13049         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
13050
13051 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
13052
13053         PR c/35440
13054         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
13055         for all types.
13056
13057 2008-04-04  Richard Guenther  <rguenther@suse.de>
13058
13059         PR middle-end/35823
13060         * fold-const.c (optimize_minmax_comparison): Use the correct
13061         type for the constant in the simplified comparison.
13062
13063 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
13064
13065         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
13066         Pass L2 size as "--param l2-cache-size" to the compiler.
13067         (decode_l2_cache): New function to decode L2 cache parameters using
13068         0x8000006 extended cpuid function.
13069         (detect_caches_amd): Determine parameters of L2 cache using
13070         decode_l2_caches function.
13071         (decode_caches_intel): Decode L2 cache parameters.
13072         (detect_caches_intel): Determine L2 cache parameters using
13073         decode_caches_intel and decode_l2_caches functions.
13074
13075 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
13076
13077         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
13078         secondary input reload for subword loads from the constant pool.
13079
13080 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
13081
13082         PR target/35713
13083         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
13084           constants of the appropriate size for runtime calculations.
13085
13086         PR c/35712
13087         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
13088           decimal-float literal constant zero.
13089
13090 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
13091
13092         PR c/35738
13093         * c-parser.c (c_parser_omp_atomic): Call
13094         default_function_array_conversion on the RHS.
13095
13096         PR middle-end/35818
13097         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
13098         call is_variable_sized if decl has incomplete type.
13099
13100 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
13101
13102         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
13103
13104 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
13105
13106         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
13107         iterators.
13108         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
13109         (sgt<u>): Merge sgt and sgtu into new expander.
13110         (sgt, sgtu): Remove expanders.
13111         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
13112         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
13113         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
13114         *sgtu_<mode>_mips16 into new pattern.
13115         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
13116         (sge<u>): Merge sge and sgeu into new expander.
13117         (sge, sgeu): Remove expanders.
13118         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
13119         new pattern.
13120         (*sge_<mode>, second *sge_<mode>): Remove patterns.
13121         (slt<u>): Merge slt and sltu into new expander.
13122         (slt, sltu): Remove expanders.
13123         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
13124         (*slt_<mode>, *sltu_<mode>): Remove patterns.
13125         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
13126         *sltu_<mode>_mips16 into new pattern.
13127         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
13128         (sle<u>): Merge sle and sleu into new expander.
13129         (sle, sleu): Remove expanders.
13130         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
13131         (*sle_<mode>, *sleu_<mode>): Remove patterns.
13132         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
13133         *sleu_<mode>_mips16 into new pattern.
13134         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
13135
13136 2008-04-03  Jan Hubicka  <jh@suse.cz>
13137
13138         PR tree-optimization/35795
13139         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
13140         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
13141         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
13142         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
13143         * score/score3.c (score3_output_mi_thunk): Likewise.
13144         * score/score7.c (score7_output_mi_thunk): Likewise.
13145         * mips/mips.c (mips_output_mi_thunk): Likewise.
13146
13147 2008-04-03  Richard Guenther  <rguenther@suse.de>
13148
13149         * tree-vrp.c (extract_range_from_unary_expr): Handle all
13150         conversions.  Simplify code.
13151
13152 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
13153
13154         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
13155
13156 2008-04-03  Tom Tromey  <tromey@redhat.com>
13157             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13158
13159         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
13160         * config/bfin/t-bfin-linux (generated_files): Add
13161         linux-sysroot-suffix.h.
13162         * doc/install.texi (Prerequisites): Require make 3.80.
13163         * doc/sourcebuild.texi (Front End Directory): Document new
13164         variable.
13165         * Makefile.in (generated_files): New variable.
13166         (ALL_HOST_OBJS): New variable.
13167         ($(ALL_HOST_OBJS)): New target.
13168
13169 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
13170
13171         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
13172         (remap_block): Call id->transform_lang_insert_block instead
13173         of langhook.
13174         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
13175         Set id.transform_lang_insert_block to NULL.
13176         (clone_body): Move to cp/optimize.c
13177         * tree-inline.h (struct copy_body_data): Change
13178         transform_lang_insert_block to function pointer.
13179         (copy_generic_body, copy_decl_no_change): Export.
13180         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
13181         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
13182         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
13183
13184         * c-tree.h (insert_block): Kill.
13185         * c-decl.c (insert_block): Kill.
13186
13187 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
13188
13189         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
13190         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
13191         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
13192         argument.
13193         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
13194         argument, call {push,pop}_function_context from here.
13195         * c-parser.c: Use c_{push,pop}_function_context.
13196
13197         * function.c (push_function_context_to): Move meat ...
13198         (push_function_context): ... here.  Simplify.
13199         * function.c (pop_function_context_from): Move meat ...
13200         (pop_function_context): ... here.  Simplify.
13201         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
13202         leave_nested).
13203         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
13204         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
13205         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
13206         * tree.h (push_function_context_to, pop_function_context_from): Remove.
13207
13208 2008-04-03  Ben Elliston  <bje@au.ibm.com>
13209
13210         * expmed.c (extract_force_align_mem_bit_field): Remove.
13211
13212 2008-04-03  Richard Guenther  <rguenther@suse.de>
13213
13214         PR middle-end/35800
13215         * expr.h (try_casesi): Adjust prototype.
13216         * expr.c (try_casesi): Take fallback label as extra parameter.
13217         Use that for gen_casesi if default_label is NULL.
13218         * stmt.c (expand_case): Pass fallback label to try_casesi,
13219         make sure to fill gaps with a fallback label if default_label
13220         is not present.
13221
13222 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
13223
13224         PR target/35801
13225         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
13226
13227 2008-04-03  Ben Elliston  <bje@au.ibm.com>
13228
13229         * expmed.c (extract_split_bit_field): Remove if (0) code.
13230         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
13231         (do_ds_constraint): Likewise.
13232
13233 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
13234
13235         * doc/cppopts.texi (-dU): Document.
13236         * c-common.h (flag_dump_macros): Update comment.
13237         * c-opts.c (handle_OPT_d): Handle -dU.
13238         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
13239         dump_queued_macros, cb_used_define, cb_used_undef): New.
13240         (init_pp_output): Handle -dU.
13241         (cb_line_change): Call dump_queued_macros.
13242         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
13243
13244 2008-04-02  Anatoly Sokolov <aesok@post.ru>
13245
13246         * config/avr/predicates.md (io_address_operand): New predicate.
13247         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
13248         * config/avr/avr.c (avr_io_address_p): Remove function.
13249         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
13250         'avr_io_address_p' function.
13251         (out_movhi_r_mr): (Ditto.).
13252         (out_movqi_mr_r): (Ditto.).
13253         (out_movhi_mr_r): (Ditto.).
13254         (avr_address_cost): (Ditto.).
13255
13256 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
13257
13258         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
13259         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
13260         in 32bit mode when XMM registers are available to avoid store
13261         forwarding stalls.
13262         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
13263         corresponding post-reload splitters.
13264
13265 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
13266
13267         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
13268         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
13269         __builtin_ia32_roundss.
13270         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
13271         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
13272         __builtin_ia32_roundss.
13273         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
13274         IX86_BUILTIN_SHUFPD here.
13275
13276 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
13277
13278         * config/i386/i386.md (plogic): New.
13279         (plogicprefix): Likewise.
13280
13281         * config/i386/mmx.md (mmx_<code><mode>3): New.
13282         (mmx_and<mode>3): Removed.
13283         (mmx_ior<mode>3): Likewise.
13284         (mmx_xor<mode>3): Likewise.
13285
13286         * config/i386/sse.md (<code><mode>3): New.
13287         (*<code><mode>3): Likewise.
13288         (*<code><mode>3): Likewise.
13289         (<code><mode>3): Likewise.
13290         (*sse_<code><mode>3): Likewise.
13291         (*sse2_<code><mode>3): Likewise.
13292         (<code>tf3): Likewise.
13293         (*<code>tf3): Likewise.
13294         (and<mode>3): Likewise.
13295         (*and<mode>3): Likewise.
13296         (ior<mode>3): Removed.
13297         (*ior<mode>3): Likewise.
13298         (xor<mode>3): Likewise.
13299         (*xor<mode>3): Likewise.
13300         (*and<mode>3): Likewise.
13301         (*ior<mode>3): Likewise.
13302         (*xor<mode>3): Likewise.
13303         (and<mode>3): Likewise.
13304         (*sse_and<mode>3): Likewise.
13305         (*sse2_and<mode>3): Likewise.
13306         (andtf3): Likewise.
13307         (*andtf3): Likewise.
13308         (ior<mode>3): Likewise.
13309         (*sse_ior<mode>3): Likewise.
13310         (*sse2_ior<mode>3): Likewise.
13311         (iortf3): Likewise.
13312         (*iortf3): Likewise.
13313         (xor<mode>3): Likewise.
13314         (*sse_xor<mode>3): Likewise.
13315         (*sse2_xor<mode>3): Likewise.
13316         (xortf3): Likewise.
13317         (*xortf3): Likewise.
13318
13319 2008-04-02  Richard Guenther  <rguenther@suse.de>
13320
13321         PR tree-optimization/14495
13322         PR tree-optimization/34793
13323         * tree-vrp.c (struct switch_update): New structure.
13324         (to_remove_edges, to_update_switch_stmts): New VECs.
13325         (simplify_switch_using_ranges): New function.  Remove not taken
13326         case labels and edges.
13327         (simplify_stmt_using_ranges): Call it.
13328         (identify_jump_threads): Mark edges we have queued for removal
13329         so we don't thread them.
13330         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
13331         case label vector.
13332         * tree-cfg.c (group_case_labels): Deal with missing default label.
13333         (tree_verify_flow_info): Allow missing default label.
13334         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
13335         (emit_case_nodes): Likewise.
13336         (expand_case): Do not rely on the default label to be present.
13337         * expr.c (try_casesi): Deal with NULL default_label.
13338         (do_tablejump): Likewise.
13339
13340 2008-04-02  Richard Guenther  <rguenther@suse.de>
13341
13342         PR tree-optimization/14495
13343         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
13344         SWITCH_EXPR here ...
13345         (vrp_visit_switch_stmt): ... but here (new function).
13346         (find_case_label_index): New helper function.
13347         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
13348
13349 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
13350
13351         * fwprop.c: Fix ISO-C99ism.
13352
13353 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
13354
13355         PR bootstrap/35752
13356         * Makefile.in (objdir): Set it here.
13357         * configure.ac: Not here.  Find dynamic linker characteristics.
13358         * exec-tool.in: Use them.
13359         * aclocal.m4: Regenerate.
13360         * configure: Regenerate.
13361
13362 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
13363
13364         * expr.c (expand_var): Delete it.
13365         * expr.h (expand_var): Delete prototype.
13366         * function.c (expand_function_start): Use expand_decl instead.
13367         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
13368         langhook.
13369
13370 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
13371
13372         PR rtl-optimization/35542
13373         * fwprop.c (forward_propagate_and_simplify): Replace
13374         loc_reg_mentioned_in_p with reg_mentioned_p.
13375
13376 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
13377
13378         PR rtl-optimization/35281
13379         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
13380         (propagate_rtx_1): Handle PR_HANDLE_MEM.
13381         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
13382         (varying_mem_p): Move above propagate_rtx.
13383         (all_uses_available_at): Do not check MEMs.
13384
13385 2008-04-02  Rafael Espindola  <espindola@google.com>
13386
13387         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
13388         (register_edge_assert_for_2): Split the cond argument.
13389         (register_edge_assert_for_1): Adjust for the change in
13390         register_edge_assert_for_2.
13391         (register_edge_assert_for): Split the cond argument.
13392         (find_switch_asserts): Adjust for the change in
13393         register_edge_assert_for.
13394
13395 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
13396
13397         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
13398         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
13399         offsets for 64-bit mingw.
13400         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
13401         abi for x86_64-pc-mingw.
13402
13403 2008-04-02  Richard Guenther  <rguenther@suse.de>
13404
13405         * tree-vrp.c (extract_range_from_assert): Make sure to not
13406         produce range min/max with TREE_OVERFOW set.
13407         If merging a anti-range and a range keep the anti-range if
13408         the range covers all values of the type.
13409         (register_edge_assert_for_2): Only allow sign-changing
13410         conversions in detecting canonical range checks.  Also
13411         register an assert for the unsigned name if useful.
13412
13413         PR tree-optimization/35787
13414         * tree-vrp.c (vrp_val_max): New function.
13415         (vrp_val_min): Likewise.
13416         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
13417         (vrp_val_is_min): Likewise.
13418         (supports_overflow_infinity): Use vrp_val_{min,max}.
13419         (negative_overflow_infinity): Likewise.
13420         (positive_overflow_infinity): Likewise.
13421         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
13422         (is_positive_overflow_infinity): Likewise.
13423         (is_overflow_infinity): Likewise.
13424         (avoid_overflow_infinity): Use vrp_val_{min,max} and
13425         vrp_val_is_{min,max}.
13426         (set_and_canonicalize_value_range): Canonicalize anti-ranges
13427         to ranges if possible.  Avoid empty ranges.
13428
13429 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13430
13431         PR middle-end/35705
13432         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
13433         the expression is a function address.
13434
13435 2008-04-01  George Helffrich  <george@gcc.gnu.org>
13436
13437         PR fortran/35154, fortran/23057
13438         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
13439         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
13440         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
13441         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
13442         in common.
13443         (dbxout_syms): Check for COMMON-based symbol and wrap in
13444         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
13445         in bracket for efficiency.
13446
13447         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
13448         using DW_TAG_common_block + member offset.
13449         (add_pubname_string): New function.
13450         (dw_expand_expr): New function to find block name and offset for
13451         COMMON var.
13452         (common_check): New function to check whether symbol in Fortran COMMON.
13453         (gen_variable_die): If COMMON, use DW_TAG_common_block.
13454
13455 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
13456
13457         PR c/35436
13458         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
13459
13460 2008-04-02  Ben Elliston  <bje@au.ibm.com>
13461
13462         * config/v850/v850.md (casesi): Remove if (0) code.
13463         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
13464         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
13465
13466 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
13467
13468         * config/i386/i386.md (rex64suffix): New mode attribute.
13469         (floathi<mode>2): Disable expander for SSE math.
13470         (*floathi<mode>2_1): New insn insn_and_split pattern.
13471         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
13472         corresponding post-reload splitters.
13473         (*floathi<mode>2_i387): New macroized insn pattern.
13474         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
13475         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
13476         insn_and_split pattern.
13477         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
13478         New macroized instruction patterns and corresponding post-reload
13479         splitters.
13480         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
13481         and corresponding post-reload splitters.
13482         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
13483         New macroized instruction patterns.
13484         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
13485         macroized instruction patterns and corresponding post-reload splitters.
13486         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
13487         corresponding post-reload splitters.
13488         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
13489         New macroized instruction patterns.
13490         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
13491         corresponding post-reload splitters.
13492         (*floatsi<mode>2_i387): New macroized instruction patterns.
13493
13494 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
13495
13496         * config/i386/i386.md (smaxmin): New.
13497         (umaxmin): Likewise.
13498         (maxminiprefix): Likewise.
13499         (maxminfprefix): Likewise.
13500         (<code><mode>3): Likewise.
13501         (smin<mode>3): Removed.
13502         (smax<mode>3): Likewise.
13503
13504         * config/i386/mmx.md (mmx_<code>v2sf3): New.
13505         (mmx_<code>v4hi3): Likewise.
13506         (mmx_<code>v8qi3): Likewise.
13507         (mmx_smaxv2sf3): Removed.
13508         (mmx_sminv2sf3): Likewise.
13509         (mmx_umaxv8qi3): Likewise.
13510         (mmx_smaxv4hi3): Likewise.
13511         (mmx_uminv8qi3): Likewise.
13512         (mmx_sminv4hi3): Likewise.
13513
13514         * config/i386/sse.md (<addsub><mode>3): New.
13515         (*<addsub><mode>3): Likewise.
13516         (<sse>_vm<addsub><mode>3): Likewise.
13517         (<maxmin><mode>3): Likewise.
13518         (*<maxmin><mode>3_finite): Likewise.
13519         (*<maxmin><mode>3): Likewise.
13520         (<sse>_vm<maxmin><mode>3): Likewise.
13521         (sse3_h<addsub>v4sf3): Likewise.
13522         (sse3_h<addsub>v2df3): Likewise.
13523         (<maxmin>v16qi3): Likewise.
13524         (*<maxmin>v16qi3): Likewise.
13525         (<maxmin>v8hi3): Likewise.
13526         (*<maxmin>v8hi3): Likewise.
13527         (*sse4_1_<maxmin><mode>3): Likewise.
13528         (*sse4_1_<maxmin><mode>3): Likewise.
13529         (add<mode>3): Removed.
13530         (*add<mode>3): Likewise.
13531         (<sse>_vmadd<mode>3): Likewise.
13532         (sub<mode>3): Likewise.
13533         (*sub<mode>3): Likewise.
13534         (<sse>_vmsub<mode>3): Likewise.
13535         (smin<mode>3): Likewise.
13536         (*smin<mode>3_finite): Likewise.
13537         (*smin<mode>3): Likewise.
13538         (<sse>_vmsmin<mode>3): Likewise.
13539         (smax<mode>3): Likewise.
13540         (*smax<mode>3_finite): Likewise.
13541         (*smax<mode>3): Likewise.
13542         (<sse>_vmsmax<mode>3): Likewise.
13543         (sse3_haddv4sf3): Likewise.
13544         (sse3_haddv2df3): Likewise.
13545         (sse3_hsubv4sf3): Likewise.
13546         (sse3_hsubv2df3): Likewise.
13547         (umaxv16qi3): Likewise.
13548         (*umaxv16qi3): Likewise.
13549         (smaxv8hi3): Likewise.
13550         (*smaxv8hi3): Likewise.
13551         (*sse4_1_smax<mode>3): Likewise.
13552         (*sse4_1_umax<mode>3): Likewise.
13553         (uminv16qi3): Likewise.
13554         (*uminv16qi3): Likewise.
13555         (sminv8hi3): Likewise.
13556         (*sminv8hi3): Likewise.
13557         (*sse4_1_smin<mode>3): Likewise.
13558         (*sse4_1_umin<mode>3): Likewise.
13559
13560 2008-04-01  Rafael Espindola  <espindola@google.com>
13561
13562         * tree-cfg.c (verify_expr): remove in_phi.
13563         (verify_stmt): Don't call walk_tree with verify_expr. Use
13564         is_gimple_min_invariant instead of is_gimple_val.
13565
13566 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
13567
13568         * doc/include/gpl_v3.texi: Update for manpage generation.
13569         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
13570         gpl.texi.
13571         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
13572         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
13573         gpl_v3.texi instead of gpl.texi.
13574         (gpl.pod): New.
13575
13576 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
13577
13578         PR pch/13675
13579         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
13580
13581 2008-04-01  Rafael Espindola  <espindola@google.com>
13582
13583         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
13584         (extract_code_and_val_from_cond): Use
13585         extract_code_and_val_from_cond_with_ops.
13586
13587 2008-04-01  Jan Hubicka  <jh@suse.cz>
13588
13589         * function.c (free_after_compilation): Free epilogue_delay_list.
13590         (prepare_function_start): Assert that previous compilation was freed.
13591
13592 2008-04-01  Jan Hubicka  <jh@suse.cz>
13593             Jim Wilson  <wilson@tuliptree.org>
13594             Andreas Tobler <andreast@gcc.gnu.org>
13595
13596         PR middle-end/35781
13597         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
13598         rtl.emit instead cfun->emit.
13599         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
13600         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
13601
13602 2008-04-01  Ben Elliston  <bje@au.ibm.com>
13603
13604         * doc/c-tree.texi (Function Basics): Fix grammatical error.
13605
13606 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
13607
13608         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
13609         New options
13610         (fprofile-use): Add var flag_profile_use
13611         * coverage.c (coverage_begin_output): Do not open a gcno file for
13612         output only if -ftest-coverage is set.
13613         Do not add getpwd() to gcda file path.
13614         (build_gcov_info): Check the new flag
13615         flag_profile_datafile_relative_path.
13616         (coverage_init): Use profile_data_prefix.
13617         Read profile counter only if flag_profile_use is set.
13618         * opts.c (common_handle_option): New option fprofile-use=,
13619         fprofile-dir=, fprofile-generate=.
13620         * toplev.c (profile_data_prefix): New variable definition.
13621         * toplev.h (profile_data_prefix): New declaration.
13622         * doc/invoke.tex (Option Summary, Optimization Options):
13623         Add new options.
13624
13625 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
13626
13627         * varasm.c (output_constant_pool_1): In LABEL_REF check,
13628         use tmp consistently.
13629
13630         PR target/35695
13631         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
13632         * config/ia64/ia64.c (rtx_needs_barrier): Handle
13633         UNSPEC_FR_RECIP_APPROX_RES.
13634         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
13635
13636 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
13637
13638         PR c/35750
13639         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
13640
13641 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13642
13643         PR middle-end/30186
13644         * fold-const.c (fold_indirect_ref_1): Support accessing non first
13645         element of the vector via a pointer.
13646
13647 2008-03-31  Ian Lance Taylor  <iant@google.com>
13648
13649         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
13650
13651 2008-03-31  Jan Hubicka  <jh@suse.cz>
13652
13653         * builtins.c (expand_builtin_setjmp_receiver): Update call of
13654         get_arg_pointer_save_area.
13655         * expr.c (init_expr): Just clear out rtl.expr.
13656         * function.c (free_after_compilation): Clear out whole RTL structure.
13657         (get_func_frame_size): Merge into ...
13658         (get_frame_size): ... this one.
13659         (assign_stack_local_1): Merge into ...
13660         (assign_stack_local): ... this one.
13661         (expand_function_end): Update call of get_arg_pointer_save_area.
13662         (get_art_pointer_save_area): Remove cfun argument.
13663         * function.h (emit_status): regno_pointer_align does not need length
13664         attribute. Move x_regno_reg_rtx to ...
13665         (regno_reg_rtx): ... new global array.
13666         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
13667         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
13668         apply_args_value, forced_labels, stack_pointer_delta):
13669         Update accestors.
13670         (struct varasm_status): Move here from varasm.c
13671         (struct rtl_data): New. Move here some fields from struct function.
13672         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
13673         frame_offset, stack_check_probe_note, arg_pointer_save_area,
13674         used_temp_slots avail_temp_slots, temp_slot_level,
13675         nonlocal_goto_handler_labels): Update accesstors.
13676         (rtl): New global variable.
13677         (struct function): Move some fileds to rtl_data.
13678         (get_arg_pointer_save_area): Update prototype.
13679         * emit-rtl.c (rtl): Declare.
13680         (regno_reg_rtx): Declare.
13681         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
13682         Update.
13683         (gen_reg_rtx): Update.
13684         (init_virtual_regs): Do not tate emit_status argument.
13685         (init_emit): Do not allocate emit.
13686         * varasm.c (varasm_statuc): Move to function.h.
13687         (n_deferred_constatns): Update accestor.
13688         (init_varasm_status): Do not allocate varasm_status.
13689         (force_const_mem, get_pool_size, output_constant_pool): Update.
13690         * stmt.c (force_label_rtx): Do not use x_ prefixes.
13691         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
13692
13693 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
13694
13695         PR rtl-optimization/35729
13696         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
13697         references.
13698
13699 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
13700
13701         PR target/32000
13702         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
13703         load/store if memory is unaligned.
13704         (*movti_rex64): Likewise.
13705
13706         * config/i386/predicates.md (misaligned_operand): New.
13707
13708 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
13709
13710         PR tree-opt/35431
13711         * tree-ssa-phiopt.c (conditional_replacement): Return early for
13712         complex types.
13713
13714 2008-03-31  Jan Beulich  <jbeulich@novell.com>
13715
13716         * config/ia64/constraints.md: Add 'j' constraint.
13717         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
13718         (movdi_internal): Likewise.
13719
13720 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
13721
13722         PR c/35748
13723         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
13724
13725 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
13726
13727         PR target/35757
13728         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
13729         proper error message for the third argument on blendpd and
13730         blendps.
13731
13732         * config/i386/sse.md (blendbits): New.
13733         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
13734
13735 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
13736
13737         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
13738
13739 2008-03-30  Richard Guenther  <rguenther@suse.de>
13740
13741         PR middle-end/31023
13742         * fold-const.c (fold_sign_changed_comparison): Do leave
13743         conversions to base-types alone.
13744
13745 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13746
13747         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
13748         the link register if one altivec register is be saved.
13749
13750 2008-03-30  Ben Elliston  <bje@au.ibm.com>
13751
13752         * final.c (final_scan_insn): Remove if (0) code.
13753
13754 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
13755
13756         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
13757
13758 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
13759
13760         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
13761         of V4SFmode to ix86_binary_operator_ok.
13762
13763 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
13764
13765         * config/i386/i386.c (override_options): Initialize
13766         ix86_veclib_handler to ix86_veclibabi_svml when
13767         -mveclibabi=svml is used.
13768         (ix86_veclibabi_svml): New function for SVML ABI style
13769         vectorization support.
13770         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
13771
13772 2008-03-28  Rafael Espindola  <espindola@google.com>
13773
13774         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
13775         (tree_binary_nonnegative_warnv_p): Make it public.
13776         (tree_single_nonnegative_warnv_p): Make it public.
13777         (tree_invalid_nonnegative_warnv_p): Make it public.
13778         (tree_unary_nonzero_warnv_p): Make it public.
13779         (tree_binary_nonzero_warnv_p): Make it public
13780         (tree_single_nonzero_warnv_p): Make it public.
13781         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
13782         (extract_range_from_binary_expr): Split the expr argument.
13783         (extract_range_from_unary_expr): Split the expr argument.
13784         (extract_range_from_comparison): Split the expr argument.
13785         (extract_range_from_expr): Use the new aux functions.
13786         (vrp_evaluate_conditional_warnv): Use
13787         vrp_evaluate_conditional_warnv_with_ops.
13788         * tree.h (tree_unary_nonzero_warnv_p): Declare.
13789         (tree_binary_nonzero_warnv_p): Declare.
13790         (tree_single_nonzero_warnv_p): Declare.
13791         (tree_expr_nonzero_warnv_p): Declare.
13792         (tree_unary_nonnegative_warnv_p): Declare.
13793         (tree_binary_nonnegative_warnv_p): Declare.
13794         (tree_single_nonnegative_warnv_p): Declare.
13795         (tree_invalid_nonnegative_warnv_p): Declare.
13796
13797 2008-03-28  Richard Guenther  <rguenther@suse.de>
13798
13799         PR tree-optimization/30317
13800         PR tree-optimization/30911
13801         PR tree-optimization/34793
13802         * tree-vrp.c (set_and_canonicalize_value_range): New function.
13803         (struct assert_locus_d): New member EXPR.
13804         (register_new_assert_for): Add EXPR parameter to support
13805         ASSERT_EXPR <name, expr OP limit>.
13806         (register_edge_assert_for_1): Adjust callers.
13807         (find_assert_locations): Likewise.
13808         (process_assert_insertions_for): Build condition from expression.
13809         (extract_range_from_assert): Handle ASSERT_EXPRs
13810         of the form ASSERT_EXPR <name, expr OP limit>.
13811         (register_edge_assert_for_2): New helper registering
13812         asserts for comparisons.  Recognize range tests of the form
13813         (unsigned)i - CST1 OP CST2.
13814         (register_edge_assert_for_1): Use it.
13815         (register_edge_assert_for): Likewise.
13816         (needs_overflow_infinity): Integer sub-types
13817         do not need overflow infinities.
13818         (vrp_val_is_max): The extreme values of integer sub-types
13819         are those of the base type.
13820         (vrp_val_is_min): Likewise.
13821         * tree.def (ASSERT_EXPR): Document extra allowed conditional
13822         expressions.
13823
13824 2008-03-28  Nick Clifton  <nickc@redhat.com>
13825
13826         PR target/31110
13827         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
13828         Return GENERAL_REGS for stack adjustment reloads.
13829
13830 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13831
13832         PR target/31334
13833         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
13834         const_vector when all the vectors are constant.
13835
13836 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
13837
13838         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
13839         comparisons.
13840         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
13841         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
13842         (scc_sf): New.
13843         (s<code>_sf): Use new scc_sf attribute for opcode names.
13844
13845 2008-03-27  Tom Tromey  <tromey@redhat.com>
13846
13847         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
13848         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
13849         config/spu/t-spu-elf, config/i386/t-interix,
13850         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
13851         config/i386/x-darwin, config/i386/x-mingw32,
13852         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
13853         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
13854         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
13855         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
13856         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
13857         config/rs6000/x-darwin, config/rs6000/t-rs6000,
13858         config/score/t-score-elf, config/arm/t-strongarm-pe,
13859         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
13860         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
13861         Revert automatic dependency patch.
13862
13863 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13864
13865         PR target/35657
13866         * config/i386/i386.c (ix86_function_arg_boundary): Align
13867         decimal floating point to its natural boundary.
13868
13869 2008-03-27  Richard Guenther  <rguenther@suse.de>
13870
13871         PR middle-end/35716
13872         * fold-const.c (fold_comparison): Restrict distinct decl
13873         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
13874         solely rely on operand_equal_p.
13875
13876 2008-03-27  Richard Guenther  <rguenther@suse.de>
13877
13878         PR c/32511
13879         * c-common.c (handle_weak_attribute): Reject combination of
13880         weak and inline.
13881
13882 2008-03-27  Richard Guenther  <rguenther@suse.de>
13883
13884         PR tree-optimization/32810
13885         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
13886         conversions from DECL_INITIAL.
13887         (fold_const_aggregate_ref): Likewise from constructor elements.
13888
13889 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
13890
13891         * tree-affine.h (aff_combination_expand): Declare.
13892         (get_inner_reference_aff): Likewise.
13893         * tree-affine.c (aff_combination_expand): Split out from
13894         tree_to_aff_combination_expand.
13895         (get_inner_reference_aff): New function.
13896         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
13897         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
13898         (struct lim_aux_data): sm_done field removed.
13899         (mem_ref_loc_p, mem_ref_locs_p): New types.
13900         (struct mem_ref): Added id, stored, accesses_in_loop,
13901         indep_loop, dep_loop, indep_ref, dep_ref fields.
13902         Removed is_stored, locs and next fields.
13903         (memory_accesses): New variable.
13904         (movement_possibility): Do not allow moving statements
13905         that store to memory.
13906         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
13907         New functions.
13908         (determine_max_movement): For statements with memory references,
13909         find the outermost loop in that the reference is independent.
13910         (move_computations_stmt): Mark the virtual operands for renaming.
13911         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
13912         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
13913         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
13914         add_vop_ref_mapping, create_vop_ref_mapping_loop,
13915         create_vop_ref_mapping, analyze_memory_references,
13916         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
13917         get_all_locs_in_loop, ref_always_accessed_p,
13918         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
13919         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
13920         store_motion_loop, store_motion): New functions.
13921         (struct vop_to_refs_elt): New type.
13922         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
13923         memref_hash, memref_eq, hoist_memory_references): Rewritten.
13924         (schedule_sm): Replaced by...
13925         (execute_sm): ... this.
13926         (determine_lsm_ref, hoist_memory_references,
13927         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
13928         find_more_ref_vops, free_mem_ref, free_mem_refs,
13929         determine_lsm_loop, determine_lsm): Removed.
13930         (tree_ssa_lim_finalize): Free data structures used by store motion.
13931         (tree_ssa_lim): Call analyze_memory_references.  Use
13932         store_motion instead of determine_lsm.
13933
13934 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
13935
13936         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
13937         rename tmake_file to m68hc11/t-m68hc11.
13938         (mcore): Set inhibit_libc to true.
13939         * config.host (alpha*-dec-*vms*): Set extra_programs.
13940         (interix3*): Don't use host_xmake_file.
13941         * configure.ac: Let config.gcc override inhibit_libc.
13942         * configure: Regenerate.
13943
13944         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
13945         * config/t-openbsd-thread: Remove commented out lines.
13946
13947         * config/x-interix: Remove.
13948
13949         * config/m68hc11/t-m68hc11-gas: Rename to...
13950         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
13951
13952         * config/mcore/t-mcore: Remove T_CFLAGS.
13953         * config/mcore/t-mcore-pe: Likewise.
13954
13955 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
13956
13957         * configure.ac: Replace custom __GNU_SOURCE test with
13958         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
13959         * aclocal.m4: Regenerate.
13960         * configure: Regenerate.
13961         * config.in: Regenerate.
13962
13963 2008-03-27  Richard Guenther  <rguenther@suse.de>
13964
13965         * fold-const.c (target.h): Include.
13966         (fold_comparison): Fold comparison of addresses of decls
13967         that bind locally or of constants.  Consolidate address folding code.
13968         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
13969         results from fold_binary_to_constant.
13970         (compare_values_warnv): Likewise.
13971
13972 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
13973
13974         PR middle-end/35429
13975         * fold-const.c (fold_truthop): Check for integeral types when folding
13976         a == 0 && b == 0 and a != 0 || b != 0 .
13977
13978 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
13979
13980         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
13981
13982 2008-03-26  Andreas Schwab  <schwab@suse.de>
13983
13984         * doc/invoke.texi: Fix use of @item vs. @itemx.
13985
13986 2008-03-26  Tom Tromey  <tromey@redhat.com>
13987
13988         * Makefile.in (build/gensupport.o, build/print-rtl.o,
13989         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
13990         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
13991         build/gencodes.o, build/genconditions.o, build/genconfig.o,
13992         build/genconstants.o, build/genemit.o, build/genextract.o,
13993         build/genflags.o, build/genmddeps.o, build/genopinit.o,
13994         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
13995         options.h.
13996
13997 2008-03-26  Richard Guenther  <rguenther@suse.de>
13998
13999         Revert
14000         2008-03-26  Richard Guenther  <rguenther@suse.de>
14001
14002         * fold-const.c (target.h): Include.
14003         (fold_comparison): Fold comparison of addresses of two decls
14004         that bind locally.  Consolidate address folding code.
14005
14006 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14007
14008         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
14009         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
14010         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
14011         dconstsqrt2, dconstthird, dconste and/or dconst10.
14012         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
14013         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
14014         dconstsqrt2, dconste): Delete.
14015         (init_emit_once): Likewise.  Simplify initializing dconstm1.
14016         Constify variable.
14017         * real.c (get_real_const): New.
14018         * real.h (dconst3, dconst10, dconstm2, dconstthird,
14019         dconstsqrt2, dconste): Delete.
14020         (real_value_const, get_real_const): New.
14021
14022 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
14023
14024         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
14025
14026         * config/i386/i386.c (ix86_function_arg_boundary): Check
14027         BIGGEST_ALIGNMENT instead of 128.
14028         (setup_incoming_varargs_64): Likewise.
14029
14030 2008-03-26  Tom Tromey  <tromey@redhat.com>
14031
14032         * Makefile.in (DEPFILES): Add missing '/'.
14033
14034 2008-03-26  Richard Guenther  <rguenther@suse.de>
14035
14036         * fold-const.c (target.h): Include.
14037         (fold_comparison): Fold comparison of addresses of two decls
14038         that bind locally.  Consolidate address folding code.
14039
14040 2008-03-26  Nick Clifton  <nickc@redhat.com>
14041
14042         PR target/31232
14043         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
14044         not allow INT+INT as a legitimate addressing mode.
14045
14046 2008-03-26  Richard Guenther  <rguenther@suse.de>
14047
14048         * tree-flow.h (widen_bitfield): Remove declaration.
14049         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
14050         (widen_bitfield): Remove function.
14051         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
14052         code.
14053
14054 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14055
14056         PR target/31558
14057         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
14058         error_mark_node's.
14059
14060 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
14061
14062         PR rtl-optimization/35232
14063         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
14064         (forget_old_reloads_1, forget_marked_reloads): Don't clear
14065         reg_reloaded_call_part_clobbered here.
14066         (reload_regs_reach_end_p): New function.
14067         (reload_reg_rtx_for_input): New variable.
14068         (reload_reg_rtx_for_output): Likewise.
14069         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
14070         when reassigning a pseudo register.  Load reloadreg from
14071         reload_reg_rtx_for_input, moving the mode and register
14072         calculation to...
14073         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
14074         instead of the original when deciding whether an input reload
14075         would be a no-op or whether an output reload can be deleted.
14076         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
14077         when setting up new_spill_reg_store.  Load it from
14078         reload_reg_rtx_for_output, moving the mode and register
14079         calculation to...
14080         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
14081         instead of the original when deciding whether an output reload
14082         would be a no-op.  Do the same when modifying insn notes.
14083         Use rtx_equal_p instead of == to compare the registers.
14084         (inherit_piecemeal_p): Take a mode and two register numbers
14085         as argument.
14086         (emit_reload_insns): Clear new_spill_reg_store for every hard
14087         register in the reload register.  Remove spill registers
14088         from reg_reloaded_valid before considering whether to record
14089         inheritance information for them.  Use reload_reg_rtx_for_output
14090         instead of reg_rtx when recording output reloads.  Use
14091         reload_reg_rtx_for_input instead of reg_rtx when recording
14092         input reloads.  Set or clear reg_reloaded_call_part_clobbered
14093         at the same time as setting reg_reloaded_valid.
14094         (delete_output_reload): Add a new_reload_reg parameter and use it
14095         instead of rld[j].reg_rtx.
14096         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
14097         calls accordingly.
14098
14099 2008-03-25  Tom Tromey  <tromey@redhat.com>
14100
14101         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
14102         (build/genattr.o): Likewise.
14103         (build/genattrtab.o): Likewise.
14104         (build/gencodes.o): Likewise.
14105         (build/genconfig.o): Likewise.
14106         (build/genconstants.o): Likewise.
14107         (build/genemit.o): Likewise.
14108         (build/genextract.o): Likewise.
14109         (build/genflags.o): Likewise.
14110
14111 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
14112
14113         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
14114         instead of size_int for integer types.
14115         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
14116         to match type of MINUS_EXPR.
14117
14118 2008-03-25  Tom Tromey  <tromey@redhat.com>
14119
14120         * configure: Rebuilt.
14121         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
14122         Makefile.
14123
14124 2008-03-25  Tom Tromey  <tromey@redhat.com>
14125
14126         * config/x-solaris (host-solaris.o): Update.
14127         * config/x-linux (host-linux.o): Update.
14128         * config/x-hpux (host-hpux.o): Update.
14129         * config/x-darwin (host-darwin.o): Update.
14130         * config/v850/t-v850e (v850-c.o): Update.
14131         * config/v850/t-v850 (v850-c.o): Update.
14132         * config/t-vxworks (vxworks.o): Update.
14133         * config/t-sol2 (sol2-c.o, sol2.o): Update.
14134         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
14135         * config/spu/t-spu-elf (spu-c.o): Update.
14136         (spu.o): Remove.
14137         * config/sh/t-symbian (sh-c.o): Update.
14138         (symbian.o): Update.
14139         * config/sh/t-sh (sh-c.o): Update.
14140         * config/score/t-score-elf (score7.o, score3.o): Update.
14141         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
14142         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
14143         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
14144         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
14145         (rs6000.o): Remove.
14146         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
14147         * config/m32c/t-m32c (m32c-pragma.o): Update.
14148         * config/ia64/t-ia64 (ia64-c.o): Update.
14149         * config/i386/x-mingw32 (host-mingw32.o): Update.
14150         * config/i386/x-i386 (driver-i386.o): Update.
14151         * config/i386/x-darwin (host-i386-darwin.o): Update.
14152         * config/i386/x-cygwin (host-cygwin.o): Update.
14153         * config/i386/t-nwld (nwld.o): Update.
14154         * config/i386/t-netware (netware.o): Update.
14155         * config/i386/t-interix (winnt.o): Update.
14156         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
14157         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
14158         msformat-c.o): Update.
14159         * config/bfin/t-bfin-linux (generated_files): Add
14160         linux-sysroot-suffix.h.
14161         * config/arm/t-wince-pe (pe.o): Update.
14162         * config/arm/t-strongarm-pe (pe.o): Update.
14163         * config/arm/t-pe (pe.o): Update.
14164         * config/arm/t-arm (arm-c.o): Update.
14165         * doc/install.texi (Prerequisites): Require make 3.80.
14166         * Makefile.in: Remove .o targets.
14167         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
14168         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
14169         (simple_generated_h, simple_generated_c): Move earlier.
14170         (generated_files): New variable.
14171         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
14172         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
14173         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
14174         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
14175         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
14176         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
14177         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
14178         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
14179         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
14180         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
14181         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
14182         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
14183         (.c.o): Remove.
14184         (COMPILE.base, COMPILE): New variables.
14185         (%.o): New pattern rule.
14186         (ALL_HOST_OBJS): New variable.
14187         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
14188         (dummy-checksum.o, cc1-checksum.o): Remove.
14189         (DRIVER_SHLIB): New variable.
14190         (DRIVER_DEFINES): Use it.
14191         (gencondmd.c): Move out of build/.
14192         (s-conditions): Update.
14193         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
14194         (ALL_BUILD_OBJS): Likewise.
14195         (build/%.o): Use BUILDCOMPILE.
14196         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
14197         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
14198         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
14199         build/gencheck.o, build/gencodes.o, build/genconditions.o,
14200         build/genconfig.o, build/genconstants.o, build/genemit.o,
14201         build/genextract.o, build/genflags.o, build/genmddeps.o,
14202         build/genopinit.o, build/genoutput.o, build/genpeep.o,
14203         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
14204         build/gen-protos.o, build/scan.o, build/fix-header.o,
14205         build/scan-decls.o): Simplify.
14206         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
14207         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
14208         prefix.o, toplev.o): Reduce to variable setting.
14209         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
14210         ($(out_object_file), gcc-options.o): New targets.
14211         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
14212         * configure: Rebuilt.
14213         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
14214         * doc/sourcebuild.texi (Front End Directory): Document new variable.
14215
14216 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
14217
14218         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
14219         complain when we hit an error, return ERROR_MARK_NODE.
14220
14221 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
14222
14223         * config/sh/constraints.md (Pso, Psz): New constraints.
14224         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
14225         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
14226
14227 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
14228
14229         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
14230         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
14231
14232 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
14233
14234         * config/sh/sh.md (prefetch): Add condition for SH2A target.
14235         (prefetch_sh2a): New.
14236
14237 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
14238             Naveen.H.S  <naveen.hs@kpitcummins.com>
14239
14240         * config/sh/constraints.md (I28): New constraint.
14241         * config/sh/sh.c (broken_move): Add support for movi20s.
14242         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
14243
14244 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
14245             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
14246             Naveen.H.S  <naveen.hs@kpitcummins.com>
14247
14248         * config/sh/sh.c (SH_ATTRIBUTES): Define.
14249         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
14250         (print_operand): Handle resbank in %@ operand code.
14251         (sh_encode_section_info): New.
14252         (push_regs): Add conditions for resbank.
14253         (sh_expand_epilogue): Likewise.
14254         (sh_insert_attributes): Likewise.
14255         (sh_attribute_table): Likewise.
14256         (sh_handle_resbank_handler_attribute): New.
14257         (sh2a_handle_function_vector_handler_attribute): New.
14258         (sh2a_is_function_vector_call): New.
14259         (sh2a_get_function_vector_number): New.
14260         (sh2a_function_vector_p): New.
14261         (sh_cfun_resbank_handler_p): New.
14262         * config/sh/sh.md (calli): Emit jsr/n if possible.
14263         (calli_tbr_rel): New.
14264         (calli_pcrel): Emit jsr/n if possible.
14265         (return_i): Emit rts/n if possible.
14266         (call_valuei_tbr_rel): New.
14267         (call_valuei_pcrel): Add condition for SH2A target.
14268         (call_value): Likewise.
14269         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
14270         (sh2a_get_function_vector_number): Likewise.
14271         (sh2a_is_function_vector_call): Likewise.
14272         * doc/extend.texi: Document TBR relative addressing of SH2A.
14273         (resbank): Add description for SH2A.
14274
14275 2008-03-24  Richard Guenther  <rguenther@suse.de>
14276
14277         PR c/22371
14278         * gimplify.c (gimplify_modify_expr): For frontend type-correct
14279         pointer assignments change conversions according to middle-end rules.
14280         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
14281         * configure.ac: Include type checking in yes.
14282         * configure: Regenerate.
14283
14284 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14285
14286         * diagnostic.c (diagnostic_count_diagnostic): Delete.
14287         (diagnostic_report_diagnostic): Update. Handle ICEs here.
14288
14289 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
14290
14291         * gthr-vxworks.h (UNUSED): Define.
14292
14293 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
14294
14295         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
14296
14297 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
14298
14299         * doc/extend.texi (Function Attributes): Add missing comma in the
14300         example of the "alloc_size" attribute.
14301
14302 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
14303
14304         Revert:
14305         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
14306
14307         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
14308         32bit host.
14309
14310         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
14311
14312         PR target/35496
14313         * stor-layout.c (update_alignment_for_field): Set minimum alignment
14314         of the underlying type of a MS bitfield layout to the natural
14315         alignment of the type.
14316
14317         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
14318
14319         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
14320         to their natural alignment to avoid store forwarding stalls.
14321
14322 2008-03-22  Richard Guenther  <rguenther@suse.de>
14323
14324         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
14325         For PHI nodes verify the address is invariant.
14326         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
14327         (get_symbol_constant_value): Use is_gimple_min_invariant.
14328         (maybe_fold_stmt_indirect): Likewise.
14329
14330 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
14331
14332         PR rtl-optimization/33927
14333         * Makefile.in (dse.o): Depend on $(TM_P_H).
14334         * expr.h (extract_low_bits): Declare.
14335         * expmed.c (extract_low_bits): New function.
14336         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
14337         * dse.c: Include tm_p.h.
14338         (find_shift_sequence): Remove the read_reg argument and return the
14339         read value.  Emit the instructions instead of returning them.
14340         Iterate on new_mode rather than calculating it each time.
14341         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
14342         source to NEW_MODE and extract_low_bits to convert the shifted
14343         value to READ_MODE.
14344         (replace_read): Allow the load and store to have different mode
14345         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
14346         or extraction instructions before trying the replacement.  Update
14347         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
14348
14349 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
14350
14351         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
14352         to their natural alignment to avoid store forwarding stalls.
14353
14354 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14355
14356         PR target/27946
14357         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
14358         encouraging but not allowing gprs for input;
14359         change the input constraint to !f#r.
14360         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
14361         gprs for output;
14362         change the output constraint to !f#r.
14363
14364 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
14365
14366         PR target/13958
14367         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
14368         corresponding post-reload splitters.
14369         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
14370         when x87 FP math is selected.
14371         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
14372         New function prototype.
14373         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
14374         unreachable function to ease macroization of insn patterns.
14375
14376 2008-03-21  Martin Jambor  <mjambor@suse.cz>
14377
14378         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
14379         reference dumps if ddr is NULL or dependence is unknown.
14380
14381 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14382
14383         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
14384         unsigned extension into account.
14385         (ATOMIC_COMPARE_AND_SWAP): Likewise.
14386         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
14387         Do computations on a scratch register.
14388
14389 2008-03-21  Richard Guenther  <rguenther@suse.de>
14390
14391         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
14392         Use is_gimple_min_invariant instead of TREE_INVARIANT.
14393         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
14394         * tree-ssa-dom.c (record_equality): Likewise.
14395         * tree-inline.c (copy_body_r): Likewise.
14396         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
14397         TREE_INVARIANT.
14398
14399 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14400
14401         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
14402         as 'delete_unused' argument.
14403
14404 2008-03-20  Richard Guenther  <rguenther@suse.de>
14405
14406         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
14407         special casing of constant qualifiers.
14408         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
14409         care about them in general.
14410         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
14411         regardless of their type.
14412         (fold_stmt_r): Forcefully fold *& if we end up with that.
14413
14414 2008-03-20  Paul Brook  <paul@codesourcery.com>
14415
14416         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
14417         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
14418         linker flags.
14419         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
14420         definition.
14421         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
14422         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
14423
14424 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
14425
14426         * common.opt (Wmudflap): New option.
14427         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
14428         (mx_register_decls): Likewise.
14429         (mudflap_finish_file): Likewise.
14430         * doc/invoke.texi: Document -Wno-mudflap.
14431
14432 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
14433
14434         * c-format.c (replace_format_name_to_system_name): New.
14435         (cmp_attribs): New.
14436         (convert_format_name_to_system_name): New.
14437         (decode_format_attr): Add use of convert_format_name_to_system_name.
14438         (format_types_orig): Add gnu_ prefix to names.
14439         (check_format_info_main): Special treating of \0 escaped names for
14440         supporting multi-character format specifiers as I32, I64.
14441         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
14442         (gnu_target_overrides_format_attributes): New.
14443         * c-format.h: Add structure target_ovr_attr to hold
14444         system specific formatter names.
14445         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
14446         msformat-c.o file to c_target_objs and cxx_target_objs.
14447         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
14448         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
14449         (TARGET_N_FORMAT_TYPES): New.
14450         * config/i386/msformat-c.c: New.
14451         * config/i386/t-cygming: Add build rule for msformat-c.o.
14452         * doc/extend.texi: Add new format names gnu_* and ms_* and
14453         further details.
14454         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
14455
14456 2008-03-20  Ira Rosen  <irar@il.ibm.com>
14457
14458         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
14459         optimizations turned on under -O3.
14460         (ftree-vectorize): Add that the flag is turned on with -O3.
14461
14462 2008-03-20  Ben Elliston  <bje@au.ibm.com>
14463
14464         * regmove.c (try_auto_increment): Fix spelling error in comment.
14465         * final.c (final_scan_insn): Likewise.
14466
14467 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
14468
14469         PR target/14552
14470         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
14471         allocator preferences for "y" and "r" class registers.
14472         ("*mov<mode>_internal"): Ditto.
14473         ("*movv2sf_internal_rex64"): Ditto.
14474         ("*movv2sf_internal"): Ditto.
14475
14476 2008-03-19  Michael Matz  <matz@suse.de>
14477
14478         PR middle-end/35616
14479         * calls.c (expand_call): Check overlap of arguments with call
14480         address for sibcalls.
14481
14482 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
14483
14484         PR target/35496
14485         * stor-layout.c (update_alignment_for_field): Set minimum alignment
14486         of the underlying type of a MS bitfield layout to the natural
14487         alignment of the type.
14488
14489 2008-03-19  Jan Hubicka  <jh@suse.cz>
14490
14491         PR other/35094
14492         * toplev.c (decode_d_option): Handle all CPP flags.
14493         * tree-vrp.c: Update tree_pass descriptors.
14494         * regrename.c: Update tree_pass descriptors.
14495         * fwprop.c: Update tree_pass descriptors.
14496         * doc/invoke.texi: Remove documentation of dropped -d? flags.
14497         * tree-into-ssa.c: Update tree_pass descriptors.
14498         * tree-dump.c: Update tree_pass descriptors.
14499         * tree-complex.c: Update tree_pass descriptors.
14500         * tree-dump.h: Update tree_pass descriptors.
14501         * see.c: Update tree_pass descriptors.
14502         * cgraphbuild.c: Update tree_pass descriptors.
14503         * tracer.c: Update tree_pass descriptors.
14504         * tree-loop-distribution.c: Update tree_pass descriptors.
14505         * cgraph.c: Update tree_pass descriptors.
14506         * postreload-gcse.c: Update tree_pass descriptors.
14507         * postreload.c: Update tree_pass descriptors.
14508         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
14509         * tree-tailcall.c: Update tree_pass descriptors.
14510         * tree-pass.h (tree_opt_pass): Rename to ...
14511         (opt_pass) ... this one; add "type" field and remove letter field.
14512         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
14513         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
14514         all_lowering_passes): Update declaration.
14515         * ipa-cp.c: Update tree_pass descriptors.
14516         * final.c: Update tree_pass descriptors.
14517         * omp-low.c: Update tree_pass descriptors.
14518         * tree-ssa-dse.c: Update tree_pass descriptors.
14519         * ipa-reference.c: Update tree_pass descriptors.
14520         * tree-ssa-uncprop.c: Update tree_pass descriptors.
14521         * auto-inc-dec.c: Update tree_pass descriptors.
14522         * reorg.c: Update tree_pass descriptors.
14523         * cgraphunit.c: Update tree_pass descriptors.
14524         * tree-ssa-copyrename.c: Update tree_pass descriptors.
14525         * tree-ssa-ccp.c: Update tree_pass descriptors.
14526         * df-core.c: Update tree_pass descriptors.
14527         * mode-switching.c: Update tree_pass descriptors.
14528         * tree-nomudflap.c: Update tree_pass descriptors.
14529         * modulo-sched.c: Update tree_pass descriptors.
14530         * ipa-pure-const.c: Update tree_pass descriptors.
14531         * cse.c: Update tree_pass descriptors.
14532         * web.c: Update tree_pass descriptors.
14533         * tree-stdarg.c: Update tree_pass descriptors.
14534         * tree-ssa-math-opts.c: Update tree_pass descriptors.
14535         * tree-ssa-dom.c: Update tree_pass descriptors.
14536         * tree-nrv.c: Update tree_pass descriptors.
14537         * tree-ssa-alias.c: Update tree_pass descriptors.
14538         * loop-init.c: Update tree_pass descriptors.
14539         * gimple-low.c: Update tree_pass descriptors.
14540         * ipa-inline.c: Update tree_pass descriptors.
14541         * tree-ssa-sink.c: Update tree_pass descriptors.
14542         * global.c: Update tree_pass descriptors.
14543         * ifcvt.c: Update tree_pass descriptors.
14544         * jump.c: Update tree_pass descriptors.
14545         * predict.c: Update tree_pass descriptors.
14546         * tree-ssa-loop.c: Update tree_pass descriptors.
14547         * recog.c: Update tree_pass descriptors.
14548         * dse.c: Update tree_pass descriptors.
14549         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
14550         * tree-eh.c: Update tree_pass descriptors.
14551         * regmove.c: Update tree_pass descriptors.
14552         * local-alloc.c
14553         * function.c: Update tree_pass descriptors.
14554         * tree-vectorizer.c: Update tree_pass descriptors.
14555         * gcse.c: Update tree_pass descriptors.
14556         * ipa-type-escape.c: Update tree_pass descriptors.
14557         * tree-if-conv.c: Update tree_pass descriptors.
14558         * init-regs.c: Update tree_pass descriptors.
14559         * ipa.c: Update tree_pass descriptors.
14560         * tree-ssa-phiopt.c: Update tree_pass descriptors.
14561         * rtl-factoring.c: Update tree_pass descriptors.
14562         * lower-subreg.c: Update tree_pass descriptors.
14563         * bt-load.c: Update tree_pass descriptors.
14564         * tree-dfa.c: Update tree_pass descriptors.
14565         * except.c: Update tree_pass descriptors.
14566         * emit-rtl.c: Update tree_pass descriptors.
14567         * cfgexpand.c: Update tree_pass descriptors.
14568         * tree-cfgcleanup.c: Update tree_pass descriptors.
14569         * cfgcleanup.c: Update tree_pass descriptors.
14570         * tree-ssa-pre.c: Update tree_pass descriptors.
14571         * tree-sra.c: Update tree_pass descriptors.
14572         * tree-mudflap.c: Update tree_pass descriptors.
14573         * tree-ssa-copy.c: Update tree_pass descriptors.
14574         * cfglayout.c: Update tree_pass descriptors.
14575         * tree-ssa-forwprop.c: Update tree_pass descriptors.
14576         * tree-ssa-dce.c: Update tree_pass descriptors.
14577         * tree-ssa.c: Update tree_pass descriptors.
14578         * regclass.c: Update tree_pass descriptors.
14579         * integrate.c: Update tree_pass descriptors.
14580         * tree-optimize.c: Update tree_pass descriptors.
14581         * tree-ssa-phiprop.c: Update tree_pass descriptors.
14582         * tree-object-size.c: Update tree_pass descriptors.
14583         * combine.c: Update tree_pass descriptors.
14584         * tree-outof-ssa.c: Update tree_pass descriptors.
14585         * bb-reorder.c: Update tree_pass descriptors.
14586         * stack-ptr-mod.c: Update tree_pass descriptors.
14587         * var-tracking.c: Update tree_pass descriptors.
14588         * tree-profile.c: Update tree_pass descriptors.
14589         * tree-vect-generic.c: Update tree_pass descriptors.
14590         * reg-stack.c: Update tree_pass descriptors.
14591         * sched-rgn.c: Update tree_pass descriptors.
14592         * tree-ssa-structalias.c: Update tree_pass descriptors.
14593         * tree-cfg.c: Update tree_pass descriptors.
14594         * passes.c (current_pass): Update declaration.
14595         (finish_optimization_passes): Update.
14596         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
14597         (register_one_dump_file, register_dump_files_1, next_pass_1):
14598         Update arguments.
14599         (init_optimization_passes): Update handling of new types.
14600         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
14601         * ipa-struct-reorg.c: Update tree_pass descriptors.
14602         * tree-ssa-reassoc.c: Update tree_pass descriptors.
14603         * combine-stack-adj.c: Update tree_pass descriptors.
14604         * cfgrtl.c: Update tree_pass descriptors.
14605         * dce.c: Update tree_pass descriptors.
14606         * tree-ssanames.c: Update tree_pass descriptors.
14607
14608 2008-03-19  Richard Guenther  <rguenther@suse.de>
14609
14610         PR middle-end/35609
14611         * tree-ssa.c (walk_data): New structure.
14612         (warn_uninitialized_var): If not always_executed warn with "maybe"
14613         instead of "is".
14614         (execute_early_warn_uninitialized): Compute post-dominators.
14615         Initialize always_executed before processing each basic block.
14616
14617 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
14618
14619         PR target/35504
14620         * config/i386/i386.c (x86_this_parameter): Calculate correct location
14621         of "this" pointer when "regparm = N" or "fastcall" is in effect.
14622
14623 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14624
14625         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
14626
14627 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
14628
14629         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
14630         is true.
14631         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
14632         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
14633         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
14634         target after ignore has been set, and move there also the commputation
14635         of subtarget and original_target.
14636         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
14637         (LANG_HOOKS_INITIALIZER): Remove it.
14638         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
14639
14640 2008-03-18  Richard Guenther  <rguenther@suse.de>
14641
14642         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
14643         found an expression with constants, note that in the VN for the lhs.
14644         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
14645         fold them to constants if possible.  Run cleanup_cfg if done so.
14646         (execute_pre): Return todo.
14647         (do_pre): Likewise.
14648         (execute_fre): Likewise.
14649         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
14650         of constants.
14651         (get_prop_source_stmt): Look through pointer conversions.
14652
14653 2008-03-18  Jan Hubicka  <jh@suse.cz>
14654
14655         * tree-pretty-print.c: Include predict.h.
14656         (dump_generic_node): Dump predictor.
14657         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
14658         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
14659         * gimple-low.c (lower_stmt): Likewise.
14660         * expr.c (expand_expr_real): Likewise.
14661         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
14662         them.
14663         (build_predict_expr, build_predict_expr): New.
14664         * predict.h (predictor_name, build_predict_expr): Update.
14665         * c-typeck.c (c_finish_bc_stmt): Add prediction.
14666         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
14667         * predict.def (PRED_CONTINUE): Update hitrate.
14668         * tree.def (PREDICT_EXPR): Define.
14669         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
14670         do not handle BIND_EXPR.
14671         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
14672         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
14673         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
14674         operands.
14675
14676 2008-03-18  Michael Matz  <matz@suse.de>
14677
14678         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
14679
14680 2008-03-18  Richard Guenther  <rguenther@suse.de>
14681
14682         * tree-gimple.h (is_gimple_invariant_address): Declare.
14683         (is_gimple_constant): Likewise.
14684         * tree-gimple.c (is_gimple_constant): New function.
14685         (is_gimple_invariant_address): Likewise.
14686         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
14687         and is_gimple_invariant_address.
14688         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
14689         previous change.
14690         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
14691         an addressable base.
14692
14693 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
14694
14695         PR middle-end/35611
14696         * gimplify.c (gimplify_expr): Gimplify second operand of
14697         OMP_ATOMIC_LOAD.
14698
14699 2008-03-17  Richard Guenther  <rguenther@suse.de>
14700
14701         PR tree-optimization/19637
14702         * fold-const.c (fold_unary): Remove restrictions of removing
14703         intermediate pointer-conversions (P2)(P1)P0.
14704         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
14705         conversion to void pointer.
14706         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
14707
14708 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
14709
14710         PR debug/31510
14711         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
14712         emulated thread local variables.
14713
14714 2008-03-16  Richard Guenther  <rguenther@suse.de>
14715
14716         PR middle-end/35607
14717         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
14718         expand TREE_INVARIANT operations that are not gimple invariant.
14719
14720 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
14721
14722         * doc/extend.texi (Alignment): Say that the ABI controls
14723         the __alignof__ for non-strict-alignment targets rather
14724         than being a recommendation.
14725
14726 2008-03-15  Paul Brook  <paul@codesourcery.com>
14727
14728         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
14729         annotations.
14730         (arm_output_fn_unwind): Mark functions that can not be unwound.
14731
14732 2008-03-15  Paul Brook  <paul@codesourcery.com>
14733
14734         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
14735         extension instructions.
14736
14737 2008-03-15  Richard Guenther  <rguenther@suse.de>
14738
14739         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
14740         and fold constant aggregate refs.
14741         (fold_const_aggregate_ref): Handle string constants
14742         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
14743         (evaluate_stmt): Simplify now that ccp_fold folds constant
14744         aggregate refs.
14745
14746 2008-03-15  Paul Brook  <paul@codesourcery.com>
14747
14748         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
14749         (extzv): Use gen_extzv_t2.
14750         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
14751
14752 2008-03-15  Richard Guenther  <rguenther@suse.de>
14753
14754         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
14755         (fold_const_aggregate_ref): Likewise.
14756         (get_value): Return NULL if we don't have any values.
14757         (ccp_finalize): Set const_val to NULL after freeing it.
14758         * tree-flow.h (get_symbol_constant_value): Declare.
14759         (fold_const_aggregate_ref): Likewise.
14760         * tree-ssa-sccvn.c (try_to_simplify): Use them.
14761
14762 2008-03-15  Richard Guenther  <rguenther@suse.de>
14763
14764         PR middle-end/35593
14765         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
14766         to not produce negative array indices if not allowed.  Add
14767         parameter to indicate that.
14768         (maybe_fold_offset_to_component_ref): Allow negative array
14769         indices only for the first member of a structure.
14770         (maybe_fold_offset_to_reference): Allow negative array indices.
14771         (maybe_fold_stmt_addition): Likewise.
14772
14773 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
14774             Anatoly Sokolov <aesok@post.ru>
14775
14776         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
14777         (avr_arch): Add ARCH_AVR6.
14778         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
14779         (initial_elimination_offset): Initialize and use 'avr_pc_size'
14780         instead of fixed value 2.
14781         (print_operand_address): Use gs() asm specifier instead of pm().
14782         (avr_assemble_integer): (Ditto.).
14783         (avr_output_addr_vec_elt): (Ditto.).
14784         (print_operand): Handle "!" code.
14785         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
14786         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
14787         (AVR_HAVE_EIJMP_EICALL): Define.
14788         (AVR_3_BYTE_PC): Redefine.
14789         (AVR_2_BYTE_PC): (Ditto.).
14790         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
14791         (LINK_SPEC): Add atmega2560 and atmega2561.
14792         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
14793         (crtm2561.o).
14794         * config/avr/avr.md (call_insn): Use eicall instead of icall
14795         for 3 byte PC devices.
14796         (call_value_insn): (Ditto.).
14797         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
14798         (indirect_jump): Use only for for 2 byte PC devices.
14799         (*tablejump): (Ditto.).
14800         (*indirect_jump_avr6): Add insn.
14801         (*tablejump_rjmp): Don't use for 3 byte PC devices.
14802         * config/avr/libgcc.S (__prologue_saves__): Use eijmp
14803         instead of ijmp for 3 byte PC devices.
14804         (__tablejump2__): (Ditto.).
14805         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
14806         (MULITLIB_DIRNAMES): (Ditto.).
14807         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
14808
14809 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
14810
14811         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
14812         "sse2_umulsidi3".  Use V1DI mode for operand 0.
14813         ("mmx_psadbw"): Use V1DI mode for operand 0.
14814         * config/i386/i386-modes.def (V1SI): New vector mode.
14815         * config/i386/i386.c (struct builtin_description)
14816         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
14817         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
14818         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
14819         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
14820         v1di_ftype_v8qi_v8qi type.
14821         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
14822
14823         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
14824         __builtin_ia32_pmuludq]: Fix the mode of return value.
14825
14826 2008-03-15  Richard Guenther  <rguenther@suse.de>
14827
14828         PR middle-end/35595
14829         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
14830         being a PHI_NODE.
14831
14832 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
14833
14834         * doc/invoke.texi (Option Summary, Xtensa Options): Document
14835         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
14836         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
14837         unless TARGET_SERIALIZE_VOLATILE is enabled.
14838         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
14839         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
14840         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
14841
14842 2008-03-14  Richard Guenther  <rguenther@suse.de>
14843
14844         PR tree-optimization/34172
14845         * tree-flow.h (refs_may_alias_p): Declare.
14846         (get_single_def_stmt): Likewise.
14847         (get_single_def_stmt_from_phi): Likewise.
14848         (get_single_def_stmt_with_phi): Likewise.
14849         * tree-dfa.c (refs_may_alias_p): New function.
14850         (get_single_def_stmt): Likewise.
14851         (get_single_def_stmt_from_phi): Likewise.
14852         (get_single_def_stmt_with_phi): Likewise.
14853         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
14854         (vn_reference_lookup_1): New helper function.
14855         (vn_reference_lookup): Walk the virtual use-def chain to
14856         continue searching for a match if the def does not alias the
14857         reference we are looking for.
14858
14859 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
14860
14861         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
14862         archive and Perzl.  Update The Written Word listing.
14863
14864 2008-03-14  Richard Guenther  <rguenther@suse.de>
14865
14866         PR tree-optimization/34043
14867         PR tree-optimization/33989
14868         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
14869         when doing FRE.
14870         (bitmap_find_leader): Use extra argument to verify dominance
14871         relationship inside a basic-block.
14872         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
14873         (find_leader_in_sets): Adjust.
14874         (create_component_ref_by_pieces): Take extra argument for
14875         dominance check, handle lookup failures.
14876         (find_or_generate_expression): Likewise.
14877         (create_expression_by_pieces): Likewise.
14878         (insert_into_preds_of_block): Adjust.
14879         (create_value_expr_from): If asked for, verify all operands
14880         are in the blocks AVAIL_OUT set.
14881         (make_values_for_stmt): Check for SSA_NAMEs that are life
14882         over an abnormal edge.
14883         (compute_avail): Remove such check.
14884         (do_SCCVN_insertion): New function.
14885         (eliminate): If we do not find a leader suitable for replacement
14886         insert a replacement expression from SCCVN if available.
14887         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
14888         (struct vn_ssa_aux): Add needs_insertion flag.
14889         * tree-ssa-sccvn.c (may_insert): New global flag.
14890         (copy_reference_ops_from_ref): Value-number union member access
14891         based on its size, not type and member if insertion is allowed.
14892         (visit_reference_op_load): For a weak match from union type
14893         punning lookup a view-converted value and insert a SSA_NAME
14894         for that value if that is not found.
14895         (visit_use): Make dumps shorter.  Do not disallow value numbering
14896         SSA_NAMEs that are life over an abnormal edge to constants.
14897         (free_scc_vn): Release inserted SSA_NAMEs.
14898         (run_scc_vn): New flag to specify whether insertion is allowed.
14899         Process SSA_NAMEs in forward order.
14900         * tree-ssa-loop-im.c (for_each_index): Handle invariant
14901         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
14902         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
14903         pointer type to/from integral types that do not change the
14904         precision to regular conversions.
14905
14906 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
14907
14908         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
14909         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
14910         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
14911         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
14912         input arguments and the mode of return value.  Built-in functions
14913         that operate on whole 64-bit MMX register now use V1DI mode.
14914
14915 2008-03-13  Alon Dayan  <alond@il.ibm.com>
14916             Olga Golovanevsky  <olga@il.ibm.com>
14917
14918         PR tree-optimization/35041
14919         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
14920         to locate the right position in a statement.
14921
14922 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
14923
14924         PR target/34000
14925         PR target/35553
14926         * config/i386/xmmintrin.h:  Change all static inline functions to
14927         extern inline and add __gnu_inline__ attribute.
14928         * config/i386/bmintrin.h: Ditto.
14929         * config/i386/smmintrin.h: Ditto.
14930         * config/i386/tmmintrin.h: Ditto.
14931         * config/i386/mmintrin-common.h: Ditto.
14932         * config/i386/ammintrin.h: Ditto.
14933         * config/i386/emmintrin.h: Ditto.
14934         * config/i386/pmmintrin.h: Ditto.
14935         * config/i386/mmintrin.h: Ditto.
14936         * config/i386/mm3dnow.h: Ditto.
14937
14938 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
14939
14940         PR middle-end/35185
14941         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
14942         (lower_omp_2): New function.
14943         (lower_omp_1, lower_omp): Rewritten.
14944
14945 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
14946
14947         PR 35054
14948         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
14949         with the phrase "Microsoft Windows compilers".
14950         (Push/Pop Macro Pragmas): New subsection. Document
14951         #pragma push_macro and pragma pop_macro.
14952
14953 2008-03-12  Paul Brook  <paul@codesourcery.com>
14954
14955         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
14956
14957 2008-03-12  Paul Brook  <paul@codesourcery.com>
14958
14959         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
14960         (thumb2_alusi3_short): Exclude PLUS and MINUS.
14961         (thumb2_addsi_shortim): Rename ...
14962         (thumb2_addsi_short): ... to this.  Allow register operands.
14963         (thumb2_subsi_short): New pattern.
14964         (thumb2_one_cmplsi2_short,
14965         thumb2_negsi2_short): New patterns and peepholes.
14966
14967 2008-03-12  Paul Brook  <paul@codesourcery.com>
14968
14969         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
14970
14971 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
14972
14973         * config/i386/i386.md (int_cond): New code iterator.
14974         (fp_cond): Ditto.
14975         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
14976         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
14977         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
14978         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
14979         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
14980         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
14981         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
14982         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
14983
14984 2008-03-12  Paul Brook  <paul@codesourcery.com>
14985
14986         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
14987         instead of {arm,thumb}_compute_save_reg_mask.
14988         (output_return_instruction): Ditto.
14989         (thumb_unexpanded_epilogue): Ditto.
14990         (thumb1_expand_prologue): Ditto.
14991         (thumb1_output_function_prologue): Ditto.
14992         (arm_set_return_address): Ditto.
14993         (thumb_set_return_address): Ditto.
14994         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
14995         regs to achieve stack alignment.
14996         (thumb1_compute_save_reg_mask): Fix compiler warning.
14997         (arm_output_epilogue): Use offsets->saved_regs_mask.
14998         Adjust stack pointer by poping call clobered registers.
14999         (arm_expand_prologue): Use offsets->saved_regs_mask.
15000         Adjust stack pointer by pushing extra registers.
15001         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
15002
15003 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
15004
15005         PR tree-opt/35422
15006         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
15007         conversion to the operands of a multiplication.
15008
15009 2008-03-12  Richard Guenther  <rguenther@suse.de>
15010
15011         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
15012         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
15013         * timevar.def (TV_TREE_PHIPROP): Add.
15014         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
15015         pass description.  Use TV_TREE_PHIPROP.
15016         * tree-ssa-forwprop.c: Remove phiprop code.
15017
15018 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
15019
15020         PR middle-end/35549
15021         * omp-low.c (maybe_lookup_decl): Constify first argument.
15022         (use_pointer_for_field): Change last argument from bool to
15023         omp_context *.  Disallow shared copy-in/out in nested
15024         parallel if decl is shared in outer parallel too.
15025         (build_outer_var_ref, scan_sharing_clauses,
15026         lower_rec_input_clauses, lower_copyprivate_clauses,
15027         lower_send_clauses, lower_send_shared_vars): Adjust callers.
15028
15029 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
15030             Ira Rosen  <irar@il.ibm.com>
15031
15032         * tree-vectorizer.c (free_stmt_vec_info): New function.
15033         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
15034         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
15035         * tree-vectorizer.h (free_stmt_vec_info): Declare.
15036         * tree-vect-transform.c (vectorizable_conversion): Free
15037         vec_oprnds0 if it was allocated.
15038         (vect_permute_store_chain): Remove unused VECs.
15039         (vectorizable_store): Free VECs that are allocated in the..
15040         function.
15041         (vect_transform_strided_load, vectorizable_load): Likewise.
15042         (vect_remove_stores): Simplify the code.
15043         (vect_transform_loop): Move code to vect_remove_stores().
15044         Call vect_remove_stores() and free_stmt_vec_info().
15045
15046 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15047
15048         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
15049         TARGET_HPUX.  Revise comment.
15050         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
15051         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
15052         Use sr4 variant of `be' instruction when not generating PIC code.
15053         (attr_length_call): Adjust for above change.
15054
15055 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15056
15057         * ipa-reference.c (static_execute): Remove module_statics_const and
15058         associated setting code.
15059
15060 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
15061
15062         PR target/35540
15063         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
15064         predicate for operand 1.
15065         (paritysi2_cmp): Use register_operand predicate for operand 2.
15066         Use earlyclobber modifier for operand 1.  Remove support for
15067         memory operands.
15068         (paritydi2_cmp): Use register_operand predicate for operand 3.
15069         Use earlyclobber modifier for operand 1.  Remove support for
15070         memory operands.
15071
15072 2008-03-11  Paul Brook  <paul@codesourcery.com>
15073             Vladimir Prus  <vladimir@codesourcery.com>
15074
15075         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
15076         (arm_compute_save_reg0_reg12_mask): Always
15077         check if register 11 must be saved.  Always safe hard frame pointer
15078         when frame_pointer_needeed.
15079         (arm_compute_save_reg_mask): Save IP and PC
15080         only with apcs frames.
15081         (arm_output_epilogue): Adjust Thumb2 codepath to
15082         be also invoked and work for ARM non-apcs frames.
15083         (arm_expand_prologue): Don't bother saving IP
15084         for non-apcs frame, since it's not clobbered by
15085         prologue code.  Implement non-apcs frame
15086         layout.
15087
15088 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
15089
15090         PR rtl-optimization/35281
15091         * expr.c (convert_move): Use a new pseudo for the intermediate
15092         from_mode->word_mode result.
15093
15094 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
15095
15096         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
15097         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
15098         * toplev.c (compile_file): Don't call it.
15099
15100 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
15101
15102         PR middle-end/35526
15103         * expr.c (store_expr): Call emit_block_move if the mode
15104         of "temp" RTX is BLKmode.
15105
15106 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15107             Richard Guenther  <rguenther@suse.de>
15108
15109         PR tree-optimization/31358
15110         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
15111         the step with a NULL_TREE.
15112         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
15113         to sizetype if type is a pointer type.
15114         (add_candidate_1): Don't convert the base and step to
15115         the generic type if the orginal type is a pointer type.
15116         (add_iv_value_candidates): Use sizetype for the step
15117         if type is a pointer type.
15118         (cand_value_at): Likewise.
15119         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
15120         for pointer types.
15121         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
15122         Don't convert the tem affine to the type.
15123         (add_elt_to_tree): Use sizetype for the step if a pointer.
15124         Use POINTER_PLUS_EXPR for pointers.
15125         (aff_combination_to_tree): Use sizetype for the step if a
15126         pointer.
15127
15128 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
15129
15130         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
15131         Remove commutativity hint.
15132
15133 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
15134
15135         PR c/35438
15136         PR c/35439
15137         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
15138         errorneous type.  Check that v is a VAR_DECL.
15139
15140         PR middle-end/35099
15141         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
15142
15143 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
15144
15145         PR tree-optimization/35494
15146         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
15147         may be overriden at link and run time.
15148
15149 2008-03-10  Richard Guenther  <rguenther@suse.de>
15150
15151         PR tree-optimization/34677
15152         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
15153         (poolify_tree): Likewise.
15154         (modify_expr_template): Likewise.
15155         (poolify_modify_stmt): Likewise.
15156         (insert_fake_stores): Handle all component-ref style stores
15157         in addition to INDIRECT_REF.  Also handle complex types.
15158         Do not poolify the inserted load.
15159         (realify_fake_stores): Do not rebuild the tree but only
15160         make it a SSA_NAME copy.
15161         (init_pre): Remove initialzation of modify_expr_template.
15162         Do not allocate modify_expr_node_pool.
15163         (fini_pre): Do not free modify_expr_node_pool.
15164
15165 2008-03-10  Paul Brook  <paul@codesourcery.com>
15166
15167         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
15168         to avoid conflicts.
15169
15170 2008-03-10  Paul Brook  <paul@codesourcery.com>
15171             Mark Shinwell  <shinwell@codesourcery.com>
15172
15173         * config/arm/cortex-r4.md: New.
15174         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
15175         insn attributes.
15176         * config/arm/arm.md: Include cortex-r4.md.
15177         (insn): Add smmls, sdiv and udiv values.
15178         (generic_sched): Don't use generic scheduling for Cortex-R4.
15179         (arm_issue_rate): New function.
15180         (TARGET_SCHED_ISSUE_RATE): Define.
15181
15182 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
15183
15184         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
15185
15186 2008-03-10  Richard Guenther  <rguenther@suse.de>
15187
15188         * tree-ssa-pre.c (get_sccvn_value): Simplify.
15189         (compute_avail): Do not add stmt uses to AVAIL_OUT.
15190
15191 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
15192
15193         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
15194         Set default to true.
15195
15196 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15197
15198         * c.opt (Wsynth): Deprecate.
15199         * doc/invoke.texi (Option Summary, Warning Options): Document
15200         -Wno-format-contains-nul.
15201
15202 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
15203
15204         PR target/35496
15205         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
15206         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
15207
15208 2008-03-09  Ira Rosen  <irar@il.ibm.com>
15209
15210         * config/rs6000/rs6000.c (builtin_description): Rename vector
15211         left shift operations.
15212         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
15213         (altivec_vsl<VI_char>): Rename to ...
15214         (ashl<mode>3): ... new name.
15215         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
15216         gen_ashlv4si3.
15217         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
15218
15219 2008-03-08  Richard Guenther  <rguenther@suse.de>
15220
15221         * coverage.h (tree_coverage_counter_addr): Declare.
15222         * coverage.c (tree_coverage_counter_addr): New function.
15223         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
15224         before using again.
15225         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
15226         (tree_gen_one_value_profiler): Likewise.
15227         (tree_gen_ic_profiler): Likewise.
15228         (tree_gen_average_profiler): Likewise.
15229         (tree_gen_ior_profiler): Likewise.
15230
15231 2008-03-08  Richard Guenther  <rguenther@suse.de>
15232
15233         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
15234         (vn_binary_op_insert): Likewise.
15235         (vn_unary_op_lookup): Likewise.
15236         (vn_unary_op_insert): Likewise.
15237         (vn_nary_op_lookup): Declare.
15238         (vn_nary_op_insert): Likewise.
15239         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
15240         and binary hashes, use a single obstack for unary_op_pool
15241         and binary_op_pool.
15242         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
15243         a single struct vn_nary_op_s.  Store tree code length and
15244         a variable number of operands.
15245         (struct vn_reference_op_struct): Remove unused op2.
15246         (vn_reference_op_eq): Do not compare op2.
15247         (vn_reference_op_compute_hash): Do not compute hash of op2.
15248         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
15249         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
15250         with vn_nary_op_compute_hash.
15251         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
15252         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
15253         vn_nary_op_lookup.
15254         (vn_unary_op_insert, vn_binary_op_insert): Replace with
15255         vn_nary_op_insert.
15256         (visit_unary_op): Call nary functions.
15257         (visit_binary_op): Likewise.
15258         (process_scc): Adjust for struct vn_tables_s changes.
15259         (allocate_vn_table): Likewise.
15260         (free_vn_table): Likewise.
15261         * tree-vn.c (vn_add): Call nary functions.
15262         (vn_lookup): Likewise.
15263
15264 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
15265
15266         PR target/35498
15267         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
15268         wdst back after sync_compare_and_swapqhi_internal.
15269
15270 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
15271
15272         PR target/22152
15273         * config/i386/i386-modes.def (V1DI): New vector mode.
15274         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
15275         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
15276         (MMXMODE248): Ditto.
15277         (MMXMODE): Add V1DI mode.
15278         (mmxvecsize): Change DI mode to V1DI mode.
15279         ("mov<mode>): Use MMXMODEI8 mode iterator.
15280         ("*mov<mode>_internal_rex64"): Ditto.
15281         ("*mov<mode>_internal"): Ditto.
15282         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
15283         ("mmx_sub<mode>3"): Ditto.
15284         ("mmx_adddi3"): Remove insn pattern.
15285         ("mmx_subdi3"): Ditto.
15286         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
15287         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
15288         ("mmx_ashl<mode>3"): Ditto.
15289         ("mmx_lshrdi3"): Remove insn pattern.
15290         ("mmx_ashldi3"): Ditto.
15291         * config/i386/i386.c (classify_argument): Handle V1DImode.
15292         (function_arg_advance_32): Ditto.
15293         (function_arg_32): Ditto.
15294         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
15295         mmx_addv1di3 insn pattern.
15296         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
15297         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
15298         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
15299         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
15300         Remove definitions of built-in functions.
15301         (V1DI_type_node): New node.
15302         (v1di_ftype_v1di_int): Ditto.
15303         (v1di_ftype_v1di_v1di): Ditto.
15304         (v2si_ftype_v2si_si): Ditto.
15305         (v4hi_ftype_v4hi_di): Remove node.
15306         (v2si_ftype_v2si_di): Ditto.
15307         (ix86_init_mmx_sse_builtins): Handle V1DImode.
15308         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
15309         Redefine builtins using def_builtin_const with *_ftype_*_int node.
15310         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
15311         Add new builtins using def_builtin_const.
15312         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
15313         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
15314         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
15315         * config/i386/mmintrin.h (__v1di): New typedef.
15316         (_mm_add_si64): Cast arguments to __v1di type.
15317         (_mm_sub_si64): Ditto.
15318         (_mm_sll_pi16): Cast __count to __v4hi type.
15319         (_mm_sll_pi32): Cast __count to __v2si type.
15320         (_mm_sll_si64): Cast arguments to __v1di type.
15321         (_mm_srl_pi16): Cast __count to __v4hi type.
15322         (_mm_srl_pi32): Cast __count to __v2si type.
15323         (_mm_srl_si64): Cast arguments to __v1di type.
15324         (_mm_sra_pi16): Cast __count to __v4hi type.
15325         (_mm_sra_pi32): Cast __count to __v2si type.
15326         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
15327         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
15328         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
15329         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
15330         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
15331         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
15332         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
15333         (_mm_srai_pi32): Use __builtin_ia32_psradi.
15334         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
15335         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
15336         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
15337         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
15338
15339 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
15340
15341         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
15342
15343 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
15344
15345         PR target/35373
15346         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
15347         reg+const addressing for Altivec modes.  Don't generate reg+reg
15348         addressing for TFmode or TDmode quantities.
15349
15350 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
15351
15352         * c-common.c (vector_types_convertible_p): Call langhook
15353         instead of comptypes.
15354
15355 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15356
15357         PR tree-opt/35402
15358         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
15359         integral and scalar float variables which have a
15360         NULL DECL_INITIAL.
15361
15362 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
15363
15364         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
15365         dwarf_register_span hook when emitting unwind information for
15366         register-to-memory saves.
15367         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
15368         (rs6000_frame_related): Remove call to spe_synthesize_frame.
15369
15370 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
15371
15372         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
15373         for the same VAR_DECL.
15374
15375 2008-03-06  Tom Tromey  <tromey@redhat.com>
15376
15377         * treelang: Delete.
15378         * doc/standards.texi (Standards): Don't mention treelang.
15379         * doc/invoke.texi (Overall Options): Don't mention treelang.
15380         * doc/install.texi (Prerequisites): Don't mention bison or
15381         treelang.
15382         (Configuration): Don't mention treelang.
15383         (Building): Likewise.
15384         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
15385
15386 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
15387
15388         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
15389         word-extractions out of a multi-word object.
15390
15391 2008-03-06  Richard Guenther  <rguenther@suse.de>
15392
15393         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
15394         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
15395         result type and precision.
15396         * expr.c (get_inner_reference): Set unsignedp based on the result
15397         type of BIT_FIELD_REF.
15398         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
15399         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
15400         (try_instantiate_multiple_fields): Likewise.  Use the correct type
15401         for BIT_FIELD_REF.
15402         (sra_build_assignment): Likewise.
15403         (sra_build_elt_assignment): Likewise.
15404         (sra_explode_bitfield_assignment): Likewise.
15405         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
15406         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
15407         set BIT_FIELD_REF_UNSIGNED.
15408         (vectorizable_load): Likewise.
15409
15410 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
15411
15412         * cse.c (cse_extended_basic_block): Invalidate artificial defs
15413         at bb start.
15414
15415 2008-03-06  Richard Guenther  <rguenther@suse.de>
15416
15417         * alias.c (struct alias_set_entry): Move has_zero_child field
15418         to pack with alias_set.
15419
15420 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
15421
15422         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
15423         32bit host.
15424
15425 2008-03-05  Ian Lance Taylor  <iant@google.com>
15426
15427         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
15428
15429 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
15430
15431         * fwprop.c (update_df): Support width and offset parameters of
15432         df_ref_create.
15433         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
15434         global_conflicts): Change DF_REF_EXTRACT to either
15435         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
15436         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
15437         * df-scan.c (df_ref_record, df_defs_record,
15438         df_ref_create_structure, df_def_record_1, df_uses_record,
15439         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
15440         df_bb_refs_collect, df_entry_block_defs_collect,
15441         df_exit_block_uses_collect): Support new width and offset fields.
15442         (ref_extract_pool): New storage pool.
15443         (df_free_ref): New function.
15444         (df_reg_chain_unlink, df_free_collection_rec,
15445         df_sort_and_compress_refs): Call df_free_ref.
15446         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
15447         of df_ref_extract.
15448         (df_ref_create_structure): Allocate df_ref_extract if offset and
15449         width fields are used.
15450         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
15451         (df_uses_record): Get offset and width from ZERO_EXTRACT
15452         and SIGN_EXTRACT.
15453         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
15454         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
15455         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
15456         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
15457         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
15458         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
15459         (df_ref_extract): New structure.
15460         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
15461         (df_ref_create): Add width and offset parameters.
15462
15463 2008-03-05  Richard Guenther  <rguenther@suse.de>
15464
15465         * tree-ssa-structalias.c (get_constraint_for_component_ref):
15466         Use ranges_overlap_p.
15467         (offset_overlaps_with_access): Rename
15468         to ranges_overlap_p and move ...
15469         * tree-flow-inline.h (ranges_overlap_p): ... here.
15470
15471         * tree.h (get_inner_reference, handled_component_p): Update
15472         comments.
15473
15474         * tree.h (record_component_aliases, get_alias_set,
15475         alias_sets_conflict_p, alias_sets_must_conflict_p,
15476         objects_must_conflict_p): Move declarations ...
15477         * alias.h (record_component_aliases, get_alias_set,
15478         alias_sets_conflict_p, alias_sets_must_conflict_p,
15479         objects_must_conflict_p): ... here.
15480         Include coretypes.h.
15481         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
15482
15483 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
15484
15485         * cfg.c: Include tree-flow.h.
15486         (remove_edge_raw): Call redirect_edge_var_map_clear.
15487         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
15488         * tree-flow-inline.h (redirect_edge_var_map_def): New.
15489         (redirect_edge_var_map_result): New.
15490         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
15491         PENDING_STMT use with redirect_edge_var_map_*.
15492         * tree-ssa.c (edge_var_maps): New definition.
15493         (redirect_edge_var_map_add): New.
15494         (redirect_edge_var_map_clear): New.
15495         (redirect_edge_var_map_dup): New.
15496         (redirect_edge_var_map_vector): New.
15497         (redirect_edge_var_map_destroy): New.
15498         (ssa_redirect_edge): Replace PENDING_STMT use with
15499         redirect_edge_var_map_*.
15500         (flush_pending_stmts): Same.
15501         (delete_tree_ssa): Destroy edge var map.
15502         * tree-flow.h (struct _edge_var_map): New.
15503         Define edge_var_map vector type.
15504         Declare redirect_edge_var_map_* prototypes.
15505         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
15506         * tree-cfg.c (reinstall_phi_args): Replace
15507         PENDING_STMT use with redirect_edge_var_map_*.
15508
15509 2008-03-05  Richard Guenther  <rguenther@suse.de>
15510
15511         PR tree-optimization/35472
15512         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
15513         whose single use_stmt has a overlapping set of loaded and
15514         stored symbols as that use_stmt might be a noop assignment then.
15515
15516 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
15517
15518         * gthr-rtems.h: Implement __gthread_mutex_destroy.
15519
15520 2008-03-05  Richard Guenther  <rguenther@suse.de>
15521
15522         PR c++/35336
15523         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
15524         should be constants.
15525         * tree-cfg.c (verify_expr): Verify it.
15526         * fold-const.c (fold_truthop): Remove code generating
15527         BIT_FIELD_REFs of structure bases.
15528         (fold_binary): Likewise.
15529         (fold_ternary): Position and size of BIT_FIELD_REFs are
15530         always host integers.
15531         (make_bit_field_ref): Remove.
15532         (optimize_bit_field_compare): Remove.
15533         (all_ones_mask_p): Remove.
15534
15535 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
15536
15537         PR gcc/33009
15538         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
15539         (split_block_and_df_analyze): New. Split basic block and rebuild
15540         dataflow.
15541         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
15542         SPLIT_BLOCK.
15543         (split_pattern_seq): Likewise.
15544         (erase_matching_seqs): Likewise.
15545         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
15546
15547 2008-03-04  Geoff Keating  <geoffk@apple.com>
15548
15549         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
15550         declaration and code.
15551         (tree_invalid_nonnegative_warnv_p): Likewise.
15552
15553 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
15554
15555         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
15556         examples.  Truncate option-names then causing overfull hbox.
15557
15558 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15559
15560         PR target/35222
15561         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
15562         on hpux10.
15563         * configure: Rebuilt.
15564
15565 2008-03-04  Rafael Espindola  <espindola@google.com>
15566
15567         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
15568         (tree_unary_nonnegative_warnv_p): New.
15569         (tree_binary_nonnegative_warnv_p): New.
15570         (tree_single_nonnegative_warnv_p): New.
15571         (tree_invalid_nonnegative_warnv_p): New.
15572         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
15573
15574 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15575
15576         PR 28322
15577         * opts.c (handle_option): Postpone 'unknown option' errors only for
15578         warning options.
15579
15580 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
15581
15582         PR target/35453
15583         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
15584         (_SIDD_XXX): This.
15585
15586 2008-03-04  Rafael Espindola  <espindola@google.com>
15587
15588         * fold-const.c (tree_unary_nonzero_warnv_p): New.
15589         (tree_binary_nonzero_warnv_p): New.
15590         (tree_single_nonzero_warnv_p): New.
15591         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
15592
15593 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
15594
15595         PR middle-end/35456
15596         * fold-const.c (fold_cond_expr_with_comparison): Prevent
15597         transformations for modes that have signed zeros.
15598         * ifcvt.c (noce_try_abs): Ditto.
15599
15600 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
15601
15602         * config/i386/i386.c (override_options): Force
15603         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
15604
15605 2008-03-04  Jan Hubicka  <jh@suse.cz>
15606
15607         PR c++/35262
15608         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
15609         in last commit.
15610
15611 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
15612
15613         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
15614         label to probe the stack.
15615
15616 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
15617
15618         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
15619         (__gthr_win32_mutex_destroy): Declare.
15620         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
15621         __gthr_win32_mutex_destroy.
15622         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
15623
15624 2008-03-03  Jan Hubicka  <jh@suse.cz>
15625
15626         PR c++/35262
15627         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
15628         aggressive on inlining cold calls.
15629
15630 2008-03-03  Richard Guenther  <rguenther@suse.de>
15631
15632         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
15633         struct copies into the expression table.
15634         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
15635         (try_to_simplify): Likewise.
15636         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
15637         integral and pointer arguments which do not change the
15638         precision to NOP_EXPRs.
15639         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
15640         VIEW_CONVERT_EXPR case.
15641
15642 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
15643
15644         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
15645         defined in a loop at depth 0 is invariant.
15646         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
15647         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
15648         be called at loop depth 0.
15649
15650 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
15651
15652         PR driver/35420
15653         * gcc.c (process_command): Update copyright notice dates.
15654         * gcov.c (print_version): Likewise.
15655         * gcov-dump.c (print_version): Likewise.
15656         * mips-tfile.c (main): Likewise.
15657         * mips-tdump.c (main): Likewise.
15658
15659 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15660
15661         PR 24924
15662         * c-common.c (flag_permissive): Delete.
15663         (constant_expression_warnings): Check flags first.
15664         (constant_expression_error): New.
15665         * c-common.h (flag_permissive): Delete.
15666         (constant_expression_error): Declare.
15667         * flags.h (flag_permissive): Declare. Update description.
15668         * diagnostic.c (pedwarn): Update.
15669         (permerror): New.
15670         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
15671         (permissive_error_kind): New.
15672         * toplev.c (flag_permissive): Define. Update description.
15673         * toplev.h (permissive_error_kind): Declare.
15674         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
15675         (pedwarn_c90): Use pedantic_warning_kind.
15676         * c-opts.c (c_common_post_options): flag_permissive does not affect
15677         flag_pedantic_errors.
15678
15679 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
15680
15681         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
15682         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
15683         __absvsi2, __absvDI2): Use unsigned arithmetic.
15684
15685 2008-03-02  Andi Kleen  <ak@suse.de>
15686             Richard Guenther  <rguenther@suse.de>
15687
15688         * struct-equiv.c: Remove file.
15689         * cfg_cleanup.c (condjump_equiv_p): Remove.
15690         * Makefile.in (OBJS-common): Remove struct-equiv.o.
15691         (struct-equiv.o): Remove rule.
15692         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
15693         insns_match_p, struct_equiv_block_eq, struct_equiv_init,
15694         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
15695
15696 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
15697
15698         * ifcvt.c (noce_process_if_block): Try to handle only the then
15699         block if the else block exists but isn't suitable.
15700
15701 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
15702
15703         PR gcc/35063
15704         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
15705         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
15706         regression from previous patch.
15707
15708 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
15709
15710         PR gcc/35063
15711         * gthr.h: Add __gthread_mutex_destroy as a function that must be
15712         implemented.
15713         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
15714         * gthr-single.h (__gthread_mutex_destroy): Likewise.
15715         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
15716         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
15717         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
15718         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
15719         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
15720         (__gthread_mutex_destroy_function): Rename to
15721         __gthread_mutex_destroy.
15722         * gthr-dce.h (__gthread_mutex_destroy): Call
15723         pthread_mutex_destroy.
15724         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
15725         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
15726         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
15727
15728 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
15729
15730         * df-scan.c (df_ref_chain_change_bb): Simplify.
15731         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
15732         set_block_for_insn if there's any change.
15733         * df.h ((df_insn_change_bb): Fix prototype.
15734         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
15735         df_insn_change_bb, don't call set_block_for_insn.
15736         * emit-rtl.c (reorder_insns): Likewise.
15737         * haifa-sched.c (move_insn): Likewise.
15738
15739 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
15740
15741         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
15742
15743 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
15744
15745         * tree-flow-inline.h (next_readonly_imm_use): Return
15746         NULL_USE_OPERAND_P after the end.
15747
15748 2008-03-01  Richard Guenther  <rguenther@suse.de>
15749
15750         PR tree-optimization/35411
15751         * tree-sra.c (sra_build_assignment): Split conversion to
15752         final type to a separate statement if we are not assigning
15753         to a register.
15754
15755 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
15756
15757         * fold-const.c (fold_convertible_p): Correct the logic to follow
15758         that in fold_convert().
15759
15760 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
15761
15762         PR c++/35315
15763         * tree-inline.c (build_duplicate_type): When we make a
15764         duplicate type, make it unique in the canonical types system.
15765
15766 2008-02-29  Tom Tromey  <tromey@redhat.com>
15767
15768         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
15769         input_file_stack_history, input_file_stack_restored): Remove.
15770         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
15771         * input.h (struct file_stack): Remove.
15772         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
15773         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
15774         Likewise.
15775         * diagnostic.h (struct diagnostic_context) <last_module>: Change
15776         type.
15777         (diagnostic_last_module_changed): Add 'map' argument.
15778         (diagnostic_set_last_function): Likewise.
15779         * diagnostic.c (undiagnostic_report_current_module): Iterate using
15780         line map, not input_file_stack.
15781         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
15782
15783 2008-02-29  Paul Brook  <paul@codesourcery.com>
15784
15785         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
15786
15787 2008-02-29  Paul Brook  <paul@codesourcery.com>
15788
15789         * config/arm/ieee754-df.S (muldf3): Use RET macros.
15790
15791 2008-02-29  Richard Guenther  <rguenther@suse.de>
15792
15793         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
15794         vn_lookup_or_add.
15795         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
15796         value for comparing for a store match.
15797         (simplify_unary_expression): Do nothing for SSA_NAMEs.
15798         (try_to_simplify): Do not do a full-blown reference lookup.
15799
15800 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
15801
15802         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
15803         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
15804
15805         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
15806
15807 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
15808
15809         * tree-loop-linear.c (try_interchange_loops): Compare memory access
15810         strides against cache sizes.
15811
15812 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
15813
15814         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
15815         constant to fpul.
15816
15817 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
15818
15819         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
15820         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
15821         is smaller than the original promoted value.
15822         (simplify_subreg): If OP is a SUBREG, try to preserve its
15823         SUBREG_PROMOTED_VAR_P information.
15824
15825 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
15826
15827         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
15828         (VN_INFO_GET): Allocate new objects on the obstack.
15829         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
15830         for rpo_numbers_temp, for consistency.
15831         (free_scc_vn): Free the obstack.
15832
15833 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
15834
15835         * doc/invoke.texi: Document -ftree-loop-distribution.
15836         * tree-loop-distribution.c: New.
15837         * tree-pass.h (pass_loop_distribution): New.
15838         * graphds.h (struct graph): Add htab_t indices.
15839         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
15840         * tree-vectorizer.c (rename_variables_in_loop): Extern.
15841         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
15842         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
15843         * tree-data-ref.c (debug_data_dependence_relations): New.
15844         (dump_data_dependence_relation): Also print data references.
15845         (free_data_ref): Extern.
15846         (same_access_functions): Moved...
15847         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
15848         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
15849         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
15850         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
15851         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
15852         (stmts_from_loop): Skip LABEL_EXPR.
15853         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
15854         New.
15855         (build_rdg): Initialize rdg->indices htab.
15856         (free_rdg, stores_from_loop, ref_base_address,
15857         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
15858         have_similar_memory_accesses_1, ref_base_address_1,
15859         remove_similar_memory_refs): New.
15860         * tree-data-ref.h: Depend on tree-chrec.h.
15861         (debug_data_dependence_relations, free_data_ref): Declared.
15862         (same_access_functions): ... here.
15863         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
15864         New.
15865         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
15866         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
15867         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
15868         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
15869         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
15870         rdg_vertex_for_stmt): Declared.
15871         (struct rdg_edge): Add level.
15872         (RDGE_LEVEL): New.
15873         (free_rdg, stores_from_loop, remove_similar_memory_refs,
15874         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
15875         Declared.
15876         (rdg_has_similar_memory_accesses): New.
15877         * tree-vect-analyze.c: Remove unused static decls.
15878         * lambda.h (dependence_level): New.
15879         * common.opt (ftree-loop-distribution): New.
15880         * tree-flow.h (mark_virtual_ops_in_bb,
15881         slpeel_tree_duplicate_loop_to_edge_cfg,
15882         rename_variables_in_loop): Declared.
15883         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
15884         (OBJS-common): Add tree-loop-distribution.o.
15885         (tree-loop-distribution.o): New rule.
15886         * tree-cfg.c (mark_virtual_ops_in_bb): New.
15887         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
15888         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
15889
15890 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
15891
15892         PR target/33963
15893         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
15894         other than structures and unions.
15895
15896 2008-02-28  Richard Guenther  <rguenther@suse.de>
15897
15898         Revert:
15899         2008-02-26  Richard Guenther  <rguenther@suse.de>
15900
15901         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
15902         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
15903         (lookup_decl_from_uid): Declare.
15904         (remove_decl_from_map): Likewise.
15905         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
15906         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
15907         (decl_for_uid_map): New global hashtable mapping DECL_UID
15908         to the decl tree.
15909         (init_ttree): Allocate it.
15910         (insert_decl_to_uid_decl_map): New helper function.
15911         (make_node_stat): Insert new decls into the map.
15912         (copy_node_stat): Likewise.
15913         (lookup_decl_from_uid): New function.
15914         (remove_decl_from_map): Likewise.
15915         (print_decl_for_uid_map_statistics): New helper.
15916         (dump_tree_statistics): Call it.
15917
15918         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
15919         (referenced_var_iterator): Adjust.
15920         (FOR_EACH_REFERENCED_VAR): Adjust.
15921         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
15922         (num_referenced_vars): Adjust.
15923         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
15924         (first_referenced_var): Remove.
15925         (end_referenced_vars_p): Likewise.
15926         (next_referenced_var): Likewise.
15927         (referenced_var_iterator_set): New helper function.
15928         * tree-dfa.c (referenced_var_lookup): Adjust.
15929         (referenced_var_check_and_insert): Likewise.
15930         (remove_referenced_var): Likewise.
15931         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
15932         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
15933         (verify_call_clobbering): Likewise.
15934         (verify_memory_partitions): Likewise.
15935         (init_tree_ssa): Allocate bitmap instead of hashtable for
15936         referenced_vars.
15937         (delete_tree_ssa): Adjust.
15938         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
15939         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
15940         (compute_tag_properties): Likewise.
15941         (set_initial_properties): Likewise.
15942         (find_partition_for): Likewise.
15943         (update_reference_counts): Likewise.
15944         (dump_may_aliases_for): Likewise.
15945         * tree-ssa-operands.c (add_virtual_operand): Likewise.
15946         (add_call_clobber_ops): Likewise.
15947         (add_call_read_ops): Likewise.
15948         (get_asm_expr_operands): Likewise.
15949         * tree-into-ssa.c (dump_decl_set): Likewise.
15950         (update_ssa): Likewise.
15951         * tree-sra.c (scan_function): Likewise.
15952         (decide_instantiations): Likewise.
15953         (scalarize_parms): Likewise.
15954         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
15955         (dsa_named_for): Likewise.
15956         * tree-ssa-structalias.c (update_alias_info): Likewise.
15957         (merge_smts_into): Likewise.
15958
15959 2008-02-27  David Daney  <ddaney@avtrex.com>
15960
15961         PR target/34409
15962         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
15963         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
15964         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
15965         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
15966         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
15967
15968 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
15969
15970         PR target/25477
15971         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
15972         (BUILT_IN_NEXTTOWARD): Remove.
15973         (BUILT_IN_NEXTTOWARDF): Ditto.
15974         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
15975         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
15976
15977 2008-02-27  Tom Tromey  <tromey@redhat.com>
15978
15979         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
15980         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
15981
15982 2008-02-27  Jan Beulich  <jbeulich@novell.com>
15983
15984         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
15985         update the respective field on newdecl.
15986
15987 2008-02-27  Revital Eres  <eres@il.ibm.com>
15988
15989         PR rtl-optimization/34999
15990         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
15991         crossing edges that ends with a call insn.
15992         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
15993         call insn and clear the EDGE_CROSSING flag of the crossing edge
15994         when fixing fallthru edges.
15995
15996 2008-02-27  Richard Guenther  <rguenther@suse.de>
15997
15998         PR middle-end/35390
15999         * fold-const.c (fold_unary): Return the correct argument,
16000         converted to the result type.
16001
16002 2008-02-27  Richard Guenther  <rguenther@suse.de>
16003
16004         PR middle-end/34971
16005         * expr.c (expand_expr_real_1): Assert on rotates that operate
16006         on partial modes.
16007         * fold-const.c (fold_binary): Use the types precision, not the
16008         bitsize of the mode if folding rotate expressions.  Build rotates
16009         only for full modes.
16010
16011 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
16012
16013         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
16014         and CPP_PRAGMA_EOL.
16015         * c-pragma.c (pragma_ns_name): New typedef.
16016         (registered_pp_pragmas): New variable.
16017         (c_pp_lookup_pragma): New function.
16018         (c_register_pragma_1): If flag_preprocess_only, do nothing
16019         for non-expanded pragmas, for expanded ones push pragma's
16020         namespace and name into registered_pp_pragmas vector.
16021         (c_invoke_pragma_handler): Register OpenMP pragmas even when
16022         flag_preprocess_only, don't register GCC pch_preprocess
16023         pragma if flag_preprocess_only.
16024         * c-opts.c (c_common_init): Call init_pragma even if
16025         flag_preprocess_only.
16026         * c-pragma.c (c_pp_lookup_pragma): New prototype.
16027         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
16028         cpp_register_pragma if flag_preprocess_only.
16029
16030 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16031
16032         PR c/28800
16033         * c-parser.c (c_parser_translation_unit): Warn for empty
16034         translation unit, not empty source file.
16035
16036 2008-02-26  Paul Brook  <paul@codesourcery.com>
16037
16038         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
16039         operand for Thumb-2.
16040         * config/arm/arm.h (reg_class): Add CORE_REGS.
16041         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
16042         (BASE_REG_CLASS): Use CORE_REGS.
16043         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
16044         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
16045         (REGNO_OK_FOR_INDEX_P): Exclude SP.
16046         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
16047         ARM_REGNO_OK_FOR_INDEX_P.
16048         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
16049         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
16050         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
16051         (ldm/stm peepholes): Ditto.
16052         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
16053         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
16054         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
16055         * config/arm/constraints.md: Enable "k" constraint on ARM.
16056
16057 2008-02-27  Ben Elliston  <bje@au.ibm.com>
16058
16059         * config/rs6000/rs6000.c: Annotate cache line size field in all
16060         instances of struct processor_costs.
16061
16062 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
16063
16064         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
16065         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
16066         jump_bypass): New counters.
16067         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
16068         * dce.c (gate_ud_dce): Same.
16069         (gate_fast_dce): Same.
16070         * dse.c (gate_dse1): New function.
16071         (gate_dse2): New function.
16072         (gate_dse): Merge results of new gate functions.
16073         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
16074         (gate_handle_jump_bypass): Add dbg_cnt.
16075         (gate_handle_gcse): Add dbg_cnt.
16076         * ifcvt.c (gate_handle_if_conversion): Same.
16077         (gate_handle_if_after_combine): Same.
16078         (gate_handle_if_after_reload): Same.
16079         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
16080
16081 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
16082
16083         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
16084         line sizes.
16085         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
16086
16087 2008-02-26  Jason Merrill  <jason@redhat.com>
16088
16089         PR c++/35315
16090         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
16091         alone if it's the naming decl for the type's main variant.
16092
16093 2008-02-26  Tom Tromey  <tromey@redhat.com>
16094
16095         * system.h (USE_MAPPED_LOCATION): Poison.
16096         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
16097         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
16098         (make_goto_expr_edges): Likewise.
16099         (remove_bb): Likewise.
16100         (execute_warn_function_return): Likewise.
16101         * basic-block.h (struct edge_def) <goto_locus>: Change type to
16102         location_t.
16103         * c-common.c (fname_decl): Remove old location code.
16104         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
16105         location code.
16106         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
16107         variant.
16108         (ASM_INPUT_SOURCE_LOCATION): Likewise.
16109         (gen_rtx_ASM_INPUT): Likewise.
16110         (gen_rtx_ASM_INPUT_loc): Likewise.
16111         (get_rtx_asm_OPERANDS): Remove.
16112         * cfglayout.c (insn_locators_alloc): Remove old location code.
16113         (set_curr_insn_source_location): Likewise.
16114         (curr_insn_locator): Likewise.
16115         * print-tree.c (print_node): Remove old location code.
16116         * tree-mudflap.c (mf_varname_tree): Remove old location code.
16117         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
16118         * cfgexpand.c (expand_gimple_cond_expr): Don't use
16119         location_from_locus.
16120         (construct_exit_block): Remove old location code.
16121         * emit-rtl.c (force_next_line_note): Remove old location code.
16122         * profile.c (branch_prob): Remove old location code.
16123         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
16124         LOC_LINE): Remove old-location variants.
16125         * langhooks.c (lhd_print_error_function): Remove old location
16126         code.
16127         * configure, config.in: Rebuilt.
16128         * configure.ac (--enable-mapped-location): Remove.
16129         * c-decl.c (c_init_decl_processing): Remove old location code.
16130         (finish_function): Likewise.
16131         * recog.c (decode_asm_operands): Remove old location code.
16132         * c-pch.c (c_common_read_pch): Remove old location code.
16133         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
16134         variants.
16135         * gimple-low.c (lower_function_body): Remove old location code.
16136         * toplev.c (unknown_location): Remove.
16137         (push_srcloc): Remove old-location variant.
16138         (process_options): Remove old location code.
16139         (lang_dependent_init): Likewise.
16140         * input.h (UNKNOWN_LOCATION): Move definition.
16141         (location_t): Undeprecate.
16142         (source_locus): Remove.
16143         (location_from_locus): Remove.
16144         (struct location_s): Remove.
16145         Remove all old-location code.
16146         (input_line, input_filename): Remove.
16147         * final.c (final_scan_insn): Remove old location code.
16148         * diagnostic.c (diagnostic_build_prefix): Remove
16149         USE_MAPPED_LOCATION test.
16150         * tree.h (gimple_stmt) <locus>: Now a location_t.
16151         (tree_exp) <locus>: Likewise.
16152         (DECL_IS_BUILTIN): Remove old-location variant.
16153         (annotate_with_file_line, annotate_with_locus): Likewise.
16154         (expr_locus, set_expr_locus): Update.
16155         * tree.c (build1_stat): Remove old location code.
16156         (last_annotated_node): Remove.
16157         (annotate_with_file_line): Remove old-location variant.
16158         (annotate_with_locus): Likewise.
16159         (expr_location): Remove old location code.
16160         (set_expr_location): Likewise.
16161         (expr_has_location): Likewise.
16162         (expr_locus): Likewise.
16163         (set_expr_locus): Likewise.
16164         (expr_filename): Don't use location_from_locus.
16165         (expr_lineno): Likewise.
16166         * rtl-error.c (location_for_asm): Remove old location code.
16167         * c-lex.c (cb_line_change): Remove old location code.
16168         (fe_file_change): Likewise.
16169         (cb_def_pragma): Likewise.
16170         (c_lex_with_flags): Likewise.
16171         * gengtype.c (do_typedef): Don't special-case location types.
16172         (define_location_structures): Remove.
16173         (main): Don't call define_location_structures.
16174         * tree-pretty-print.c (dump_implicit_edges): Remove old location
16175         code.
16176
16177 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16178
16179         PR 26264
16180         * builtins.def (BUILT_IN_STDARG_START): Remove.
16181         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
16182         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
16183         * tree-inline.c (inline_forbidden_p_1): Likewise.
16184
16185 2008-02-26  Richard Guenther  <rguenther@suse.de>
16186
16187         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
16188         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
16189         (lookup_decl_from_uid): Declare.
16190         (remove_decl_from_map): Likewise.
16191         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
16192         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
16193         (decl_for_uid_map): New global hashtable mapping DECL_UID
16194         to the decl tree.
16195         (init_ttree): Allocate it.
16196         (insert_decl_to_uid_decl_map): New helper function.
16197         (make_node_stat): Insert new decls into the map.
16198         (copy_node_stat): Likewise.
16199         (lookup_decl_from_uid): New function.
16200         (remove_decl_from_map): Likewise.
16201         (print_decl_for_uid_map_statistics): New helper.
16202         (dump_tree_statistics): Call it.
16203
16204         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
16205         (referenced_var_iterator): Adjust.
16206         (FOR_EACH_REFERENCED_VAR): Adjust.
16207         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
16208         (num_referenced_vars): Adjust.
16209         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
16210         (first_referenced_var): Remove.
16211         (end_referenced_vars_p): Likewise.
16212         (next_referenced_var): Likewise.
16213         (referenced_var_iterator_set): New helper function.
16214         * tree-dfa.c (referenced_var_lookup): Adjust.
16215         (referenced_var_check_and_insert): Likewise.
16216         (remove_referenced_var): Likewise.
16217         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
16218         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
16219         (verify_call_clobbering): Likewise.
16220         (verify_memory_partitions): Likewise.
16221         (init_tree_ssa): Allocate bitmap instead of hashtable for
16222         referenced_vars.
16223         (delete_tree_ssa): Adjust.
16224         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
16225         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
16226         (compute_tag_properties): Likewise.
16227         (set_initial_properties): Likewise.
16228         (find_partition_for): Likewise.
16229         (update_reference_counts): Likewise.
16230         (dump_may_aliases_for): Likewise.
16231         * tree-ssa-operands.c (add_virtual_operand): Likewise.
16232         (add_call_clobber_ops): Likewise.
16233         (add_call_read_ops): Likewise.
16234         (get_asm_expr_operands): Likewise.
16235         * tree-into-ssa.c (dump_decl_set): Likewise.
16236         (update_ssa): Likewise.
16237         * tree-sra.c (scan_function): Likewise.
16238         (decide_instantiations): Likewise.
16239         (scalarize_parms): Likewise.
16240         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
16241         (dsa_named_for): Likewise.
16242         * tree-ssa-structalias.c (update_alias_info): Likewise.
16243         (merge_smts_into): Likewise.
16244
16245 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16246
16247         PR 34351
16248         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
16249         * c-opts.c (c_common_handle_option): Wall enables
16250         Wvolatile-register-var.
16251         * common.opt: Move Wvolatile-register-var to...
16252         * c.opt: ...here.
16253
16254 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16255
16256         * common.opt (Wlarger-than=): New.
16257         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
16258         -Wlarger-than=.
16259         * opts.c (common_handle_option): Handle -Wlarger-than=.
16260         * optc-gen.awk: Likewise.
16261         * opth-gen.awk: Likewise.
16262         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
16263         * tree-optimize.c (tree_rest_of_compilation): Likewise.
16264
16265 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16266
16267         * c-common.c (match_case_to_enum_1): Add appropriate
16268         OPT_W* parameter to warning.
16269         (c_do_switch_warnings): Likewise.
16270         * c-typeck.c (warning_init): Add one more parameter following
16271         'warning' function.
16272         (push_init_level): Update call to warning_init.
16273         (pop_init_level): Likewise.
16274         (add_pending_init): Likewise.
16275         (output_init_element: Likewise.
16276
16277 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16278
16279         PR 28322
16280         * toplev.c (toplev_main): If there are warnings or error, print
16281         errors for ignored options.
16282         * opts.c (ignored_options): New static variable.
16283         (postpone_unknown_option_error): New.
16284         (print_ignored_options): New.
16285         (handle_option): Postpone errors for unknown -Wno-* options.
16286         * opts.h (print_ignored_options): Declare.
16287
16288 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
16289
16290         * config/mips/mips.md (loadgp_blockage, blockage): Change type
16291         to "ghost".
16292
16293 2008-02-25  Richard Guenther  <rguenther@suse.de>
16294
16295         Revert:
16296         2008-02-25  Richard Guenther  <rguenther@suse.de>
16297
16298         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
16299         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
16300         (lookup_decl_from_uid): Declare.
16301         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
16302         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
16303         (decl_for_uid_map): New global hashtable mapping DECL_UID
16304         to the decl tree.
16305         (init_ttree): Allocate it.
16306         (insert_decl_to_uid_decl_map): New helper function.
16307         (make_node_stat): Insert new decls into the map.
16308         (copy_node_stat): Likewise.
16309         (lookup_decl_from_uid): New function.
16310         (print_decl_for_uid_map_statistics): New helper.
16311         (dump_tree_statistics): Call it.
16312
16313         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
16314         (referenced_var_iterator): Adjust.
16315         (FOR_EACH_REFERENCED_VAR): Adjust.
16316         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
16317         (num_referenced_vars): Adjust.
16318         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
16319         (first_referenced_var): Remove.
16320         (end_referenced_vars_p): Likewise.
16321         (next_referenced_var): Likewise.
16322         (referenced_var_iterator_set): New helper function.
16323         * tree-dfa.c (referenced_var_lookup): Adjust.
16324         (referenced_var_check_and_insert): Likewise.
16325         (remove_referenced_var): Likewise.
16326         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
16327         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
16328         (verify_call_clobbering): Likewise.
16329         (verify_memory_partitions): Likewise.
16330         (init_tree_ssa): Allocate bitmap instead of hashtable for
16331         referenced_vars.
16332         (delete_tree_ssa): Adjust.
16333         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
16334         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
16335         (compute_tag_properties): Likewise.
16336         (set_initial_properties): Likewise.
16337         (find_partition_for): Likewise.
16338         (update_reference_counts): Likewise.
16339         (dump_may_aliases_for): Likewise.
16340         * tree-ssa-operands.c (add_virtual_operand): Likewise.
16341         (add_call_clobber_ops): Likewise.
16342         (add_call_read_ops): Likewise.
16343         (get_asm_expr_operands): Likewise.
16344         * tree-into-ssa.c (dump_decl_set): Likewise.
16345         (update_ssa): Likewise.
16346         * tree-sra.c (scan_function): Likewise.
16347         (decide_instantiations): Likewise.
16348         (scalarize_parms): Likewise.
16349         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
16350         (dsa_named_for): Likewise.
16351         * tree-ssa-structalias.c (update_alias_info): Likewise.
16352         (merge_smts_into): Likewise.
16353
16354 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
16355
16356         PR fortran/29549
16357         * doc/invoke.texi (-fcx-limited-range): Document new option.
16358         * toplev.c (process_options): Handle -fcx-fortran-rules.
16359         * common.opt: Add documentation for -fcx-fortran-rules.
16360
16361 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
16362
16363         PR c/35162
16364         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
16365         actual behaviour and C99.
16366
16367 2008-02-26  Ben Elliston  <bje@au.ibm.com>
16368
16369         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
16370         (ASM_CPU_POWER6_SPEC): Likewise.
16371         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
16372         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
16373         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
16374
16375 2008-02-25  Richard Guenther  <rguenther@suse.de>
16376
16377         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
16378         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
16379         (lookup_decl_from_uid): Declare.
16380         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
16381         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
16382         (decl_for_uid_map): New global hashtable mapping DECL_UID
16383         to the decl tree.
16384         (init_ttree): Allocate it.
16385         (insert_decl_to_uid_decl_map): New helper function.
16386         (make_node_stat): Insert new decls into the map.
16387         (copy_node_stat): Likewise.
16388         (lookup_decl_from_uid): New function.
16389         (print_decl_for_uid_map_statistics): New helper.
16390         (dump_tree_statistics): Call it.
16391
16392         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
16393         (referenced_var_iterator): Adjust.
16394         (FOR_EACH_REFERENCED_VAR): Adjust.
16395         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
16396         (num_referenced_vars): Adjust.
16397         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
16398         (first_referenced_var): Remove.
16399         (end_referenced_vars_p): Likewise.
16400         (next_referenced_var): Likewise.
16401         (referenced_var_iterator_set): New helper function.
16402         * tree-dfa.c (referenced_var_lookup): Adjust.
16403         (referenced_var_check_and_insert): Likewise.
16404         (remove_referenced_var): Likewise.
16405         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
16406         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
16407         (verify_call_clobbering): Likewise.
16408         (verify_memory_partitions): Likewise.
16409         (init_tree_ssa): Allocate bitmap instead of hashtable for
16410         referenced_vars.
16411         (delete_tree_ssa): Adjust.
16412         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
16413         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
16414         (compute_tag_properties): Likewise.
16415         (set_initial_properties): Likewise.
16416         (find_partition_for): Likewise.
16417         (update_reference_counts): Likewise.
16418         (dump_may_aliases_for): Likewise.
16419         * tree-ssa-operands.c (add_virtual_operand): Likewise.
16420         (add_call_clobber_ops): Likewise.
16421         (add_call_read_ops): Likewise.
16422         (get_asm_expr_operands): Likewise.
16423         * tree-into-ssa.c (dump_decl_set): Likewise.
16424         (update_ssa): Likewise.
16425         * tree-sra.c (scan_function): Likewise.
16426         (decide_instantiations): Likewise.
16427         (scalarize_parms): Likewise.
16428         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
16429         (dsa_named_for): Likewise.
16430         * tree-ssa-structalias.c (update_alias_info): Likewise.
16431         (merge_smts_into): Likewise.
16432
16433 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
16434
16435         PR target/35258
16436         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
16437         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
16438         * alias.h (nonoverlapping_memrefs_p): Likewise.
16439
16440 2008-02-25  Jan Beulich  <jbeulich@novell.com>
16441
16442         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
16443         * config/i386/netware-libgcc.exp: Add __bswap?i2,
16444         __emultls_get_address, __emultls_register_common,
16445         __floatundi?f, and _Unwind_GetIPInfo.
16446         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
16447         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
16448         (gen_regparm_prefix): Likewise.
16449         (i386_nlm_encode_section_info): Sync with
16450         config/i386/winnt.c:i386_pe_encode_section_info().
16451         (i386_nlm_maybe_mangle_decl_assembler_name): New.
16452         i386_nlm_mangle_decl_assembler_name): New.
16453         (netware_override_options): New.
16454         * config/i386/netware.h (netware_override_options): Declare.
16455         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
16456         (i386_nlm_mangle_decl_assembler_name): Declare.
16457         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
16458
16459 2008-02-25  Ben Elliston  <bje@au.ibm.com>
16460
16461         PR other/32948
16462         * c-decl.c (grokdeclarator): Remove unused local variables
16463         `typedef_type' and `type_as_written'.
16464         * bb-reorder.c
16465         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
16466         unused local variable `has_hot_blocks'.
16467         (fix_crossing_conditional_branches): Remove unused local variable
16468         `prev_bb'.
16469
16470 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
16471
16472         PR middle-end/19984
16473         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
16474         using DEF_C99_BUILTIN.
16475         (BUILT_IN_NANF): Ditto.
16476         (BUILT_IN_NANL): Ditto.
16477
16478 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
16479             Revital Eres  <eres@il.ibm.com>
16480
16481         * modulo-sched.c (calculate_must_precede_follow): Address TODO
16482         regarding the order of two dependent insns in the same row.
16483
16484 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
16485
16486         * stor-layout.c (layout_decl): Do not bump the alignment of a
16487         bit-field to more than byte alignment if it is packed.
16488
16489 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
16490
16491         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
16492         e300c2 and e300c3.
16493
16494 2008-02-24  Diego Novillo  <dnovillo@google.com>
16495
16496         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
16497
16498         PR 33738
16499         * tree-vrp.c (vrp_evaluate_conditional): With
16500         -Wtype-limits, emit a warning when comparing against a
16501         constant outside the natural range of OP0's type.
16502         * c.opt (Wtype-limits): Move ...
16503         * common.opt (Wtype-limits): ... here.
16504
16505 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
16506
16507         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
16508         * config/rs6000/e300c2c3.md: New file.
16509         * config/rs6000/rs6000.c (processor_costs): Add new costs for
16510         e300c2 and e300c3.
16511         (rs6000_override_options): Add e300c2 and e300c3 cases to
16512         processor_target_table. Do not allow usage of Altivec or Spe
16513         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
16514         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
16515         * config/rs6000/rs6000.h (processor_type): Add
16516         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
16517         (ASM_CPU_SPEC): Add e300c2 and e300c3.
16518         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
16519         and ppce300c3. Include e300c2c3.md.
16520
16521 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
16522
16523         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
16524         instead of TARGET_STRICT_ALIGN.
16525
16526 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
16527
16528         * explow.c (memory_address): Assert that the generated address is
16529         valid.
16530
16531 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
16532
16533         PR target/25477
16534         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
16535         * config/darwin-ppc-ldouble-patch.def: New file.
16536         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
16537         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
16538         SUBTARGET_INIT_BUILTINS if defined.
16539         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
16540         New functions.
16541
16542 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16543
16544         PR rtl-opt/33512
16545         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
16546         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
16547
16548 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16549
16550         PR pch/35027
16551         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
16552         file" warning condtional on -Winvalid-PCH.
16553
16554 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
16555
16556         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
16557
16558 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
16559
16560         PR target/22076
16561         PR target/34256
16562         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
16563         prevent reload from using MMX registers.
16564         (*mov<mode>_internal): Ditto.
16565         (*movv2sf_internal_rex64): Ditto.
16566         (*movv2sf_internal): Ditto.
16567
16568 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16569
16570         PR documentation/31569
16571         * doc/install.texi2html: Use makeinfo --no-number-sections.
16572
16573 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
16574
16575         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
16576         ensure that we can address an entire entity > 8 bytes.  Don't
16577         generate reg+reg addressing for such data.
16578
16579 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
16580
16581         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
16582         strings when optimizing for size, unless the target cares about
16583         alignment.
16584
16585 2008-02-22  Tom Tromey  <tromey@redhat.com>
16586
16587         * regclass.c (current_pass): Remove declaration.
16588
16589 2008-02-22  Anatoly Sokolov <aesok@post.ru>
16590
16591         * config/avr/libgcc.S (__RAMPZ__): Define.
16592         (__do_copy_data): Add for devices with 128KB code memory.
16593
16594 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
16595
16596         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
16597         Use spe_abi.
16598         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
16599
16600 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
16601
16602         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
16603         GENNONACR_REGS.
16604
16605 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16606
16607         PR c/19999
16608         * c-typeck.c (build_binary_op): Warn about floating point
16609         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
16610
16611 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
16612
16613         PR target/34526
16614         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
16615         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
16616         add vrsave.
16617         (rs6000_override_options): Set altivec_abi as default, not override,
16618         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
16619         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
16620         is used; use new member spe_abi.
16621         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
16622         spe_abi and altivec_abi.
16623
16624 2008-02-22  Tomas Bily  <tbily@suse.cz>
16625
16626         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
16627
16628 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16629
16630         PR bootstrap/35273
16631         * config.build (build_file_translate): Set to `CMD //c' only if
16632         it works.
16633         * Makefile.in (build_file_translate): Improve comment.
16634
16635 2008-02-21  Jan Hubicka  <jh@suse.cz>
16636
16637         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
16638         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
16639         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
16640
16641 2008-02-21  Michael Matz  <matz@suse.de>
16642
16643         PR target/35264
16644         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
16645
16646 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
16647
16648         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
16649         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
16650         as insn constraint.
16651         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
16652         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
16653         SSE_VEC_FLOAT_MODE_P as insn constraint.
16654         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
16655         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
16656         sse4a_movntdf using MODEF mode iterator.
16657         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
16658         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
16659         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
16660         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
16661         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
16662         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
16663         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
16664
16665 2008-02-21  Richard Guenther  <rguenther@suse.de>
16666
16667         * tree.def (PAREN_EXPR): New tree code.
16668         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
16669         and PAREN_EXPR.
16670         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
16671         * expr.c (expand_expr_real_1): Likewise.
16672         * tree-inline.c (estimate_num_insns_1): Likewise.
16673         * tree-complex.c (expand_complex_move): Likewise.
16674         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
16675         as plain x.
16676
16677 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16678
16679         PR target/35225
16680         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
16681
16682 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16683
16684         PR target/35190
16685         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
16686
16687         * config/sh/sh.c (find_barrier): Don't go past
16688         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
16689
16690 2008-02-20  DJ Delorie  <dj@redhat.com>
16691
16692         * config/h8300/h8300.md (insv): Force source operand to be a register.
16693
16694         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
16695         as a jump, not as a plain insn.
16696
16697 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
16698
16699         * doc/invoke.texi (Warning Options): Add new option
16700         -Wframe-larger-than=.
16701         (-Wframe-larger-than): Document.
16702
16703         * flags.h (warn_frame_larger_than, frame_larger_than_size):
16704         Add declarations for new option variables.
16705
16706         * final.c (final_start_function): Check the frame size
16707         before emission and issue a Wframe-larger-than warning.
16708
16709         * opts.c (warn_frame_larger_than, frame_larger_than_size):
16710         Add definitions for new option variables.
16711         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
16712
16713         * common.opt (Wframe-larger-than=): New option.
16714
16715 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
16716
16717         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
16718         (<sse>_div<mode>3): Ditto.
16719         (<sse>_vmdiv<mode>3): Ditto.
16720         (<sse>_vmsqrt<mode>2): Ditto.
16721         (*smax<mode>3): Ditto.
16722         (sse5_frcz<mode>2): Ditto.
16723         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
16724         as insn constraint.
16725
16726 2008-02-20  Richard Guenther  <rguenther@suse.de>
16727
16728         PR middle-end/35265
16729         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
16730         be happy with INTEGRAL_TYPE_P.
16731
16732 2008-02-20  Richard Guenther  <rguenther@suse.de>
16733
16734         * fold-const.c (split_tree): Associate floatig-point expressions
16735         if flag_associative_math is set.
16736
16737 2008-02-20  Richard Guenther  <rguenther@suse.de>
16738
16739         * tree.h (fold_real_zero_addition_p): Declare.
16740         * fold-const.c (fold_real_zero_addition_p): Export.
16741         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
16742         floating-point operations with zero and one.
16743
16744 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
16745
16746         * doc/install.texi: Correct references to CFLAGS, replacing them
16747         with BOOT_CFLAGS.  Document flags used during bootstrap for
16748         target libraries.
16749
16750 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
16751
16752         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
16753         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
16754         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
16755         insn constraint.
16756         (smin<mode>3): Ditto from similar patterns.
16757         (smax<mode>3): Ditto.
16758         (*ieee_smin<mode>3): Ditto.
16759         (*ieee_smax<mode>3): Ditto.
16760         * config/i386/sse.md (sse): New mode attribute.
16761         (mov<mode>): Macroize expander from movv4sf and movv2df using
16762         SSEMODEF2P mode iterator.
16763         (<sse>_movnt<mode>): Ditto from similar patterns. Use
16764         SSE_VEC_FLOAT_MODE_P as insn constraint.
16765         (storent<mode>): Ditto.
16766         (storent<mode>): Macroize expander from storentsf and storentdf using
16767         MODEF mode iterator.
16768         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
16769         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
16770         (abs<mode>2): Ditto from similar patterns.
16771         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
16772         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
16773         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
16774         (<sse>_vmsqrt<mode>2): Ditto.
16775         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
16776         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
16777         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
16778         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
16779         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
16780         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
16781         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
16782         insn constraint.
16783         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
16784         iterator and SSE_FLOAT_MODE_P as insn constraint.
16785         (<sse>_ucomi): Ditto from similar patterns.
16786         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
16787         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
16788         SSE_VEC_FLOAT_MODE_P as insn constraint.
16789         (vcond<mode>): Ditto from similar patterns.
16790         (and<mode>3, *and<mode>3): Ditto.
16791         (<sse>_nand<mode>3): Ditto.
16792         (ior<mode>3, *ior<mode>3): Ditto.
16793         (xor<mode>3, *xor<mode>3): Ditto.
16794         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
16795         iterator and SSE_FLOAT_MODE_P as insn constraint.
16796         (*nand<mode>3): Ditto from similar patterns.
16797         (*ior<mode>3): Ditto.
16798         (*xor<mode>3): Ditto.
16799
16800 2008-02-20  Ira Rosen  <irar@il.ibm.com>
16801
16802         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
16803         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
16804         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
16805
16806 2008-02-19  Jan Hubicka  <jh@suse.cz>
16807
16808         * predict.c (tree_bb_level_predictions): Remove variable next
16809         mistakely introduced by previous commit.
16810
16811 2008-02-19  Jan Hubicka  <jh@suse.cz>
16812
16813         * predict.c (predict_paths_leading_to): Rewrite.
16814         (predict_paths_for_bb): New.
16815         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
16816
16817 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16818
16819         PR bootstrap/35218
16820         * Makefile.in (build_file_translate): New.
16821         (gcc-vers.texi): Use it for translating $(abs_srcdir).
16822         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
16823         * configure.ac (build_file_translate): Substitute it.
16824         * configure: Regenerate.
16825
16826 2008-02-19  Jan Hubicka  <jh@suse.cz>
16827
16828         PR rtl-optimization/34408
16829         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
16830         invalid sharing.
16831
16832 2008-02-19  Jan Hubicka  <jh@suse.cz>
16833
16834         PR middle-end/28779
16835         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
16836         call_expr.
16837
16838 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
16839
16840         PR Ada/35186
16841         * config/i386/i386-modes.def: Revert the last DI alignment
16842         change until Ada people can look into it.
16843
16844 2008-02-19  Nick Clifton  <nickc@redhat.com>
16845
16846         * opts.c (print_specific_help): Fix typo in --help text.
16847
16848 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
16849
16850         PR target/35239
16851         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
16852         32-bit inline asm without asm alternatives for host GCC < 3.0.
16853
16854 2008-02-19  Richard Guenther  <rguenther@suse.de>
16855
16856         PR tree-optimization/34989
16857         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
16858         Allow propagation to INDIRECT_REF if we can simplify only.
16859
16860 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16861
16862         * c-common.c (warn_for_collisions_1): Use appropriate option when
16863         warning.
16864
16865 2008-02-19  Nick Clifton  <nickc@redhat.com>
16866
16867         PR other/31349
16868         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
16869         (handle_options): Fix indentation.
16870         (print_filtered_help): If no language-specific options were
16871         displayed tell the user how to list all the options supported by
16872         the language's front-end.
16873         (print_specific_help): Fix indentation and remove duplicate line.
16874         (common_handle_option): Handle the -v option.
16875         For --help enable the display of undocumented options if the -v
16876         switch has been included on the command line.
16877         For --help= check for overlaps in the arguments between the option
16878         classes and the language names and issue a warning when they
16879         cannot be disambiguated.
16880         * c.opt (v): Pass on to the common option handler.
16881
16882 2008-02-19  Revital Eres  <eres@il.ibm.com>
16883
16884         * modulo-sched.c (sms_schedule): Change dump message when
16885         create_ddg function fails.
16886         (try_scheduling_node_in_cycle): Rename row to cycle.
16887         (print_partial_schedule): Rename CYCLE to ROW.
16888
16889 2008-02-19  Christian Bruel  <christian.bruel@st.com>
16890             Zdenek Dvorak  <ook@ucw.cz>
16891
16892         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
16893
16894 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
16895
16896         PR target/33555
16897         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
16898         (*x86_movdicc_0_m1_se): Ditto.
16899
16900 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
16901
16902         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
16903         (CMPtype): Define as __gcc_CMPtype.
16904         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
16905         (CMPtype): Define as __gcc_CMPtype.
16906
16907 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
16908
16909         Support valgrind 3.3 for --enable-checking=valgrind.
16910         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
16911         here.
16912         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
16913         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
16914         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
16915         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
16916         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
16917         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
16918         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
16919         respectively.
16920         * ggc-zone.c: Similar.
16921         * ggc-page.c: Similar.
16922
16923 2008-02-19  Paul Brook  <paul@codesourcery.com>
16924
16925         PR target/35071
16926         * config/arm/ieee754-df.S: Fix do_it typo.
16927         * config/arm/ieee754-sf.S: Fix do_it typo.
16928
16929 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
16930
16931         PR target/35189
16932         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
16933         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
16934         (OPTION_MASK_ISA_SSE_SET): Likewise.
16935         (OPTION_MASK_ISA_SSE2_SET): Likewise.
16936         (OPTION_MASK_ISA_SSE3_SET): Likewise.
16937         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
16938         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
16939         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
16940         (OPTION_MASK_ISA_SSE4_SET): Likewise.
16941         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
16942         (OPTION_MASK_ISA_SSE5_SET): Likewise.
16943         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
16944         (OPTION_MASK_ISA_MMX_UNSET): Updated.
16945         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
16946         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
16947         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
16948         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
16949         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
16950         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
16951         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
16952         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
16953         (OPTION_MASK_ISA_SSE4): Removed.
16954         (ix86_handle_option): Turn on bits in ix86_isa_flags and
16955         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
16956         (override_options): Don't turn on implied SSE/MMX bits in
16957         ix86_isa_flags.
16958
16959 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
16960
16961         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
16962         32bit host.
16963
16964 2008-02-18  Joey Ye  <joey.ye@intel.com>
16965
16966         PR middle-end/34921
16967         * tree-nested.c (insert_field_into_struct): Set type alignment
16968         to field alignment if the former is less than the latter.
16969
16970 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
16971
16972         * BASE-VER: Set to 4.4.0.
16973
16974 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16975
16976         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
16977         * doc/cfg.texi: Likewise.
16978         * doc/extend.texi: Likewise.
16979         * doc/gty.texi: Likewise.
16980         * doc/invoke.texi: Likewise.
16981         * doc/loop.texi: Likewise.
16982         * doc/md.texi: Likewise.
16983         * doc/passes.texi: Likewise.
16984         * doc/rtl.texi: Likewise.
16985         * doc/sourcebuild.texi: Likewise.
16986         * doc/tm.texi: Likewise.
16987         * doc/tree-ssa.texi: Likewise.
16988
16989 2008-02-17  Richard Guenther  <rguenther@suse.de>
16990
16991         PR middle-end/35227
16992         * tree-complex.c (init_parameter_lattice_values): Handle parameters
16993         without default definition.
16994
16995 2008-02-17  Richard Guenther  <rguenther@suse.de>
16996
16997         PR tree-optimization/35231
16998         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
16999         if A | B != 1.
17000
17001 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
17002
17003         Revert:
17004         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
17005         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
17006         libgcc_cmp_return mode.
17007
17008 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17009
17010         PR c/28368
17011         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
17012
17013 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
17014
17015         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
17016         multilibs.
17017
17018 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17019
17020         * doc/c-tree.texi: Use `@.' where appropriate.
17021         * doc/extend.texi: Likewise.
17022         * doc/install.texi: Likewise.
17023         * doc/invoke.texi: Likewise.
17024         * doc/loop.texi: Likewise.
17025         * doc/makefile.texi: Likewise.
17026         * doc/md.texi: Likewise.
17027         * doc/passes.texi: Likewise.
17028         * doc/standards.texi: Likewise.
17029         * doc/tm.texi: Likewise.
17030
17031 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
17032
17033         PR middle-end/35196
17034         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
17035         in entry_bb.
17036         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
17037         rather than in entry_bb.
17038
17039 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
17040
17041         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
17042         libgcc_cmp_return mode.
17043
17044 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
17045
17046         PR middle-end/35130
17047         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
17048         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
17049
17050 2008-02-15  Richard Guenther  <rguenther@suse.de>
17051             Zdenek Dvorak  <ook@ucw.cz>
17052
17053         PR tree-optimization/35164
17054         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
17055         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
17056         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
17057         Only propagate addresses which do not have abnormal SSA_NAMEs
17058         in their operands.
17059
17060 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
17061
17062         PR target/35088
17063         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
17064
17065 2008-02-15  Jan Hubicka  <jh@suse.cz>
17066
17067         PR middle-end/35149
17068         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
17069
17070 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
17071
17072         PR middle-end/34621
17073         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
17074         when calculating alignment_pad.
17075
17076 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
17077
17078         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
17079         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
17080         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
17081         and STACK_BOUNDARY define.
17082
17083 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
17084
17085         PR preprocessor/35061
17086         * c-pragma.c (handle_pragma_pop_macro): Check that
17087         pushed_macro_table has been allocated.
17088
17089 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
17090
17091         PR middle-end/35136
17092         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
17093         (force_gimple_operand): Likewise.
17094         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
17095         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
17096         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
17097         (find_interesting_uses_address): Check addressability and alignment
17098         of the base expression only after substituting bases of IVs into it.
17099
17100 2008-02-14  Michael Matz  <matz@suse.de>
17101
17102         PR target/34930
17103         * function.c (instantiate_virtual_regs_in_insn): Reload address
17104         before falling back to reloading the whole operand.
17105
17106 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
17107
17108         * config/s390/s390.c (s390_mainpool_start): Emit the pool
17109         before the first section switch note.
17110
17111 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17112
17113         * doc/bugreport.texi: Update copyright years.
17114         * doc/c-tree.texi: Likewise.
17115         * doc/cfg.texi: Likewise.
17116         * doc/cpp.texi: Likewise.
17117         * doc/cppinternals.texi: Likewise.
17118         * doc/fragments.texi: Likewise.
17119         * doc/frontends.texi: Likewise.
17120         * doc/gcc.texi: Likewise.
17121         * doc/gty.texi: Likewise.
17122         * doc/hostconfig.texi: Likewise.
17123         * doc/implement-c.texi: Likewise.
17124         * doc/libgcc.texi: Likewise.
17125         * doc/loop.texi: Likewise.
17126         * doc/makefile.texi: Likewise.
17127         * doc/options.texi: Likewise.
17128         * doc/passes.texi: Likewise.
17129         * doc/rtl.texi: Likewise.
17130         * doc/sourcebuild.texi: Likewise.
17131         * doc/standards.texi: Likewise.
17132         * doc/tree-ssa.texi: Likewise.
17133         * doc/trouble.texi: Likewise.
17134
17135         * doc/extend.texi: Use @: or add comma where appropriate.
17136         * doc/invoke.texi: Likewise.
17137         * doc/tm.texi: Likewise.
17138
17139 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
17140
17141         PR target/34393
17142         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
17143         to a reg.
17144
17145 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
17146
17147         * doc/md.texi (clz, ctz): Add reference.
17148         * doc/rtl.texi (clz, ctz): Likewise.
17149
17150 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17151
17152         PR other/35148
17153         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
17154         srcdir.
17155
17156 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
17157
17158         * config/s390/s390.c (struct constant_pool): New field
17159         emit_pool_after added.
17160         (s390_mainpool_start): Set the emit_pool_after flag according
17161         to the section switch notes.
17162         (s390_mainpool_finish): Consider emit_pool_after when emitting
17163         the literal pool at the end of the function.
17164         (s390_chunkify_start): Force literal pool splits at section
17165         switch notes.
17166
17167 2008-02-13  Michael Matz  <matz@suse.de>
17168
17169         PR debug/35065
17170         * var-tracking.c (clobber_variable_part): Correctly traverse the
17171         list.
17172
17173 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17174
17175         PR 29673
17176         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
17177         Add -fdump-ipa-inline.
17178         * tree-dump.c (dump_files): Remove tree-inlined dump.
17179         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
17180
17181 2008-02-12  Richard Guenther  <rguenther@suse.de>
17182
17183         PR tree-optimization/35171
17184         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
17185         default defs.
17186
17187 2008-02-12  Richard Guenther  <rguenther@suse.de>
17188
17189         PR middle-end/35163
17190         * fold-const.c (fold_widened_comparison): Use get_unwidened in
17191         value-preserving mode.  Disallow final truncation.
17192
17193 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
17194
17195         PR middle-end/35136
17196         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
17197         code from here to...
17198         (force_gimple_operand): ...here.
17199
17200 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
17201
17202         PR c++/35144
17203         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
17204         non-compatible pointers.
17205         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
17206         different FIELD_DECLs, try harder by comparing field offsets, sizes
17207         and types.
17208
17209         PR inline-asm/35160
17210         * function.c (match_asm_constraints_1): Don't replace the same input
17211         multiple times.
17212
17213 2008-02-12  Anatoly Sokolov <aesok@post.ru>
17214
17215         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
17216         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
17217         (expand_epilogue): Restore RAMPZ register.
17218         * config/avr/avr.md (RAMPZ_ADDR): New constant.
17219
17220 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
17221
17222         * config/i386/cygwin.asm: (__alloca): Correct calling
17223         convention and alignment.
17224         (__chkstk): Force 8 byte stack alignment.
17225
17226 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
17227             Richard Guenther  <rguenther@suse.de>
17228
17229         PR tree-optimization/33992
17230         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
17231         the zero we compare against.
17232
17233 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
17234
17235         PR libfortran/35063
17236         * gthr-win32.h (__gthread_mutex_destroy_function): New function
17237         to CloseHandle after unlocking to prevent accumulation of handle
17238         count.
17239
17240 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17241
17242         PR middle_end/34150
17243         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
17244         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
17245         and update LABEL_NUSES during and after reload.
17246
17247 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
17248
17249         PR middle-end/34627
17250         * combine.c (simplify_if_then_else): Make sure the comparison is
17251         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
17252
17253 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
17254
17255         PR bootstrap/35051
17256         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
17257         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
17258         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
17259         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
17260         * tree.h (get_type_static_bounds): Likewise.
17261
17262 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17263
17264         * doc/invoke.texi (Option Summary, C++ Dialect Options)
17265         (Objective-C and Objective-C++ Dialect Options, Warning Options):
17266         Make -Wfoo language annotations match what the compiler outputs.
17267
17268 2008-02-08  Sa Liu  <saliu@de.ibm.com>
17269
17270         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
17271         intrinsics spu_convts, spu_convtu, spu_convtf.
17272
17273 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
17274
17275         * doc/extend.texi (Function Attributes) <noinline>: Mention
17276         asm ("") as method to keep calls.
17277
17278 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17279
17280         PR other/32754
17281         * doc/options.texi (Options): Replace references to opts.sh with
17282         optc-gen.awk.
17283         * opts-common.c: Likewise.
17284         * optc-gen.awk: Likewise.
17285
17286 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
17287
17288         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
17289
17290 2008-02-07  Richard Henderson  <rth@redhat.com>
17291
17292         PR rtl-opt/33410
17293         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
17294         EXPR_LIST for the REG_EQUAL instead of a comparison with a
17295         funny mode.
17296
17297 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
17298
17299         PR tree-optimization/35085
17300         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
17301         for operand entry oe2 in addition to operand entry oe3 in order to
17302         expose more opportunities for vectorizer sum reduction.
17303
17304 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17305
17306         PR other/35107
17307         * Makefile.in (LIBS): Remove $(GMPLIBS).
17308         (cc1-dummy, cc1): Add $(GMPLIBS).
17309
17310 2008-02-06  Jan Hubicka  <jh@suse.cz>
17311
17312         PR target/23322
17313         * i386.md (moddf_integer): Do not produce partial memory stalls for
17314         targets where it hurts.
17315
17316 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
17317
17318         PR target/35083
17319         * optabs.c (expand_float): Do not check for decimal modes when
17320         expanding unsigned integer through signed conversion.
17321
17322 2008-02-06  Nick Clifton  <nickc@redhat.com>
17323
17324         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
17325         inside the clobber with a match_operand and duplicated operand
17326         number in the constraint.
17327         (ineqbranchsi): Delete redundant comment.
17328
17329 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
17330
17331         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
17332         builtin_define ("__USE_INIT_FINI__").
17333         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
17334         -msx multilibs.
17335         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
17336
17337 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17338
17339         PR documentation/30330
17340         * doc/invoke.texi (C++ Dialect Options)
17341         (Objective-C and Objective-C++ Dialect Options, Warning Options):
17342         For each warning option -Wfoo that allows -Wno-foo, ensure both
17343         -Wfoo and -Wno-foo are listed in the option index.  Fix index
17344         entry of -Wswitch-default, index -Wnormalized= including the
17345         `=', and -Wlarger-than-@var{len} including @var{len}.
17346
17347 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
17348
17349         * config/i386/i386.md (floatunssisf2): Use
17350         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
17351         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
17352         Macroize expander using MODEF mode iterator.
17353
17354 2008-02-05  Diego Novillo  <dnovillo@google.com>
17355
17356         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
17357
17358         PR 33738
17359         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
17360
17361 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17362
17363         PR other/35070
17364         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
17365
17366 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
17367
17368         PR target/35084
17369         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
17370         to indicate if a message should be generated.
17371         (init_cumulative_args): Updated.
17372         (function_value_32): Likewise.
17373
17374 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
17375
17376         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
17377
17378 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
17379
17380         PR target/35083
17381         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
17382         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
17383
17384 2008-02-04  Diego Novillo  <dnovillo@google.com>
17385
17386         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
17387
17388         PR 33738
17389         * tree-vrp.c (vrp_evaluate_conditional): With
17390         -Wtype-limits, emit a warning when comparing against a
17391         constant outside the natural range of OP0's type.
17392
17393 2008-02-04  Richard Guenther  <rguenther@suse.de>
17394
17395         PR middle-end/33631
17396         * expr.c (count_type_elements): Give for unions instead of
17397         guessing.
17398
17399 2008-02-04  Richard Guenther  <rguenther@suse.de>
17400
17401         PR middle-end/35043
17402         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
17403         to TYPE_DOMAINs base type instead of using bitsizetype here.
17404
17405 2008-02-03  Jason Merrill  <jason@redhat.com>
17406
17407         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
17408
17409 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17410
17411         PR other/29972
17412         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
17413         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
17414         (RS/6000 and PowerPC Options): Fix typos and markup.
17415         * doc/passes.texi (Tree-SSA passes): Likewise.
17416
17417 2008-02-02  Michael Matz  <matz@suse.de>
17418
17419         PR target/35045
17420         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
17421         from record_last_reg_set_info.
17422         (record_last_reg_set_info): Take an RTX argument, iterate over all
17423         constituent hardregs.
17424         (record_last_set_info, record_opr_changes): Change calls to
17425         new signature or to record_last_reg_set_info_regno.
17426
17427 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
17428
17429         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
17430
17431 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
17432
17433         PR rtl-optimization/34773
17434         * reg-notes.def (EQUAL): Mention significance of combination of
17435         REG_EQUAL and REG_RETVAL.
17436         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
17437         insn that has a REG_RETVAL.
17438
17439 2008-02-01  Roger Sayle  <roger@eyesopen.com>
17440
17441         PR bootstrap/33781
17442         * configure.ac (--enable-fixed-point): Disable unless explicitly
17443         requested on IRIX.
17444         * configure: Regenerate.
17445
17446 2008-02-01  Richard Guenther  <rguenther@suse.de>
17447
17448         PR other/35042
17449         * invoke.texi (-finline-limit): Remove no longer true parts
17450         of the documentation.  Note that there is no default value.
17451
17452 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
17453             Mark Mitchell  <mark@codesourcery.com>
17454             Ben Elliston  <bje@au.ibm.com>
17455
17456         PR c/29326
17457         * doc/extend.texi (Other Builtins): Document.
17458
17459 2008-01-31  Tom Browder <tom.browder@gmail.com>
17460
17461         * doc/c-tree.texi (Types): Fix grammar.
17462         (Expression trees): Ditto.
17463         * doc/passes.texi (Tree-SSA passes): Ditto.
17464
17465         * doc/configterms.texi (Configure Terms): Fix typo.
17466         * doc/cpp.texi (Common Predefined Macros): Ditto.
17467         * doc/md.texi (Machine Constraints): Ditto.
17468
17469         * doc/makefile.texi (Makefile): Add comma.
17470
17471 2008-01-31  Tom Browder  <tom.browder@gmail.com>
17472             Gerald Pfeifer  <gerald@pfeifer.com>
17473
17474         * doc/sourcebuild.texi (Front End): Remove references to CVS
17475         and CVSROOT/modules.
17476         (Texinfo Manuals): Replace reference to CVS by one to SVN.
17477         (Back End): Remove reference to CVS.
17478
17479 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
17480
17481         PR target/34900
17482         * config/mips/mips.c (gen_load_const_gp): New function, taking a
17483         comment from...
17484         (mips16_gp_pseudo_reg): ...here.
17485         * config/mips/mips.md (load_const_gp): Replace with...
17486         (load_const_gp_<mode>): ...this :P-based insn.
17487
17488 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17489
17490         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
17491         options. Minor fixes.
17492         (-std): Move reference to standards closer to where language
17493         standards are first mentioned.
17494
17495 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
17496
17497         PR rtl-optimization/34995
17498         * reload.c (alternative_allows_const_pool_ref): Take an rtx
17499         parameter and return a bool.  If the rtx parameter is nonnull,
17500         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
17501         (find_reloads): Update call accordingly.  Pass the new operand
17502         if it needed no address reloads, otherwise pass null.
17503
17504 2008-01-30  Richard Henderson  <rth@redhat.com>
17505
17506         PR c/34993
17507         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
17508         for unbounded arrays.
17509
17510 2008-01-30  Silvius Rus  <rus@google.com>
17511
17512         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
17513
17514 2008-01-30  Jan Hubicka  <jh@suse.cz>
17515
17516         PR target/34982
17517         * i386.c (init_cumulative_args): Use real function declaration when
17518         calling locally.
17519
17520 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
17521
17522         PR rtl-optimization/34998
17523         * global.c (build_insn_chain): Treat non-subreg_lowpart
17524         SUBREGs of pseudos as clobbering all the words covered by the
17525         SUBREG, not just all the bytes.
17526         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
17527         original df_ref rather than an extract parameter.
17528         (global_conflicts): Update call accordingly.
17529
17530 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
17531
17532         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
17533         the overflow check to make it easier to read.
17534         (__fixtfdi): Change the type of the ll member in union
17535         long_double to UDItype_x.
17536
17537 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
17538
17539         PR middle-end/34969
17540         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
17541         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
17542         * tree-inline.c (fold_marked_statements): Call
17543         cgraph_update_edges_for_call_stmt if folding a call statement.
17544         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
17545         debug_generic_stmt calls, reset it back afterwards.
17546
17547         PR c/35017
17548         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
17549         static decls.
17550         * c-typeck.c (build_external_ref): Don't pedwarn about
17551         static vars in current function's scope.
17552
17553 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
17554
17555         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
17556
17557 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
17558
17559         PR c/35002
17560         * ipa-struct-reorg.c: Fix spelling.
17561         * params.def: Ditto.
17562
17563 2008-01-29  Richard Guenther  <rguenther@suse.de>
17564
17565         PR middle-end/35006
17566         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
17567         field.
17568         * tree-inline.c (remap_type): Increment remapping_type_depth
17569         around remapping types.
17570         (copy_body_r): Only add referenced variables if they are referenced
17571         from code, not types.
17572
17573 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
17574
17575         PR c++/34055
17576         PR c++/34103
17577         PR c++/34219
17578         PR c++/34606
17579         PR c++/34753
17580         PR c++/34754
17581         PR c++/34755
17582         PR c++/34919
17583         PR c++/34961
17584         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
17585         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
17586
17587 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
17588
17589         PR target/34412
17590         * config/avr/avr.c (expand_prologue): Use correct QI mode frame
17591         pointer for tiny stack.
17592
17593 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
17594
17595         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
17596
17597 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
17598
17599         * config/vx-common.h: Fix typo in comment.
17600
17601 2008-01-28  Ian Lance Taylor  <iant@google.com>
17602
17603         PR c++/34862
17604         PR c++/33407
17605         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
17606         coalesce pointers if they have different DECL_NO_TBAA_P values.
17607         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
17608         between variables with different DECL_NO_TBAA_P values.
17609
17610 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
17611
17612         PR 31535
17613         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
17614         are not legitimate small data references on SPE targets.
17615
17616 2008-01-28  David Daney  <ddaney@avtrex.com>
17617
17618         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
17619
17620 2008-01-28  David Daney  <ddaney@avtrex.com>
17621
17622         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
17623
17624 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
17625
17626         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
17627         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
17628         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
17629         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
17630         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
17631         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
17632         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
17633         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
17634
17635 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
17636
17637         * basic-block.h (condjump_equiv_p): Fix comment.
17638
17639 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
17640
17641         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
17642         print_generic_stmt_indented): Fix comment.
17643
17644 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
17645
17646         * configure.ac (__stack_chk_fail): Add detecion for availability
17647         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
17648         * configure: Regenerate.
17649
17650 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
17651
17652         PR middle-end/34688
17653         * final.c (output_addr_const): Handle TRUNCATE.
17654
17655 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
17656
17657         PR target/34711
17658         * tree-ssa-loop-ivopts.c (comp_cost): New type.
17659         (zero_cost, infinite_cost): New constants.
17660         (struct cost_pair): Change type of cost to comp_cost.
17661         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
17662         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
17663         New functions.
17664         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
17665         split_address_cost, ptr_difference_cost, difference_cost,
17666         get_computation_cost_at, get_computation_cost,
17667         determine_use_iv_cost_generic, determine_use_iv_cost_address,
17668         determine_use_iv_cost_condition, determine_use_iv_costs,
17669         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
17670         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
17671         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
17672         Change type of cost to comp_cost.
17673         (determine_iv_cost): Increase cost of non-original ivs, instead
17674         of decreasing the cost of original ones.
17675         (get_address_cost): Indicate the complexity of the addressing mode
17676         in comp_cost.
17677         (try_add_cand_for): Prefer using ivs not specific to some object.
17678         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
17679
17680 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
17681             Janis Johnson  <janis187@us.ibm.com>
17682
17683         PR target/34814
17684         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
17685         (TARGET_INSTANTIATE_DECLS): Likewise.
17686         * target.h (expand_to_rtl_hook): New target hook.
17687         (instantiate_decls): Likewise.
17688         * function.c (instantiate_decl): Make non-static.  Rename to...
17689         (instantiate_decl_rtl): ... this.
17690         (instantiate_expr): Use instantiate_decl_rtl.
17691         (instantiate_decls_1): Likewise.
17692         (instantiate_decls): Likewise.
17693         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
17694         * function.h (instantiate_decl_rtl): Add prototype.
17695         * cfgexpand.c (target.h): New include.
17696         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
17697         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
17698         (TARGET_INSTANTIATE_DECLS): Likewise.
17699         (TARGET_INITIALIZER): New target hooks added.
17700         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
17701         New prototype.
17702         * config/rs6000/rs6000.c (tree-flow.h): New include.
17703         (machine_function): Add sdmode_stack_slot field.
17704         (rs6000_alloc_sdmode_stack_slot): New function.
17705         (rs6000_instantiate_decls): Likewise.
17706         (rs6000_secondary_memory_needed_rtx): Likewise.
17707         (rs6000_check_sdmode): Likewise.
17708         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
17709         (TARGET_INSTANTIATE_DECLS): Likewise.
17710         (rs6000_hard_regno_mode_ok): Allow SDmode.
17711         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
17712         (rs6000_emit_move): Handle SDmode.
17713         (function_arg_advance): Likewise.
17714         (function_arg): Likewise.
17715         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
17716         SDmode var args for 32-bit compiles.
17717         (rs6000_secondary_reload_class): Handle SDmode.
17718         (rs6000_output_function_epilogue): Likewise.
17719         (rs6000_function_value): Simplify if statement.
17720         (rs6000_libcall_value): Likewise.
17721         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
17722         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
17723         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
17724         (movsd_hardfloat): New define_insn.
17725         (movsd_softfloat): Likewise.
17726         (movsd_store): Likewise.
17727         (movsd_load): Likewise.
17728         (extendsddd2): Likewise.
17729         (extendsdtd2): Likewise.
17730         (truncddsd2): Likewise.
17731         (movdd_hardfloat64): Fixup comment.
17732         (UNSPEC_MOVSD_LOAD): New constant.
17733         (UNSPEC_MOVSD_STORE): Likewise.
17734
17735 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
17736
17737         PR c++/34965
17738         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
17739         TRUTH_XOR_EXPR.
17740         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
17741         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
17742         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
17743         and TRUTH_XOR_EXPR.
17744
17745 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
17746
17747         PR target/34794
17748         * config.gcc: Separate AIX 5.3 from AIX 6.1.
17749         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
17750         __LONGDOUBLE128 too.
17751         * config/rs6000/aix61.h: New file.
17752
17753 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
17754
17755         PR rtl-optimization/34959
17756         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
17757         popcount and parity rtxes the same mode as their operand.
17758         Truncate or extend the result to the return value's mode
17759         if necessary.
17760
17761 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
17762
17763         PR target/34981
17764         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
17765         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
17766         to GOT_VERSION_REGNUM.
17767         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
17768         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
17769         * config/mips/mips.c (mips_emit_call_insn): New function.
17770         (mips_call_tls_get_addr): Call mips_expand_call directly.
17771         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
17772         emit_call_insn.
17773         (mips16_build_call_stub): Likewise.  Return the call insn or null.
17774         (mips_expand_call): Update the call to mips16_build_call_stub
17775         accordingly and a remove redundant condition.  Assert that MIPS16
17776         stubs do not use lazy binding.  Use mips_emit_call_insn and return
17777         the call insn.
17778         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
17779         TARGET_USE_GOT.
17780         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
17781         (mips_avoid_hazard): Remove hazard_set handling.
17782         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
17783         (UNSPEC_RESTORE_GP): ...this.
17784         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
17785         (FAKE_CALL_REGNO): Rename to...
17786         (GOT_VERSION_REGNUM): ...this.
17787         (type): Add "ghost" value.  Add an associated insn reservation.
17788         (hazard_set): Remove.
17789         (exception_receiver): Rename to...
17790         (restore_gp): ...this and update the unspec identifier accordingly.
17791         (exception_receiver, nonlocal_got_receiver): New expanders.
17792         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
17793         FAKE_CALL_REGNO.  Remove hazard_set attribute.
17794         (set_got_version, update_got_version): New patterns.
17795
17796 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
17797
17798         PR target/34970
17799         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
17800
17801 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
17802
17803         PR other/31955
17804         * doc/install.texi2html: Generate gcc-vers.texi.
17805
17806 2008-01-25  DJ Delorie  <dj@redhat.com>
17807
17808         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
17809
17810 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
17811
17812         * config/c4x: Remove directory.
17813         * config.gcc (crx-*, mt-*): Mark obsolete.
17814         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
17815         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
17816         sh-*-rtemscoff*): Remove cases.
17817         * defaults.h (C4X_FLOAT_FORMAT): Remove.
17818         * real.c (encode_c4x_single, decode_c4x_single,
17819         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
17820         c4x_extended_format): Remove.
17821         * real.h (c4x_single_format, c4x_extended_format): Remove.
17822         * doc/extend.texi (interrupt, naked): Remove mention of attributes
17823         on C4x.
17824         (Pragmas): Remove comment about c4x pragmas.
17825         * doc/install.texi (c4x): Remove target-specific instructions.
17826         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
17827         * doc/md.texi (Machine Constraints): Remove C4x documentation.
17828         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
17829         refer to C4x source files as examples.
17830         (C4X_FLOAT_FORMAT): Remove documentation.
17831
17832 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
17833
17834         * config/bfin/bfin.c (override_options): Reorder tests so that
17835         flag_pic gets enabled for -msep-data.
17836
17837 2008-01-25  Richard Guenther  <rguenther@suse.de>
17838
17839         PR middle-end/32244
17840         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
17841         to its bitfield precision if required.
17842
17843 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
17844
17845         PR middle-end/33880
17846         * tree-nested.c (walk_omp_for): New function.
17847         (convert_nonlocal_reference, convert_local_reference): Call
17848         walk_omp_for on OMP_FOR.
17849         (convert_call_expr): Call walk_body on OMP_FOR's
17850         OMP_FOR_PRE_INIT_BODY.
17851
17852 2008-01-25  Richard Guenther  <rguenther@suse.de>
17853
17854         PR tree-optimization/34966
17855         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
17856         default defs and PHI_NODEs we have to insert after the
17857         defining statement.
17858
17859 2008-01-24  Nick Clifton  <nickc@redhat.com>
17860
17861         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
17862         Provide a default definition.
17863         (LIBGCC2_UNITS_PER_WORD): Likewise.
17864
17865         * config/stormy16/stormy16.c: Include df.h for the prototype
17866         for df_regs_ever_live_p.
17867         (xstormy16_expand_builtin_va_start): Convert the stack offset
17868         into a component_ref and then use POINTER_PLUS_EXPR to add it
17869         to the incoming_virtual_args_rtx.
17870         (xstormy16_gimplify_va_arg_expr): Rename to
17871         xstormy16_gimplify_va_arg_expr.
17872         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
17873         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
17874         xstormy16_gimplify_va_arg_expr.
17875         Fix up some formatting issues.
17876
17877         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
17878         Move to predicates.md.
17879         (xs_hi_general_operand): Likewise.
17880         (xs_hi_nonmemory_operand): Likewise.
17881         * config/stormy16/predicates.md:
17882         (xstormy16_carry_plus_operand): New predicate.
17883         (xs_hi_general_operand): New predicate.
17884         (xs_hi_nonmemory_operand): New predicate.
17885         * config/stormy16/stormy16-protos.h:
17886         (xstormy16_carry_plus_operand): Delete prototype.
17887         (xs_hi_general_operand): Likewise.
17888         (xs_hi_nonmemory_operand): Likewise.
17889
17890         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
17891         modifiers as they are no longer needed and they can trigger
17892         reload spill failures.
17893
17894         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
17895         with a match_operand in order to help reload.
17896
17897         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
17898         constraint with 'e' for the 8th alternative as this version of
17899         the mov.w instruction only accepts the lower 8 registers.
17900
17901 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
17902
17903         PR target/34856
17904         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
17905         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
17906         vector elements.
17907
17908 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
17909
17910         PR middle-end/33333
17911         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
17912
17913 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
17914
17915         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
17916         New functions.
17917         (remove_structure): Update allocations list before removing structure.
17918
17919 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
17920
17921         * ipa-struct-reorg.c (is_safe_cond_expr,
17922         create_new_stmts_for_cond_expr): Use integer_zerop function,
17923         that recognize not only zero-pointer, but zero-integer too.
17924
17925 2008-01-25  Ben Elliston  <bje@au.ibm.com>
17926
17927         PR other/22232
17928         * fixproto: Escape "." in sed expression that strips leading "./".
17929
17930 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
17931
17932         PR driver/34904
17933         * gcc.c (SWITCH_OK): Removed.
17934         (SWITCH_LIVE): Changed to bit.
17935         (SWITCH_FALSE): Likewise.
17936         (SWITCH_IGNORE): Likewise.
17937         (switchstr): Change live_cond to unsigned int.
17938         (process_command): Replace SWITCH_OK with 0.
17939         (do_self_spec): Likewise.
17940         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
17941         (give_switch): Likewise.
17942         (used_arg): Likewise.
17943         (do_spec_1): Set the SWITCH_IGNORE bit.
17944         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
17945         bits.  Set the SWITCH_LIVE bit.
17946
17947 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
17948
17949         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
17950
17951 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
17952
17953         PR tree-optimization/34472
17954         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
17955         parameter to a "bool *" and set *DATA to false if there is
17956         an unsafe access.  Do not delete the structure here.
17957         (check_cond_exprs): Delete it here instead.
17958         (check_cond_exprs, exclude_cold_structs): Do not increase
17959         I when removing a structure.
17960
17961 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
17962
17963         PR target/34856
17964         * config/i386/i386.c (ix86_expand_vector_init): Consider only
17965         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
17966
17967 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
17968
17969         PR middle-end/34934
17970         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
17971         a fixed vector for stack.
17972
17973 2008-01-24  Ben Elliston  <bje@au.ibm.com>
17974
17975         PR c++/25701
17976         * doc/gcc.texi (Software development): Add a direntry for g++.
17977
17978 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
17979
17980         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
17981         stale and straggling -fforce-addr comments above.
17982
17983         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
17984         define.
17985         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
17986         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
17987
17988 2008-01-23  Michael Matz  <matz@suse.de>
17989
17990         PR debug/34895
17991         * dwarf2out.c (force_type_die): Use modified_type_die instead of
17992         gen_type_die.
17993
17994 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
17995
17996         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
17997         malloc result type.
17998
17999 2008-01-23 Anatoly Sokolov <aesok@post.ru>
18000
18001         * config/avr/avr.c (avr_current_arch): New variable.
18002         (avr_arch_types): Add 'avr31' and 'avr51' entries.
18003         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
18004         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
18005         (avr_override_options): Init 'avr_current_arch'.
18006         (base_arch_s): Move from here...
18007         * config/avr/avr.h (base_arch_s): ... here. Add new members
18008         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
18009         'mega' to 'have_jmp_call'.
18010         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
18011         "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
18012         macros.
18013         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
18014         architectures.
18015         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
18016         MULTILIB_MATCHES): Ditto.
18017
18018 2008-01-23  Richard Guenther  <rguenther@suse.de>
18019
18020         PR middle-end/31529
18021         * cgraphunit.c (cgraph_reset_node): Always mark the node
18022         not reachable if it is not queued already.
18023
18024 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
18025
18026         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
18027         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
18028         (cputype_selected): New static variable.
18029         (bfin_handle_option): Set it if -mcpu is used.
18030         (override_option): Select default set of workarounds if no cpu type
18031         selected on the command line.
18032         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
18033
18034         From  Michael Frysinger  <michael.frysinger@analog.com>
18035         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
18036         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
18037
18038         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
18039         for bf547, bf523, bf524, and bf526.
18040         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
18041         bf526.
18042         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
18043         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
18044         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
18045         __ADSPBF547__ and __ADSPBF54x__ for bf547.
18046         * doc/invoke.texi (Blackfin Options): Document that
18047         -mcpu now accept bf547, bf523, bf524, and bf526.
18048
18049 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
18050
18051         PR rtl-optimization/34628
18052         * combine.c (try_combine): Stop and undo after the first combination
18053         if an autoincrement side-effect on the first insn has effectively
18054         been lost.
18055
18056 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
18057
18058         PR target/34529
18059         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
18060         Offset addresses are not valid for Altivec or paired float modes.
18061
18062 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
18063
18064         PR c++/34607
18065         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
18066         if DECL_INITIAL (decl) is error_mark_node.
18067
18068         PR c++/34914
18069         * c-common.c (handle_vector_size_attribute): Only allow
18070         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
18071         the same way as pointer, array etc. types.
18072         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
18073
18074         PR c++/34917
18075         * tree.c (build_type_attribute_qual_variant): Call
18076         build_qualified_type if attributes are equal, but quals are not.
18077
18078 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18079
18080         PR 32102
18081         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
18082         * flags.h (warn_strict_aliasing): Remove.
18083         (warn_strict_overflow): Remove.
18084         * opts.c (warn_strict_aliasing): Remove.
18085         (warn_strict_overflow): Remove.
18086         * c-opts.c (c_common_handle_option): -Wall only sets
18087         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
18088         (c_common_post_options): Give default values to -Wstrict-aliasing
18089         and -Wstrict-overflow if they are uninitialized.
18090         * common.opt (Wstrict-aliasing): Specify Var and Init.
18091         (Wstrict-overflow): Likewise.
18092
18093 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
18094
18095         PR rtl-optimization/26854
18096         PR rtl-optimization/34400
18097         PR rtl-optimization/34884
18098         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
18099         DF_RD->gen.
18100         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
18101         (df_rd_bb_info.expanded_lr_out): Deleted
18102         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
18103         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
18104         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
18105         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
18106         Removed code to allocate, initialize or free expanded_lr_out.
18107         (df_rd_bb_local_compute_process_def): Restructured to make more
18108         understandable.
18109         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
18110         sets if the sets are being trimmed.
18111
18112 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
18113
18114         PR bootstrap/32287
18115         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
18116         (as_vers): Likewise.
18117         * configure: Regenerated.
18118
18119 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18120
18121         PR middle-end/33092
18122         * tree-pass.h (pass_build_alias): New pass.
18123         * tree-ssa-alias.c (gate_build_alias): New.
18124         (pass_build_alias): New.
18125         * passes.c (init_optimization_passes): Add pass_build_alias after
18126         pass_create_structure_vars.
18127
18128 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
18129
18130         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
18131         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
18132         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
18133         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
18134         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
18135         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
18136         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
18137         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
18138         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
18139         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
18140         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
18141         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
18142         * config/s390/s390.md (FP_ALL): New mode iterator.
18143         (_d): New mode attribute.
18144         ("*signbit<mode>2>"): Changed mode of first operand.
18145         ("isinf<mode>2"): Changed mode of first operand.
18146         ("*TDC_insn"): Adaptation for DFP modes.
18147
18148 2008-01-22  Ben Elliston  <bje@au.ibm.com>
18149
18150         * tree.c (check_qualified_type): Improve function description.
18151
18152 2008-01-21  Jason Merrill  <jason@redhat.com>
18153
18154         PR c++/34196
18155         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
18156         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
18157         if it is set.
18158
18159 2008-01-21  DJ Delorie  <dj@redhat.com>
18160
18161         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
18162         return zero.
18163
18164 2008-01-21  Richard Guenther  <rguenther@suse.de>
18165
18166         PR middle-end/34856
18167         * tree-cfg.c (verify_expr): Allow all invariant expressions
18168         instead of just constant class ones as reference argument.
18169         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
18170         like any other constant.
18171         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
18172
18173 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
18174
18175         * regmove.c (fixup_match_1): Update call crossed frequencies.
18176
18177 2008-01-21  Richard Guenther  <rguenther@suse.de>
18178
18179         PR c/34885
18180         * tree-inline.c (setup_one_parameter): Deal with mismatched
18181         types using a VIEW_CONVERT_EXPR.
18182
18183 2008-01-21  Alon Dayan  <alond@il.ibm.com>
18184             Olga Golovanevsky  <olga@il.ibm.com>
18185
18186         PR tree-optimization/34701
18187         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
18188         when the structure size is not a power of 2.
18189
18190 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
18191
18192         * doc/install.texi: Add doc for --enable-checking=df.
18193
18194 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
18195
18196         PR rtl-optimization/34808
18197         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
18198
18199 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
18200
18201         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
18202         input.
18203
18204 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
18205
18206         PR rtl-optimization/26854
18207         PR rtl-optimization/34400
18208         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
18209         DF_RD->gen.
18210         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
18211         (df_rd_bb_info.expanded_lr_out): New.
18212         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
18213         * loop_iv.c (iv_analysis_loop_init): Ditto.
18214         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
18215         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
18216         Added code to allocate, initialize or free expanded_lr_out.
18217         (df_rd_bb_local_compute_process_def): Restructured to make
18218         more understandable.
18219         (df_rd_confluence_n): Add code to do nothing with fake edges and
18220         code to no apply invalidate_by_call sets if the sets are being trimmed.
18221         (df_lr_local_finalize): Renamed to df_lr_finalize.
18222         (df_live_local_finalize): Renamed to df_live_finalize.
18223
18224 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
18225
18226         PR target/34831
18227         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
18228         deciding whether to use reciprocal instructions.
18229
18230 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
18231
18232         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
18233         dwarf2out_note_section_used if cold_text_section is NULL.
18234
18235 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
18236
18237         PR gcov-profile/34610
18238         * tree-cfg.c (make_edges): Mark both outgoing edges from
18239         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
18240         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
18241         from OMP_FOR and OMP_CONTINUE outgoing edges.
18242
18243         * tree-profile.c (tree_profiling): Return early if
18244         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
18245         at the end.
18246         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
18247         from cfun to child_cfun.
18248         * function.h (struct function): Add after_tree_profile bit.
18249
18250 2008-01-19 Anatoly Sokolov <aesok@post.ru>
18251
18252         * config/avr/avr.S (_exit): Disable interrupt.
18253
18254 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
18255             Steven Bosscher  <stevenb.gcc@gmail.com>
18256
18257         PR rtl-optimization/26854
18258         PR rtl-optimization/34400
18259         * df-problems.c (df_live_scratch): New scratch bitmap.
18260         (df_live_alloc): Allocate df_live_scratch when doing df_live.
18261         (df_live_reset): Clear the proper bitmaps.
18262         (df_live_bb_local_compute): Only process the artificial defs once
18263         since the order is not important.
18264         (df_live_init): Init the df_live sets only with the variables
18265         found live by df_lr.
18266         (df_live_transfer_function): Use the df_lr sets to prune the
18267         df_live sets as they are being computed.
18268         (df_live_free): Free df_live_scratch.
18269
18270 2008-01-18  Ian Lance Taylor  <iant@google.com>
18271
18272         * common.opt: Add fmerge-debug-strings.
18273         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
18274         flag_merge_debug_strings rather than flag_merge_constants.
18275         * doc/invoke.texi (Option Summary): Mention
18276         -fmerge-debug-strings.
18277         (Debugging Options): Document -fmerge-debug-strings.
18278
18279 2008-01-18  Ian Lance Taylor  <iant@google.com>
18280
18281         PR c++/33407
18282         * tree.h (DECL_IS_OPERATOR_NEW): Define.
18283         (struct tree_function_decl): Add new field operator_new_flag.
18284         * tree-inline.c (expand_call_inline): When inlining a call to
18285         operator new, force the return value to go into a variable, and
18286         set DECL_NO_TBAA_P on that variable.
18287         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
18288
18289 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
18290
18291         PR debug/34484
18292         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
18293         DWARF2_DEBUGGING_INFO.
18294         (dwarf2out_note_section_used): Ditto.  Add prototype.
18295         (have_multiple_function_sections, text_section_used,
18296         cold_text_section_used, *cold_text_sections): Move declarations
18297         before their uses.
18298
18299 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
18300
18301         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
18302         field and add signal_ra.
18303         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
18304         assignments to frame state pc.  Move end of stack check after
18305         MD_FALLBACK_FRAME_STATE_FOR.
18306         (uw_update_context_1): Use frame state signal_regs if set, instead
18307         of checking signal_frame flag.
18308         (uw_update_context): Use frame state signal_ra if set.
18309         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
18310         * config/xtensa/linux-unwind.h: New file.
18311
18312 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
18313
18314         * modulo-sched.c (get_sched_window): Fix comment typo.
18315
18316 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
18317
18318         PR tree-optimization/34648
18319         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
18320
18321 2008-01-17  Anatoly Sokolov <aesok@post.ru>
18322
18323         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
18324         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
18325
18326 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
18327
18328         PR rtl-optimization/34400
18329         * df-core.c (df_worklist_dataflow_overeager,
18330         df_worklist_dataflow_doublequeue): New functions.
18331         (df_worklist_dataflow): Two different worklist solvers.
18332         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
18333         New param.
18334
18335 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
18336
18337         PR testsuite/34821
18338         * doc/invoke.texi: Document the dependence on pthread for fopenmp
18339         and ftree-parallelize-loops.
18340
18341 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
18342
18343         PR rtl-optimization/34826
18344         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
18345
18346 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
18347
18348         * global.c (find_reg): Mark the eh regs as used if necessary.
18349         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
18350         * ra.h (struct allocno): no_eh_reg field added.  Changed
18351         no_stack_reg type to bitfield.
18352
18353 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
18354
18355         * tree.c (substitute_in_expr): Add missing 'break'.
18356
18357 2008-01-17  Richard Guenther  <rguenther@suse.de>
18358
18359         PR tree-optimization/34825
18360         * tree-ssa-math-opts.c (is_division_by): Do not recognize
18361         x / x as division to handle.
18362
18363 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18364
18365         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
18366         "-pthread" is specified.
18367         * pa-hpux11.h (LIB_SPEC): Likewise.
18368
18369 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
18370             Peter Bergner  <bergner@vnet.ibm.com>
18371
18372         PR rtl-optimization/33796
18373         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
18374
18375 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18376
18377         PR libgfortran/34699
18378         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
18379         static links.
18380         * pa-hpux10.h (LINK_SPEC): Likewise.
18381         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
18382
18383 2008-01-16  Richard Guenther  <rguenther@suse.de>
18384
18385         PR middle-end/32628
18386         * fold-const.c (fold_convert_const_int_from_int): Do not
18387         set overflow if that occured only because of a sign extension
18388         change when converting from/to a sizetype with the same
18389         precision and signedness.
18390
18391 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
18392
18393         PR debug/34249
18394         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
18395         location address to the correct place.  Update copyright year.
18396
18397 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
18398
18399         * lambda-code.c (lambda_transform_legal_p): Handle the case of
18400         no dependences in the dependence_relations vector.
18401
18402 2008-01-16  Jan Hubicka  <jh@suse.cz>
18403
18404         PR rtl-optimization/31396
18405         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
18406         * cfg.c (dump_reg_info): Print it.
18407         * regs.h (struct reg_info_t): add freq_calls_crossed.
18408         (REG_FREQ_CALLS_CROSSED): New macro.
18409         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
18410         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
18411         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
18412         regmove_optimize): Update call crossed frequencies.
18413         * local-alloc.c (struct qty): Add freq_calls_crossed.
18414         (alloc_qty): Copute freq_calls_crossed.
18415         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
18416         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
18417         * ra.h (struct allocno): Add freq_calls_crossed.
18418
18419 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
18420
18421         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
18422         libgomp when compiling with ftree-parallelize-loops.
18423         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
18424
18425 2008-01-16  Richard Guenther  <rguenther@suse.de>
18426
18427         PR tree-optimization/34769
18428         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
18429         * tree.c (int_cst_value): Instead make this function more
18430         permissive in what it accepts as valid input.  Document this
18431         function always sign-extends the value.
18432
18433 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
18434             Richard Guenther  <rguenther@suse.de>
18435
18436         PR c/34668
18437         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
18438         (gimple_fold_indirect_ref_rhs): ... this.
18439         (gimple_fold_indirect_ref): New function with foldings
18440         that preserve lvalueness.
18441         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
18442         * tree-flow.h (gimple_fold_indirect_ref): Declare.
18443         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
18444         to fold an INDIRECT_REF, fall back to the old use of
18445         fold_indirect_ref_1.
18446
18447 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
18448
18449         * tree-data-ref.c (subscript_dependence_tester_1): Call
18450         free_conflict_function.
18451         (compute_self_dependence): Same.
18452
18453 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
18454
18455         PR debug/34249
18456         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
18457         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
18458         function global.
18459         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
18460         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
18461         for DWARF2_UNWIND_INFO targets.
18462
18463 2008-01-16  Richard Guenther  <rguenther@suse.de>
18464
18465         PR c/34768
18466         * c-typeck.c (common_pointer_type): Do not merge inconsistent
18467         type qualifiers for function types.
18468
18469 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
18470
18471         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
18472         loop_iterator li from previous commit.
18473
18474 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
18475
18476         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
18477
18478 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
18479
18480         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
18481         (parallelize_loops): Don't parallelize irreducible components.
18482
18483 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18484
18485         PR c++/24924
18486         * c-opts (c_common_post_options): Do not enable CPP
18487         flag_pedantic_errors by default.
18488
18489 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
18490
18491         PR rtl-optimization/31944
18492         * cse.c (remove_pseudo_from_table): New function.
18493         (merge_equiv_classes): Use above function to remove pseudo-registers.
18494         (invalidate): Likewise.
18495
18496 2008-01-13  Richard Guenther  <rguenther@suse.de>
18497
18498         PR middle-end/34601
18499         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
18500         instead of TYPE_MODE to deal with calls from expand_one_error_var.
18501
18502 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
18503
18504         * gcse.c (cprop_jump): Call validate_unshare_change instead of
18505         validate_change to unshare the source of the PC set.
18506
18507 2008-01-12  Jan Hubicka  <jh@suse.cz>
18508
18509         PR middle-end/32135
18510         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
18511         references above array bounds.  This might trigger bounds checks for
18512         pointers to arrays.
18513
18514 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
18515
18516         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
18517         new_replaceable_dependencies.
18518
18519 2008-01-12  Doug Kwan  <dougkwan@google.com>
18520
18521         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
18522         instead of OPT_Wreturn_type in warning due to ignored return type
18523         qualifiers.
18524         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
18525         options included in -Wextra.
18526         * c.opt: New option -Wignored_qualifiers.
18527         * doc/invoke.texi (Warning Options, -Wextra): Add new option
18528         -Wignore_qualifiers.
18529         (-Wignored-qualifiers): Document.
18530         (-Wreturn-type): Remove description of functionality now handled
18531         by -Wignored-qualifiers.
18532
18533 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
18534
18535         PR ada/33788
18536         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
18537         NOP_EXPR if it is between integral types with the same precision.
18538
18539 2008-01-12  Jan Hubicka  <jh@suse.cz>
18540
18541         PR other/28023
18542         * invoke.texi (max-inline-recursive-depth): Fix default value.
18543
18544 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
18545
18546         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
18547         correct type.
18548
18549 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
18550
18551         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
18552
18553 2008-01-11  James E. Wilson  <wilson@specifix.com>
18554
18555         PR target/26015
18556         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
18557
18558 2008-01-11  Anatoly Sokolov <aesok@post.ru>
18559
18560         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
18561         save/restore frame pointer register and don't use 'call-prologues'
18562         optimization in function with "OS_task" attribute.
18563
18564 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
18565
18566         PR middle-end/31309
18567         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
18568         when copying to memory.
18569
18570 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
18571
18572         PR rtl-optimization/30905
18573         * cfgcleanup.c: Include dce.h
18574         (crossjumps_occured): New global variable.
18575         (try_crossjump_bb): Exit loop after finding a fallthru edge.
18576         If something changed, set crossjumps_occured to true.
18577         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
18578         Don't add/remove fake edges to exit here...
18579         (cleanup_cfg): ...but do it here, when crossjumping.
18580         Run a fast DCE when successful crossjumps occured in the latest
18581         iteration of try_optimize_cfg.
18582
18583 2008-01-11  Richard Guenther  <rguenther@suse.de>
18584
18585         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
18586         (struct vn_unary_op_s): Likewise.
18587         (vn_reference_insert): Free old reference on hash collision.
18588
18589 2008-01-10  Raksit Ashok  <raksit@google.com>
18590
18591         PR rtl-optimization/27971
18592         * combine.c (find_split_point): Split PLUS expressions which are
18593         inside a MEM rtx, and whose first operand is complex.
18594
18595 2008-01-10  DJ Delorie  <dj@redhat.com>
18596
18597         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
18598         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
18599         (m32c_hard_regno_ok): Call the underlying function.
18600
18601 2008-01-10  Richard Guenther  <rguenther@suse.de>
18602
18603         PR middle-end/34683
18604         * tree-cfg.c (tree_merge_blocks): Do not go through the
18605         full-blown folding and stmt updating path if we just deal
18606         with virtual operands.
18607         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
18608         test for abnormal SSA_NAMEs.
18609
18610 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
18611
18612         PR middle-end/34641
18613         * reload.c (push_reload): Add assertions.  All constants from
18614         reg_equiv_constant should have been used for replacing the respective
18615         pseudo earlier.
18616         (find_reloads_address): Invoke find_reloads_address_part for
18617         constant taken from the reg_equiv_constant array.
18618
18619 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
18620
18621         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
18622         field (valnum) the first in the struct.  Replace bools with
18623         unit bit fields.
18624
18625 2008-01-10  Richard Guenther  <rguenther@suse.de>
18626
18627         PR tree-optimization/34651
18628         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
18629         types and ordering for masking and converting.
18630
18631 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
18632
18633         PR tree-optimization/34017
18634         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
18635         also for PHI_NODE expressions.
18636
18637 2008-01-09  Jan Hubicka  <jh@suse.cz>
18638
18639         PR tree-optimization/34708
18640         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
18641         based on number of case labels.
18642         (init_inline_once): Remove switch_cost.
18643         * tree-inline.h (eni_weights_d): Remove switch_cost.
18644
18645 2008-01-09  Richard Guenther  <rguenther@suse.de>
18646         Andrew Pinski  <andrew_pinski@playstation.sony.com>
18647
18648         PR middle-end/30132
18649         * gimplify.c (gimplify_cond_expr): Do not create an addressable
18650         temporary if an rvalue is ok or an lvalue is not required.
18651
18652 2008-01-09  Richard Guenther  <rguenther@suse.de>
18653
18654         PR middle-end/34458
18655         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
18656         adjust return type.
18657
18658 2008-01-09  Richard Guenther  <rguenther@suse.de>
18659
18660         PR middle-end/34679
18661         * tree.c (host_integerp): Check for sizetype only if the
18662         type is an integer type.
18663
18664 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
18665
18666         PR debug/26364
18667         * opts.c (decode_options): Disable inlining of functions called
18668         once if not in unit-at-a-time mode.
18669
18670 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
18671
18672         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
18673
18674 2008-01-08  Richard Guenther  <rguenther@suse.de>
18675
18676         PR middle-end/31863
18677         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
18678         out early if the result will be unused.
18679
18680 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
18681
18682         PR target/34709
18683         Revert:
18684
18685         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
18686         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
18687         for TARGET_RECIP.
18688
18689 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
18690
18691         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
18692         for vectorization tuned.
18693
18694 2008-01-08  Richard Guenther  <rguenther@suse.de>
18695
18696         PR tree-optimization/34683
18697         * tree-ssa-operands.c (operand_build_cmp): Export.
18698         * tree-ssa-operands.h (operand_build_cmp): Declare.
18699         * tree-vn.c (vuses_compare): Remove.
18700         (sort_vuses): Use operand_build_cmp.
18701         (sort_vuses_heap): Likewise.
18702         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
18703         to re-use old VEC if available.  Do not sort already sorted VUSEs.
18704         (vdefs_to_vec): Do not sort already sorted VDEFs.
18705
18706 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
18707
18708         PR middle-end/34694
18709         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
18710
18711 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
18712
18713         PR target/34702
18714         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
18715         limitations of reciprocal sequences on x86 targets.
18716
18717 2008-01-08  Richard Guenther  <rguenther@suse.de>
18718
18719         PR tree-optimization/34683
18720         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
18721
18722 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
18723
18724         PR target/34622
18725         * config/darwin.c (darwin_mergeable_string_section): Don't use
18726         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
18727
18728 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
18729
18730         PR target/34682
18731         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
18732         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
18733         predicates of op0 and op1 to register_operand.
18734         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
18735         expander using X87MODEF mode iterator.  Change predicates of
18736         op0 and op1 to register_operand.
18737         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
18738         corresponding patterns and macroize using MODEF macro.  Change
18739         predicates of op0 and op1 to register_operand and remove
18740         "m" constraint. Disparage "r" alternative with "!".
18741         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
18742         macroize using X87MODEF macro.  Change predicates of op0 and op1
18743         to register_operand and remove "m" constraint.  Disparage "r"
18744         alternative with "!".
18745         (absneg splitter with memory operands): Remove.
18746         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
18747         patterns and macroize using X87MODEF mode iterator.
18748         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
18749         Change predicate of op1 to register_operand.
18750         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
18751         for memory operands.
18752
18753 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
18754
18755         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
18756
18757 2008-01-07  Richard Guenther  <rguenther@suse.de>
18758
18759         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
18760         fields.
18761
18762 2008-01-07  Richard Guenther  <rguenther@suse.de>
18763
18764         PR tree-optimization/34683
18765         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
18766         VOPs of the needed size to save memory.  Use VEC_quick_push
18767         to save compile-time.
18768         (vdefs_to_vec): Likewise.
18769
18770 2008-01-07  Sa Liu  <saliu@de.ibm.com>
18771
18772         * config/spu/spu.md (divdf3): Genetate inline code for double
18773         division.  The implementation doesn't handle INF or NAN, therefore it
18774         only applies when -ffinite-math-only is given.
18775
18776 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
18777
18778         PR libstdc++/34680
18779         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
18780         * doc/cpp.texi ([Common Predefined Macros]): Document.
18781
18782 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
18783
18784         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
18785         order to use commutative addition instead of subtraction.
18786
18787 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18788             Mircea Namolaru  <namolaru@il.ibm.com>
18789             Vladimir Yanovsky  <yanov@il.ibm.com>
18790             Revital Eres  <eres@il.ibm.com>
18791
18792         PR tree-optimization/34263
18793         * tree-outof-ssa.c (process_single_block_loop_latch,
18794         contains_tree_r): New functions.
18795         (analyze_edges_for_bb): Call process_single_block_loop_latch
18796         function to empty single-basic-block latch block if possible.
18797
18798 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
18799
18800         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
18801         for TARGET_RECIP.
18802         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
18803
18804 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
18805
18806         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
18807
18808 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
18809
18810         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
18811
18812 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
18813
18814         PR tree-optimization/34618
18815         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
18816         flag from T.
18817
18818 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
18819
18820         PR target/34673
18821         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
18822         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
18823         Update copyright year.
18824
18825         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
18826         Update copyright year.
18827         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
18828         using NR fixup.
18829
18830 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
18831
18832         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
18833         edge does not point to current bb before changing need_assert.
18834
18835 2008-01-04  Richard Guenther  <rguenther@suse.de>
18836
18837         PR middle-end/34029
18838         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
18839         for verifying purposes if they are is_gimple_min_invariant.
18840
18841 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
18842
18843         PR tree-optimization/34448
18844         PR tree-optimization/34465
18845         * gimplify.c (gimplify_init_constructor): Add new parameter
18846         notify_temp_creation.  Use it.
18847         (gimplify_modify_expr_rhs): Take volatiles into account when
18848         optimizing constructors.
18849         Do not optimize constructors if gimplify_init_constructor will dump to
18850         memory.
18851         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
18852         * gcc.c-torture/compile/pr34448.c: New.
18853
18854 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
18855
18856         PR gcov-profile/34609
18857         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
18858         return_slot if result is TREE_ADDRESSABLE.
18859
18860 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
18861
18862         * config/mips/mips.md (sqrt_condition): Tweak comment.
18863         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
18864
18865 2008-01-03  Tom Tromey  <tromey@redhat.com>
18866
18867         PR c/34457
18868         * c-common.c (c_type_hash): Handle VLAs.
18869
18870 2008-01-03  Jan Hubicka  <jh@suse.cz>
18871
18872         PR tree-optimization/31081
18873         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
18874         0 when inlining and not inlining to first basic block.
18875         (remap_decl): When var is initialized to 0, don't set default_def.
18876         (expand_call_inline): Set entry_bb.
18877         * tree-inline.h (copy_body_data): Add entry_bb.
18878
18879 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
18880
18881         PR c++/34619
18882         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
18883         before returning.
18884
18885         PR tree-optimization/29484
18886         * tree-inline.c (inline_forbidden_p_2): New function.
18887         (inline_forbidden_p): Disallow inlining if some static var
18888         has an address of a local LABEL_DECL in its initializer.
18889         * doc/extend.texi (Labels as Values): Document &&foo behaviour
18890         vs. inlining.
18891
18892 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
18893
18894         PR tree-optimization/34635
18895         * tree-data-ref.c (add_other_self_distances): Make sure that the
18896         evolution step is constant.
18897
18898 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
18899
18900         PR middle-end/34608
18901         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
18902
18903 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
18904
18905         * tree-sra.c (scalarize_init): Insert the generate_element_init
18906         statements after the generate_element_zero statements.
18907
18908 2008-01-02  Richard Guenther  <rguenther@suse.de>
18909
18910         PR middle-end/34093
18911         PR middle-end/31976
18912         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
18913         for very large number of operands instead of ICEing.
18914
18915 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
18916
18917         PR target/34013
18918         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
18919         while stack probing.
18920
18921 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
18922
18923         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
18924         in C++0x mode.
18925
18926 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
18927
18928         PR libmudflap/26442
18929         * tree-mudflap.c (mx_register_decls): Guard warning by
18930         !DECL_ARTIFICIAL check.
18931
18932 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
18933
18934         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
18935         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
18936         sse5_perm<mode>): Fix constraints.