OSDN Git Service

2008-08-25 David Daney <ddaney@avtrex.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-08-25  David Daney  <ddaney@avtrex.com>
2
3         * config/mips/mips.md (immediate_insn): Move up in file, fix
4         comment typo, reformat.
5         (fetchop_bit, atomic_hiqi_op memory_barrier,
6         sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
7         sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
8         sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
9         sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
10         sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
11         sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
12         sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
13         sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
14         sync_old_nand<mode>, sync_new_nand<mode>,
15         sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
16         test_and_set_12): Moved to sync.md.
17         (sync.md): Include.
18         * config/mips/sync.md: New file.
19
20 2008-08-25  Richard Henderson  <rth@redhat.com>
21
22         * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
23         (regsave): Likewise.
24         (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
25         (output_cfi_directive): Likewise.
26         (div_data_align): New.
27         (output_cfi): Use it.
28
29 2008-08-24  Adam Nemet  <anemet@caviumnetworks.com>
30
31         * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
32         * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
33         (TARGET_OCTEON): New macro.
34         (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
35         (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
36         (ISA_HAS_POP): New macro.
37         * config/mips/driver-native.c (host_detect_local_cpu): Handle
38         Octeon.
39         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
40         Handle Octeon.
41         * config/mips/mips.md (cpu): Add octeon.
42         (type): Add pop attribute value.
43         (popcount<mode>2): New pattern.
44         * doc/invoke.texi (-march=@var{arch}): Add octeon.
45
46 2008-08-24  Jan Hubicka  <jh@suse.cz>
47
48         * doc/invoke.texi (-fipa-cp-clone): New option.
49         (-fipa-cp): Update docs.
50         (--param ipcp-unit-growth):New.
51         * ipa-cp.c: Include fibheap.h, params.h
52         (ipcp_initialize_node_lattices): When not cloning, all externally
53         visible functions are bottom.
54         (ipcp_need_redirect_p): Accept clones.
55         (ipcp_insert_stage): Use cost driven heuristics.
56         (max_count, dead_nodes): New static vars.
57         (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
58         ipcp_const_param_count): New functions.
59         * common.opt (ipa-cp-clone): New command line option.
60         * params.def (ipcp-unit-growth): New.
61
62 2008-08-24  Jan Hubicka  <jh@suse.cz>
63
64         * tree-inline.c (tree_function_versioning): Look harder
65         for referenced vars.
66
67 2008-08-24  Razya Ladelsky  <razya@il.ibm.com>
68
69         PR tree-optimization/37185
70         * matrix-reorg.c (transform_access_sites): Update changed stmt.
71
72 2008-08-23  Jan Hubicka  <jh@suse.cz>
73
74         * ipa-cp.c (ipcp_analyze_node): New function.
75         (ipcp_update_cloned_node): Use it.
76         (ipcp_init_stage): Likewise.
77         * ipa-inline.c (function_insertion_hook_holder): New static var.
78         (analyze_function): Break out from ....
79         (inline_generate_summary): Here; register insertion hook.
80         (cgraph_decide_inlining): Remove hook.
81         (add_new_function): New function.
82
83 2008-08-23  Jan Hubicka  <jh@suse.cz>
84
85         * opts.c (decode_options): Revert accidental change enabling ipa-cp.
86
87 2008-08-23  Jan Hubicka  <jh@suse.cz>
88
89         * ipa-cp.c (constant_val_insert): Remove.
90         (ipcp_propagate_one_const): Remove.
91         (ipcp_create_replace_map): Always insert replacements to the map.
92         (ipcp_insert_stage): Do not try to insert statements by hand.
93         * tree-inline.c (insert_init_stmt): Break out from ...
94         (setup_one_parameter): ... here; allow NULL BB pointer.
95         (tree_function_versioning): Use setup_one_parameter to process
96         replacement map.
97
98 2008-08-23  Jan Hubicka  <jh@suse.cz>
99
100         * tree.c (decl_address_ip_invariant_p): New function.
101         * tree.h (decl_address_ip_invariant_p): Declare.
102         * gimple.c (strip_invariant_refs): Break out from ...
103         (is_gimple_invariant_address): ... here
104         (is_gimple_ip_invariant_address): New function.
105         (is_gimple_ip_invariant): New function.
106         * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
107         Declare.
108
109         * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
110         (ipcp_lat_is_insertable): All constants are insertable.
111         (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
112         IPA_CONST_VALUE_REF.
113         (ipcp_initialize_node_lattices): Propagate all types of operands.
114         (build_const_val): Do not handle IPA_CONST_VALUE_REF.
115         (ipcp_create_replace_map): Reformat.
116         (ipcp_need_redirect_p): Simplify.
117         (ipcp_insert_stage): Check that argument is used before clonning.
118         * ipa-prop.c (ipa_print_node_jump_functions): Do not handle IPA_CONST_REF.
119         (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
120         (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
121         (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
122         * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
123         (jump_func_type): Remove IPA_CONST_VALUE_REF.
124         * tree-inline.c (tree_function_versioning): Add variables referenced by
125         replacing trees.
126
127 2008-08-23  Jan Hubicka  <jh@suse.cz>
128
129         PR target/37094
130         * i386.c (standard_80387_constant_p): Use optimize_size.
131
132 2008-08-23  Ira Rosen  <irar@il.ibm.com>
133
134         PR tree-optimization/37161
135         * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
136         * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
137         (vect_determine_vectorization_factor): Move the scalar type
138         retrieval to vect_get_smallest_scalar_type.
139         (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
140         scalar type. Remove redundant computation.
141         * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
142         (vect_get_slp_defs): Take the type of RHS into account if
143         necessary by calling vect_get_smallest_scalar_type. Call
144         vect_get_constant_vectors with additional argument.
145
146 2008-08-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
147
148         PR 35648
149         * doc/invoke.texi (Wwrite-strings): Clarify description.
150         
151 2008-08-23  Ira Rosen  <irar@il.ibm.com>
152
153         PR tree-optimization/37174
154         * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
155         def stmt is a part of the loop before accessing its stmt_vec_info.
156
157 2008-08-22  Anatoly Sokolov  <aesok@post.ru>
158
159         PR target/11259
160         * config/avr/avr.md (UNSPEC_SWAP): New constants.
161         (*swap): New insn pattern.
162         (*ashlqi3): Rename from ashlqi3 insn pattern.
163         (ashlqi3): New expanders.
164         (*lshrqi3): Rename from lshrqi3 insn pattern.
165         (lshrqi3): New expanders.       
166         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
167         lshrqi3_const5, lshrqi3_const6): New splitters.
168         (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
169         lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
170         peephole2 patterns.
171
172 2008-08-22  Richard Guenther  <rguenther@suse.de>
173
174         PR tree-optimization/37078
175         * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
176         [+INF, +INF] ranges.
177
178 2008-08-22  Richard Guenther  <rguenther@suse.de>
179
180         PR tree-optimization/37143
181         * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
182         a conversion statement instead of a copy.
183
184 2008-08-22  Uros Bizjak  <ubizjak@gmail.com>
185
186         PR target/37184
187         * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
188         CCCmode, CCOmode and CCSmode destination modes.
189
190         PR target/37191
191         * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
192         from different units in a single alternative.
193         (*vec_extractv2sf_1): Ditto.
194         (*vec_extractv2si_0): Ditto.
195         (*vec_extractv2si_1): Ditto.
196         * config/i386/sse.md (sse2_storehpd): Ditto.
197         (sse2_storelpd): Ditto.
198         (sse2_loadhpd): Ditto.
199         (sse2_loadlpd): Ditto.
200
201         PR target/37197
202         * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
203         (popcountsi2): Ditto.
204         (clzdi2_abm): Ditto.
205         (popcountdi2): Ditto.
206         (clzhi2_abm): Ditto.
207         (popcounthi2): Ditto.
208
209 2008-08-22  Richard Guenther  <rguenther@suse.de>
210
211         PR middle-end/36548
212         PR middle-end/37125
213         * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
214         if the multiplication does not overflow.
215
216 2008-08-21  Nathan Sidwell  <nathan@codesourcery.com>
217
218         * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
219
220 2008-08-21  Richard Henderson  <rth@redhat.com>
221
222         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
223         spurrious comma from test.
224         * configure: Rebuild.
225
226 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
227
228         PR 30457
229         * builtins.c (fold_builtin_next_arg): Add warning about undefined
230         behaviour.
231         
232 2008-08-21  Aldy Hernandez  <aldyh@redhat.com>
233
234         * c-tree.h (grokfield): New argument.
235         * c-decl.c (grokfield): Handle new location argument.
236         * c-parser.c (c_parser_struct_declaration): Pass location to
237         grokfield.
238
239 2008-08-21  Richard Guenther  <rguenther@suse.de>
240
241         * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
242
243 2008-08-21  Jan Hubicka  <jh@suse.cz>
244
245         * cgraph.c (first_cgraph_function_insertion_hook): New variable.
246         (cgraph_add_function_insertion_hook,
247         cgraph_remove_function_insertion_hook,
248         cgraph_call_function_insertion_hooks): New functions.
249         * cgraph.h (cgraph_add_function_insertion_hook,
250         cgraph_remove_function_insertion_hook,
251         cgraph_call_function_insertion_hooks): Declare.
252         * ipa-reference.c (function_insertion_hook_holder): New variable.
253         (check_operand, look_for_address_of): When checking late, do not care
254         about module bitmaps.
255         (add_new_function): New function.
256         (generate_summary): Register hooks; zero module bitmaps.
257         (propagate): Unregister hooks.
258         * ipa-pure-const.c (function_insertion_hook_holder): New variable.
259         (add_new_function): New function.
260         (generate_summary): Register hook.
261         (propagate): Remove hook.
262
263         * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
264
265         * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
266         * ipa-cp.c (ipcp_update_cloned_node): New function.
267         (build_const_val): Handle functions correctly; bring type logic
268         into sync with tree-inline.c
269         (ipcp_init_stage):  Take care of computing stuff needed by
270         indirect inlining; update clones.
271         (ipcp_generate_summary): Break out of ipcp_driver.
272         (ipcp_driver): Do only execution and transformation.
273         (pass_ipa_cp): Make IPA_PASS.
274         * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
275         offset to address.
276         * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
277         ipcp, some info is already available.
278         * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
279         * tree-inline.c (remap_ssa_name): Unshare expression.
280
281 2008-08-21  Richard Guenther  <rguenther@suse.de>
282
283         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
284         a PHI ask VN if it is already available.
285         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
286         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
287
288 2008-08-21  Richard Guenther  <rguenther@suse.de>
289
290         PR middle-end/36817
291         * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
292         makes sure to produce a result of the correct type.
293
294 2008-08-21  Jan Hubicka  <jh@suse.cz>
295         Backport from LTO branch:
296
297         2008-05-05  Kenneth Zadeck <zadeck@naturalbridge.com>
298                     Jan Hubicka  <jh@suse.cz>
299         
300         * ipa-pure-const.c
301         (init_state, finish_state, set_function_state, generate_summary):
302         New functions.
303         (scan_stmt): Renamed from scan_function.  Changed to keep state in
304         local static vars rather than cgraph aux field.
305         (propagate): Renamed from static_execute. Changed to keep state in
306         local static vars rather than cgraph aux field.
307         (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
308         * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
309
310         2008-07-15  Kenneth Zadeck <zadeck@naturalbridge.com>
311
312         * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
313         * ipa-reference.c (init_function_info, generate_summary, 
314         propagate): New functions.
315         (analyze_function):  Call init_function_info.
316         (static_execute): Stripped into generate_summary and propagate.
317         (pass_ipa_reference): Made into ipa_opt_pass.
318
319 2008-08-21  Richard Guenther  <rguenther@suse.de>
320
321         PR tree-optimization/37181
322         * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
323         folding result.
324         (extract_range_from_unary_expr): Likewise.
325
326 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
327
328         * diagnostic.c (pedwarn_at): Rename as pedwarn.
329         (pedwarn): Delete.
330         * toplev.h (pedwarn_at): Likewise.
331         * builtins.c: Update all calls to pedwarn.
332         * c-lex.c: Likewise.
333         * toplev.c: Likewise.
334         * c-tree.h: Likewise.
335         * c-decl.c: Likewise.
336         * c-errors.c: Likewise.
337         * c-typeck.c: Likewise.
338         * c-common.c: Likewise.
339         * c-parser.c: Likewise.
340
341 2008-08-20  Joseph Myers  <joseph@codesourcery.com>
342
343         PR target/31070
344         * config/sparc/sparc.c (function_arg_slotno): Handle structure
345         with MODE_VECTOR_INT mode.
346
347 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
348
349         PR middle-end/179
350         * tree-ssa.c (warn_uninit): Do not warn for variables that can be
351         initialized outside the current module.
352         (warn_uninitialized_var): Ignore left-hand side when walking the
353         trees. Ignore address expressions. Examine VUSE operands in gimple
354         statements with a variable declaration on the right-hand side.
355
356 2008-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
357
358         PR bootstrap/37155
359         * rtlanal.c (subreg_offset_representable_p): Revert last change.
360
361 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
362
363         PR 35701
364         * c-common.c (conversion_warning): Do not warn if applying bit-and
365         operator to unsigned constant that fits in the target type.
366
367 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
368
369         PR c++/35602
370         * c-common.c (conversion_warning): Do not warn for artificial
371         expressions.
372
373 2008-08-20  Richard Guenther  <rguenther@suse.de>
374
375         * tree-vrp.c (op_with_constant_singleton_value_range): New function.
376         (extract_range_from_binary_expr): Fall back to constant propagation.
377         (extract_range_from_unary_expr): Likewise.
378
379 2008-08-20  Richard Guenther  <rguenther@suse.de>
380
381         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
382         with TREE_THIS_VOLATILE on shared nodes.
383         (fold_stmt_r): Likewise.
384
385 2008-08-20  Jakub Jelinek  <jakub@redhat.com>
386
387         PR c/37171
388         * c-parser.c (c_parser_attributes): For keywords use canonical
389         spelling for attr_name.
390
391 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
392
393         * value-prof.c (check_counter): Revert wrong call to error.
394         
395 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
396
397         * profile.c: Update calls to inform.
398         * value-prof.c: Update calls to inform.
399         
400 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
401
402         * diagnostic.c (inform): Add an explicit location_t parameter.
403         * toplev.h (inform): Update declaration.
404         * builtins.c: Update all calls to inform.
405         * c-common.c: Likewise.
406         * c-decl.c: Likewise.
407         * c-opts.c: Likewise.
408         * c-pch.c: Likewise.
409         * c-pragma.c: Likewise.
410         * c-typeck.c: Likewise.
411         * coverage.c: Likewise.
412         * opts.c: Likewise.
413         * toplev.c: Likewise.
414         * tree-cfg.c: Likewise.
415         * tree-ssa.c: Likewise.
416
417 2008-08-20  H.J. Lu  <hongjiu.lu@intel.com>
418
419         PR target/37169
420         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
421         V2DI mode, for SSE4.1, use movq instead of vector set if the
422         second element is zero and inter-unit moves are OK.
423
424 2008-08-20  Richard Guenther  <rguenther@suse.de>
425
426         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
427         properly handle conversion/copy chains after tuplification.
428
429 2008-08-20  Richard Guenther  <rguenther@suse.de>
430
431         * passes.c (init_optimization_passes): Move the second
432         forwprop pass before alias computation.  Remove the second
433         DCE pass.  Remove the first dominator and phi copy/const
434         prop passes.
435
436 2008-08-20  Nick Clifton  <nickc@redhat.com>
437
438         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
439         support of this feature.  Do not assume that a sufficiently new
440         assembler will support the feature regardless of the target type.
441         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
442         * configure: Regenerate.
443
444 2008-08-20  Richard Guenther  <rguenther@suse.de>
445
446         * tree-vrp.c (found_in_subgraph): Remove.
447         (live): New global static.
448         (live_on_edge): New function.
449         (blocks_visited): Remove.
450         (register_edge_assert_for_2): Use live_on_edge.
451         (find_conditional_asserts): Remove code dealing with
452         found_in_subgraph.  Do not walk the CFG.
453         (find_switch_asserts): Likewise.
454         (find_assert_locations_1): Renamed from find_assert_locations.
455         Move finding assert locations for conditional and switch
456         statements first.  Update live bitmap.  Do not walk the CFG.
457         (find_assert_locations): New function.
458         (insert_range_assertions): Remove entry of CFG walk.
459         Adjust call to find_assert_locations.
460         * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
461         that only can appear because of fake exit edges but assert we
462         never try to insert on those.
463         (fini_pre): Do not remove fake exit edges here...
464         (execute_pre): ...but here, before committing edge inserts.
465
466 2008-08-19  Richard Guenther  <rguenther@suse.de>
467
468         * passes.c (init_optimization_passes): Exchange store-ccp
469         with a ccp pass.
470
471 2008-08-19  Rafael Espindola  <espindola@google.com>
472
473         * varasm.c (weak_decls): Move earlier in the file.
474         (assemble_external): Add weak decls to the weak_decls list.
475         (declare_weak): Don't add decls to the weak_decls list.
476
477 2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>
478
479         PR target/37157
480         * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
481         before (sse2_shufpd_<mode>).
482
483 2008-08-19  Jakub Jelinek  <jakub@redhat.com>
484
485         PR debug/37156
486         * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
487         * tree.c (block_nonartificial_location): Likewise.
488
489 2008-08-19  Richard Guenther  <rguenther@suse.de>
490
491         PR tree-optimization/35972
492         PR tree-optimization/23094
493         * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
494         parameter.
495         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
496         handle MISALIGNED_INDIRECT_REF.
497         (get_ref_from_reference_ops): New helper.
498         (vn_reference_lookup_pieces): Walk the use-def chain using the
499         alias-oracle if requested.
500         * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
501         walking the use-def chain.
502         (compute_avail): But not here.
503         (create_component_ref_by_pieces_1): Properly handle
504         MISALIGNED_INDIRECT_REF.
505         (do_regular_insertion): Handle fully redundant
506         expressions after PHI-translation also for SSA_NAME values, not
507         only constants.  Correctly use edoubleprime for that.
508
509 2008-08-19  Ira Rosen  <irar@il.ibm.com>
510
511         * tree-vectorizer.c (supportable_widening_operation): Support
512         multi-step conversion, return the number of steps in such conversion
513         and the required intermediate types.
514         (supportable_narrowing_operation): Likewise.
515         * tree-vectorizer.h (vect_pow2): New function.
516         (supportable_widening_operation): Change argument types.
517         (supportable_narrowing_operation): Likewise.
518         (vectorizable_type_promotion): Add an argument.
519         (vectorizable_type_demotion): Likewise.
520         * tree-vect-analyze.c (vect_analyze_operations): Call 
521         vectorizable_type_promotion and vectorizable_type_demotion with
522         additional argument.
523         (vect_get_and_check_slp_defs): Detect patterns.
524         (vect_build_slp_tree): Add an argument, don't fail in case of multiple
525         types. 
526         (vect_analyze_slp_instance): Don't fail in case of multiple types. Call
527         vect_build_slp_tree with correct arguments. Calculate unrolling factor
528         according to the smallest type in the loop.
529         (vect_detect_hybrid_slp_stmts): Include statements from patterns.
530         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call 
531         supportable_widening_operation with correct arguments. 
532         * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector 
533         operands lists according to the number of vector statements in left
534         or right node, if exists.
535         (vect_gen_widened_results_half): Remove unused argument.
536         (vectorizable_conversion): Call supportable_widening_operation, 
537         supportable_narrowing_operation, and vect_gen_widened_results_half
538         with correct arguments. 
539         (vectorizable_assignment): Change documentation, support multiple
540         types in SLP. 
541         (vectorizable_operation): Likewise.
542         (vect_get_loop_based_defs): New function.
543         (vect_create_vectorized_demotion_stmts): Likewise.
544         (vectorizable_type_demotion): Support loop-aware SLP and general
545         multi-step conversion. Call vect_get_loop_based_defs and
546         vect_create_vectorized_demotion_stmts for transformation.
547         (vect_create_vectorized_promotion_stmts): New function.
548         (vectorizable_type_promotion): Support loop-aware SLP and general
549         multi-step conversion. Call vect_create_vectorized_promotion_stmts
550         for transformation.     
551         (vectorizable_store): Change documentation, support multiple
552         types in SLP. 
553         (vectorizable_load): Likewise.
554         (vect_transform_stmt): Pass SLP_NODE to 
555         vectorizable_type_promotion and vectorizable_type_demotion.
556         (vect_schedule_slp_instance): Move here the calculation of number
557         of vectorized statements for each node from...
558         (vect_schedule_slp): ... here.
559         (vect_transform_loop): Call vect_schedule_slp without the last
560         argument.
561
562 2008-08-19  Dorit Nuzman  <dorit@il.ibm.com>
563
564         PR bootstrap/37152
565         * tree-vect-transform.c (vect_create_epilog_for_reduction): Change = 
566         to == in assert statement.
567         (vectorizable_reduction): Fix typo.
568
569 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
570
571         PR bootstrap/37153
572         * value-prof.c (check_counter): Dereference pointer to overall
573         count when printing it.
574
575 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
576
577         * profile.h: Really add it.
578
579 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
580
581         * mcf.c: Really add it.
582
583 2008-08-18  Paul Yuan  <yingbo.com@gmail.com>
584             Vinodha Ramasamy  <vinodha@google.com>
585
586         * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
587         count_scale.
588         * value-prof.c (check_counter): Fix the counter if
589         flag_profile_correction is true.
590         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
591         tree_mod_subtract_transform):
592         Follow check_counter parameter change.
593         * common.opt (fprofile-correction): New option.
594         * mcf.c: New file.
595         * profile.h: Likewise.
596         * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
597         (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
598         is_inconsistent, set_bb_counts, read_profile_edge_counts): New
599         functions.
600         (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
601         flag_profile_correction is set.
602
603 2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
604
605         * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
606
607 2008-08-18  Tomas Bily  <tbily@suse.cz>
608
609         * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
610         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
611         CONVERT_EXPR_P.
612         * tree-data-ref.c (split_constant_offset_1): Likewise.
613         * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
614         * tree-sra.c (sra_walk_expr): Likewise.
615         * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
616         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
617         * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
618         * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
619         Likewise.
620         * gimple.c (gimple_assign_unary_nop_p): Likewise.
621         * tree-vect-transform.c (vectorizable_type_demotion)
622         (vectorizable_type_promotion): Likewise.
623         * tree-inline.c (expand_call_inline): 
624         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
625         (forward_propagate_addr_expr_1, forward_propagate_comparison)
626         (tree_ssa_forward_propagate_single_use_vars): Likewise.
627         * expr.c (expand_expr_real_1): Likewise.
628         * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
629         (gimple_assign_unary_useless_conversion_p): Likewise.
630         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
631         * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
632         * fold-const.c (fold_unary): Likewise.
633         * tree.h (CONVERT_EXPR_P): Likewise.
634         * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
635         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
636         * tree-vrp.c: 
637         (register_edge_assert_for_2, extract_range_from_unary_expr)
638         (register_edge_assert_for_1): Likewise.
639         
640 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
641
642         * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
643         dconst_third_ptr, dconst_sqrt2_ptr): Declare.
644         (enum real_value_const): Delete.
645         (get_real_const): Delete.
646         * real.c (get_real_const): Delete.
647         (dconst_e_ptr): Define.
648         (dconst_third_ptr): Define.
649         (dconst_sqrt2_ptr): Define.
650         * builtins.c: Update all callers.
651
652 2008-08-18  Richard Guenther  <rguenther@suse.de>
653
654         * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
655         statement iterator after statement removal.
656
657 2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>
658
659         * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
660         (detect_processor_freebsd): Likewise.
661         (host_detect_local_cpu): Call newly added functions for FreeBSD.
662
663 2008-08-18  Richard Guenther  <rguenther@suse.de>
664
665         * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
666         and loads have the correct types.
667
668 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
669
670         PR cpp/7263
671         * c-opts.c (cpp_opts): Remove static.
672         * c-parser.c (cpp_opts): Declare it extern.
673         (disable_extension_diagnostics): Handle cpp options.
674         (enable_extension_diagnostics): Likewise.
675
676 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
677
678         * diagnostics.c (permerror_at): Rename as permerror.
679         (permerror): Delete.
680         * toplev.h: Likewise.
681
682 2008-08-18  Richard Guenther  <rguenther@suse.de>
683
684         * passes.c (init_optimization_passes): Remove cleanup_cfg1,
685         sdse1 and addressables2 passes.  Replace dce1 with cddce1.
686         Move call_cdce before build_alias.  Move copyrename2,
687         cunrolli and ccp2 beafore build_alias.  Re-add addressable2
688         right after final inlining.
689         * tree-cfg.c (build_gimple_cfg): Do not dump function here.
690         (pass_build_cfg): But instead via TODO_dump_func.
691
692 2008-08-18  Richard Guenther  <rguenther@suse.de>
693
694         * tree-sra.c (generate_element_init_1): Deal with NULL constructor
695         element index.
696         (scalarize_init): If we failed to generate some initializers
697         do not generate zeros for not instantiated members.  Instead
698         rely on the copy out.
699         * tree-ssa-operands.c (get_addr_dereference_operands): Warn
700         about missing flow-sensitive alias info only if we have
701         aliases computed.
702
703 2008-08-17  Nick Clifton  <nickc@redhat.com>
704
705         * doc/extend.texi (Function Attributes): Fix typo in description
706         if hot function attribute.
707
708 2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
709             Richard Sandiford  <rdsandiford@googlemail.com>
710
711         * doc/install.texi (--with-mips-plt): Document.
712         * doc/invoke.texi (-mplt, -mno-plt): Document.
713         * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
714         and handle ${with_mips_plt}.
715         * config/mips/mips.opt (mplt): New option.
716         * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
717         (TARGET_ABICALLS_PIC2): Likewise.
718         (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
719         (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
720         (ASM_SPEC): Use !mabi=* instead of !mabi*.
721         (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
722         to decide whether to output ".option picX" directives.
723         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
724         Pass -call_nonpic rather than -KPIC for -mplt.
725         (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
726         on the command line.  Also remove it when -mabi=64 is used without
727         -msym32.
728         * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
729         * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
730         TARGET_ABICALLS_PIC0.
731         (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
732         TARGET_ABICALLS.
733         (mips16_build_function_stub): Only output ".option pic" directives
734         and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
735         (mips16_build_call_stub): Fix comment and remove redundant
736         ".set at"/"set .noat" directives.
737         (mips_function_rodata_section): Use the default behaviour for
738         TARGET_ABSOLUTE_ABICALLS.
739         (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
740         (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
741         (mips_restore_gp): Do nothing if the current function doesn't use
742         a global pointer.
743         (mips_expand_prologue): Only save $gp if the current function uses it.
744         Use a normal move for TARGET_ABICALLS_PIC0.
745         (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
746
747 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
748
749         * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
750         of function when handling GLOBAL_POINTER_REGNUM.
751
752 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
753
754         PR ada/20548
755         * common.opt (-fstack-check): Do not declare the variable here.
756         (-fstack-check=): New option variant.
757         * doc/invoke.texi (Code Gen Options): Document it.
758         * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
759         (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
760         (STACK_CHECK_STATIC_BUILTIN): New macro.
761         * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
762         * opts.c: Include expr.h.
763         (common_handle_option) <OPT_fold_stack_check_>: New case.
764         <OPT_fstack_check>: Likewise.
765         * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
766         consistently in the test for variable-sized types.  Adjust for
767         new behaviour of flag_stack_check.
768         * explow.c: Include except.h.
769         (allocate_dynamic_stack_space): Do not take into account
770         STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
771         * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
772         for variable-sized parameters.  Treat all parameters whose size is
773         greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
774         stack checking is enabled.
775         * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
776         size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
777         if generic stack checking is enabled.
778         (expand_function_end): Adjust for new behaviour of flag_stack_check.
779         * reload1.c (reload): Likewise.
780         * stmt.c (expand_decl): Assert that all automatic variables have
781         fixed size at this point and remove dead code.
782         * flags.h (stack_check_type): New enumeration type.
783         (flag_stack_check): Declare.
784         * toplev.c (flag_stack_check): New global variable.
785         * Makefile.in (opts.o): Add dependency on EXPR_H.
786         (explow.o): Add dependency on except.h.
787
788 2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>
789
790         * config/avr/avr.c (avr_override_options): Reduce value of 
791         PARAM_INLINE_CALL_COST.
792
793 2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>
794
795         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
796         to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
797         lieu of TYPE_MODE (type) throughout.
798
799 2008-08-15  Joseph Myers  <joseph@codesourcery.com>
800
801         * config/arm/arm.c (add_minipool_backward_ref): Check for
802         8-byte-aligned entries in second case of forcing insertion after a
803         particular entry.  Change third case to avoid inserting
804         non-8-byte-aligned entries before 8-byte-aligned ones.
805
806 2008-08-15  Richard Guenther  <rguenther@suse.de>
807
808         * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
809         strip components for unknown size accesses.
810
811 2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
812
813         * config/s390/2097.md New file.
814         * config/s390/s390.md ("z10prop" attribute): Define none,
815         z10_super, z10_super_E1, z10_super_A1, z10_super_c,
816         z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
817         z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
818         possible values and apply them to insns as appropriate.
819         ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
820         ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
821         fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
822         fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible
823         values.
824         ("bfp" mode attribute): Removed.  Every occurence replaced
825         with <mode>.
826         * config/s390/s390.c (struct "z10_cost"): Updated entries.
827         * config/s390/2084.md (insn_reservation "x_itof"): Updated
828           type attribute.
829
830 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
831
832         PR c/28152
833         * c-parser.c (c_lex_one_token): Do not store the canonical spelling
834         for keywords.
835         
836 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
837
838         * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
839         additional argument. Support reduction when duplication is needed due
840         to data-types of different sizes in the loop.
841         (get_initial_def_for_induction): Fix printout.
842         (vect_get_vec_def_for_stmt_copy): Support case where the
843         vec_stmt_for_operand is a phi node.
844         (vectorizable_reduction): Support reduction when duplication is needed 
845         due to data-types of different sizes in the loop.
846         (vectorizable_call): Remove restriction to not vectorize in case we 
847         have data-types of different sizes in the loop.
848         (vectorizable_conversion): Likewise.
849         (vectorizable_operation): Likewise.
850         (vectorizable_type_demotion): Likewise.
851         (vectorizable_type_promotion): Likewise.
852         (vectorizable_induction): Add restriction to not vectorize in case 
853         we have data-types of different sizes in the loop.
854
855 2008-08-14  Christophe Saout  <christophe@saout.de>
856             Uros Bizjak  <ubizjak@gmail.com>
857
858         PR target/37101
859         * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
860         (*vec_concatv2di_rex64_sse4_1): Ditto.
861         (*vec_concatv2di_rex64_sse): Ditto.
862
863 2008-08-14  Jakub Jelinek  <jakub@redhat.com>
864
865         PR middle-end/37103
866         * fold-const.c (fold_widened_comparison): Do not allow
867         sign changes that change the result even if shorter type
868         is wider than arg1_unw's type.
869
870 2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
871
872         * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
873         Skip if the multilib testing specifies -march that does not
874         agree with the one specified in the testcase.
875
876 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
877
878         * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
879         zero extend SImode values being converted to TFmode before passing
880         to libcalls.
881
882 2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
883
884         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
885         __PPU__ when targeting the Cell/B.E. PPU processor.
886
887 2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
888
889         * gimple.h (gimple_call_set_chain): Accept SSA variables.
890         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
891         Rematerialize the static chain, if any.
892         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
893         static chain.
894
895 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
896
897         * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
898         (new_loc_descr): Likewise.
899         (add_loc_descr): Likewise.
900         (size_of_loc_descr): Likewise.
901         (size_of_locs): Likewise.
902         (output_loc_operands): Likewise.
903         (output_loc_sequence): Likewise.
904         (new_reg_loc_descr): New.
905         (build_cfa_loc): Use it.
906         (build_cfa_aligned_loc): Likewise.
907         (one_reg_loc_descriptor): Likewise.
908         (based_loc_descr): Likewise.
909
910 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
911
912         PR 30551
913         * doc/invoke.texi (Wmain): Update.
914         * c-decl.c (start_decl): warn_main is only 0 or 1.
915         (start_function): Likewise. Fix formatting.
916         (finish_function): Delete redundant warning.
917         * c.opt (Wmain): Add Var(warn_main) and Init(-1).
918         * c-opts (c_common_handle_option): -Wall only has effect if
919         warn_main is uninitialized. OPT_Wmain is automatically
920         handled. -pedantic also enables Wmain.
921         (c_common_post_options): Handle all logic for Wmain here.
922         * c-common.c (warn_main): Delete.
923         (check_main_parameter_types): Make pedwarns conditional on
924         OPT_Wmain.
925         * c-common.h (warn_main): Delete.
926
927 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
928
929         PR middle-end/36701
930         * expr.c (emit_group_store): Allocate stack temp with the
931         largest alignment when copying from register to stack.
932
933 2008-08-13  Richard Guenther  <rguenther@suse.de>
934
935         * tree.h (maybe_fold_offset_to_address): Declare.
936         * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
937         (ccp_fold): Handle pointer conversions the same as fold_stmt.
938         Likewise for POINTER_PLUS_EXPR.
939         (maybe_fold_offset_to_reference): Enable disabled code.
940         (maybe_fold_offset_to_address): New function.
941         (fold_stmt_r): Use it.
942         (fold_gimple_assign): Likewise.
943         * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
944         (gimplify_expr): Likewise.
945
946 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
947
948         * toplev.h (pedwarn_at): Fix declaration.
949         
950 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
951
952         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
953         LINK_SPEC): Use %R in -Y P argument.
954
955 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
956
957         PR c/15236
958         * diagnostic.c (pedwarn_at): New.
959         * toplev.h (pedwarn_at): Declare.
960         * c-tree.h (build_enumerator): Update declaration.
961         * c-decl.c (finish_enum): Update comment.
962         (build_enumerator): Take a location parameter. Give a pedwarn but do
963         not perform any conversion.
964         * c-parser.c (c_parser_enum_specifier): Set correct location for
965         enumerator.
966
967 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
968
969         PR 35635
970         * c-common.c (conversion_warning): Use a switch. Ignore boolean
971         expressions except for conversions to signed:1 bitfields. Handle
972         COND_EXPR with constant operands.
973         
974 2008-08-13  Richard Guenther  <rguenther@suse.de>
975
976         PR tree-optimization/15255
977         * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
978         (struct oecount_s): New struct and VEC types.
979         (cvec): New global.
980         (oecount_hash): New function.
981         (oecount_eq): Likewise.
982         (oecount_cmp): Likewise.
983         (zero_one_operation): New function.
984         (build_and_add_sum): Likewise.
985         (undistribute_ops_list): Perform un-distribution of multiplication
986         and division on the chain of summands.
987         (should_break_up_subtract): Also break up subtracts for factors.
988         (reassociate_bb): Delete dead visited statements.
989         Call undistribute_ops_list.  Re-sort and optimize if it did something.
990         * passes.c (init_optimization_passes): Move DSE before
991         reassociation.
992         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
993         PHI nodes.
994
995 2008-08-12  Janis Johnson  <janis187@us.ibm.com>
996
997         * doc/invoke.texi (-fipa-pta): Say the option is experimental.
998
999         * doc/invoke.texi: Revert unintended checkin.
1000
1001 2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
1002
1003         PR libgomp/26165
1004         * gcc.c (include_spec_function): Tweak call to find_a_file.
1005
1006 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
1007
1008         PR middle-end/37014
1009         * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
1010         and TRUTH_ORIF_EXPR.
1011         * dojump.c (do_jump): Likewise.
1012
1013         PR tree-optimization/37084
1014         * tree-inline.c (copy_bb): Call gimple_regimplify_operands
1015         if id->regimplify, don't assume stmt is a cast assignment.
1016
1017 2008-08-12  Anatoly Sokolov  <aesok@post.ru>
1018
1019         * final.c (final_scan_insn): Use app_enable/app_disable functions.
1020
1021 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1022
1023         PR bootstrap/37097
1024         * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
1025         by last change.
1026
1027 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1028
1029         * defaults.h (TARGET_FLOAT_FORMAT): Remove.
1030         (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
1031
1032         * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
1033         * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
1034         * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
1035         * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
1036         * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
1037
1038         * doc/tm.texi (Storage Layout): Remove documentation for
1039         TARGET_FLOAT_FORMAT.
1040
1041         * simplify-rtx.c (simplify_binary_operation_1): Replace
1042         TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
1043
1044 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1045
1046         * real.h (struct real_format): New member has_sign_dependent_rounding.
1047         * real.c (ieee_single_format, mips_single_format, motorola_single_format,
1048         spu_single_format, ieee_double_format, mips_double_format,
1049         motorola_double_format, ieee_extended_motorola_format,
1050         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
1051         ieee_extended_intel_96_round_53_format, ibm_extended_format,
1052         mips_extended_format, ieee_quad_format, mips_quad_format,
1053         vax_f_format, vax_d_format, vax_g_format): Initialize it.
1054         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
1055
1056         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
1057         MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
1058         * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
1059         MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
1060         (ROUND_TOWARDS_ZERO): Likewise.
1061
1062         * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
1063         (FLOAT_MODE_FORMAT): New macro.
1064         (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
1065         (MODE_COMPOSITE_P): ... this new macro.
1066         (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
1067         MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
1068         * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
1069
1070         * flags.h: Include "real.h".
1071
1072         * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
1073         REAL_MODE_FORMAT_COMPOSITE_P.
1074         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
1075
1076         * doc/tm.texi (Storage Layout): Remove documentation of
1077         MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
1078         MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
1079         ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
1080         they only apply to libgcc2.a.
1081
1082 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1083
1084         * config/spu/float_disf.c: New file.
1085         * config/spu/float_unsdisf.c: New file.
1086         * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
1087         (LIB2FUNCS_EXCLUDE): Define.
1088
1089 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1090             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1091
1092         * real.h (struct real_format): New member round_towards_zero.
1093         * real.c (round_for_format): Respect fmt->round_towards_zero.
1094         (ieee_single_format, mips_single_format, motorola_single_format,
1095         spu_single_format, ieee_double_format, mips_double_format,
1096         motorola_double_format, ieee_extended_motorola_format,
1097         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
1098         ieee_extended_intel_96_round_53_format, ibm_extended_format,
1099         mips_extended_format, ieee_quad_format, mips_quad_format,
1100         vax_f_format, vax_d_format, vax_g_format): Initialize it.
1101         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
1102
1103         * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
1104         real_format to choose rounding mode when calling MPFR functions.
1105         (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
1106         (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
1107
1108         * real.h (real_to_decimal_for_mode): Add prototype.
1109         * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
1110         Respect target rounding mode when generating decimal representation.
1111         (real_to_decimal): New stub for backwards compatibility.
1112         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
1113         real_to_decimal_for_mode instead of real_to_decimal.
1114
1115         * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
1116
1117 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1118             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1119
1120         * real.c (spu_single_format): New variable.
1121         * real.h (spu_single_format): Declare.
1122
1123         * config/spu/spu.c (spu_override_options): Install SFmode format.
1124         (spu_split_immediate): Use integer mode to operate on pieces of
1125         floating-point values in all cases.
1126
1127         * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
1128         ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
1129         ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
1130
1131 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1132
1133         * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
1134
1135 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1136
1137         * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
1138
1139 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
1140
1141         PR c++/36688
1142         * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
1143         on the VAR_DECL instead of TYPE_READONLY on its type.
1144
1145 2008-08-12  Ira Rosen  <irar@il.ibm.com>
1146
1147         * tree-vectorizer.c: Depend on langhooks.h.
1148         (supportable_widening_operation): Add two arguments. Support double
1149         type conversions.
1150         (supportable_narrowing_operation): Likewise.
1151         * tree-vectorizer.h (supportable_widening_operation): Add two 
1152         arguments.
1153         (supportable_narrowing_operation): Likewise.
1154         * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
1155         supportable_widening_operation with correct arguments.
1156         * tree-vect-transform.c (vectorizable_conversion): Likewise.
1157         (vectorizable_type_demotion): Support double type conversions.
1158         (vectorizable_type_promotion): Likewise.
1159         * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
1160
1161 2008-08-11  Michael Matz  <matz@suse.de>
1162
1163         * i386/i386.c (override_options): Move initialisation from
1164         flag_schedule_insns_after_reload to here from ...
1165         (optimization_options): ... here.
1166
1167 2008-08-11  Jakub Jelinek  <jakub@redhat.com>
1168
1169         PR rtl-optimization/36998
1170         * dwarf2out.c (compute_barrier_args_size_1,
1171         compute_barrier_args_size): Temporarily remove assertions.
1172
1173 2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1174
1175         PR middle-end/20644
1176         * tree-ssa.c (struct walk_data): Add new flag
1177         warn_possibly_uninitialized.
1178         (warn_uninitialized_var): Use it.
1179         (warn_uninitialized_vars): New.
1180         (execute_early_warn_uninitialized): Call it.
1181         (execute_late_warn_uninitialized): Likewise.
1182
1183 2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1184
1185         PR middle-end/36238
1186         * reload1.c (gen_reload): Guard calls to get_secondary_mem
1187         for memory subregs.
1188
1189 2008-08-09  Jan Hubicka  <jh@suse.cz>
1190
1191         PR target/37055
1192         * optabs.c (maybe_emit_unop_insn): Remove produced code if
1193         expansion failed.
1194         (expand_fix): Be prepared for expansion to fail.
1195         (expand_sfix_optab): Remove instructions if expansion failed.
1196
1197 2008-08-09  Anatoly Sokolov  <aesok@post.ru>
1198
1199         * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
1200         avr31 architecture.
1201         * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
1202         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1203
1204 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
1205
1206         * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
1207         mips/t-libgcc-mips16 to tmake_file.
1208         * config/mips/mips-protos.h (mips_call_type): New enum.
1209         (mips_pic_base_register, mips_got_load): Declare.
1210         (mips_restore_gp): Take an rtx argument.
1211         (mips_use_pic_fn_addr_reg_p): Declare.
1212         (mips_expand_call): Replace the sibcall_p argument with
1213         a mips_call_type argument.  Add a lazy_p parameter.
1214         (mips_split_call): Declare.
1215         * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
1216         (MIPS16_PIC_TEMP): Likewise.
1217         (reg_class): Delete M16_NA_REGS.
1218         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
1219         (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
1220         (mips_split_hi_p): Declare.
1221         * config/mips/mips.c (mips_split_hi_p): New array.
1222         (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
1223         (mips_got_symbol_type_p): New function.
1224         (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
1225         (mips16_stub_function_p): New function.
1226         (mips16_local_function_p): Likewise.
1227         (mips_use_pic_fn_addr_reg_p): Likewise.
1228         (mips_cannot_force_const_mem): Return false for HIGHs.
1229         Extend CONST_INT and symbolic handling to MIPS16, using
1230         mips_symbol_insns to check that the base symbol type is a
1231         legitimate constant.  Reject GOT-based constants if
1232         TARGET_MIPS16_PCREL_LOADS.
1233         (mips_const_insns): Check targetm.cannot_force_const_mem when
1234         decomposing a symbolic base and a large offset.
1235         (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
1236         When calling a function that needs $25 from MIPS16 code,
1237         move the target address into $25 separately and add a USE
1238         to the call insn.
1239         (mips16_gp_pseudo_reg): Insert the initializer immediately
1240         before the first real insn.
1241         (mips_pic_base_register, mips_got_load): New functions.
1242         (mips_split_symbol): Generalize the name of the LO_SUM_OUT
1243         parameter to LOW_OUT.  Say that it can be any valid SET_SRC
1244         when splitting a load-address operation.  Split SYMBOL_GOT_DISP
1245         constants and highs of SYMBOL_GOT_PAGE_OFST constants.
1246         (mips_call_tls_get_addr): Update the call to mips_expand_call,
1247         also passing NULL_RTX rather than const0_rtx as the aux argument.
1248         (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
1249         instead of TARGET_EXPLICIT_RELOCS.
1250         (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
1251         (mips_load_call_address): Replace the sibcall_p argument with
1252         a mips_call_type argument.  Use mips_got_load.
1253         (mips16_local_alias): New structure.
1254         (mips16_local_aliases): New variable.
1255         (mips16_local_aliases_hash): New function.
1256         (mips16_local_aliases_eq): Likewise.
1257         (mips16_local_alias): Likewise.
1258         (mips16_stub_function): Likewise.
1259         (mips16_build_function_stub): Create a local alias for the target
1260         function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
1261         .cpload directive and an R_MIPS_NONE relocation for the target
1262         function, then load the alias rather than the function itself.
1263         Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
1264         (mips16_copy_fpr_return_value): Use mips16_stub_function and
1265         mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
1266         (mips16_build_call_stub): Replace the FN parameter with an
1267         FN_PTR parameter.  Force the address into a register if it
1268         isn't a call_insn_operand; don't rely on the caller to do this.
1269         If a call to a locally-defined and locally-binding MIPS16
1270         function must be made indirectly, redirect the call to the
1271         function's local alias.  Use mips16_stub_function_p,
1272         mips16_stub_function, mips_expand_call and use_reg.
1273         Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
1274         Use explicit %hi and %lo accesses where possible.
1275         Use MIPS_CALL to generate the correct code form of a
1276         jal instruction.  Add clobbers of $18 instead of uses.
1277         Update the call to mips_emit_call_insn.
1278         (mips_expand_call): Replace the SIBCALL_P argument with a
1279         mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
1280         Take a LAZY_P parameter.  Call mips16_build_call_stub first,
1281         allowing it to modify the call address.  Update the calls to
1282         mips_load_call_address and mips_emit_call_insn.
1283         (mips_split_call): New function.
1284         (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
1285         !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
1286         SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
1287         (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
1288         (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
1289         if TARGET_MIPS16.
1290         (mips_cprestore_slot): New function.
1291         (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
1292         and use mips_cprestore_slot.
1293         (mips_output_function_prologue): Handle TARGET_MIPS16 for
1294         LOADGP_OLDABI.
1295         (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
1296         then use a copygp_mips16 instruction to set up $28.
1297         (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
1298         (mips16_lay_out_constants): Call split_all_insns_noflow.
1299         (mips_reorg_process_insns): Explicitly set all_noreorder_p to
1300         false if TARGET_MIPS16.
1301         (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
1302         (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
1303         mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
1304         (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
1305         MIPS16 code.  Allow MIPS16 o32 PIC.
1306         (mips_override_options): Allow MIPS16 o32 PIC.
1307         * config/mips/mips.md: Lower CONST_GP_P moves into register moves
1308         after reload if TARGET_USE_GOT.
1309         (UNSPEC_COPYGP): New constant.
1310         (length): Use a default length of 8 for MIPS16 GOT loads.
1311         (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
1312         (*got_page<mode>): Check mips_split_hi_p.
1313         (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
1314         (unspec_got<mode>, unspec_call<mode>): New expanders.
1315         (load_got<mode>, load_call<mode>): Remove the length attributes.
1316         Use a got attribute instead of a type attribute.
1317         (copygp_mips16): New insn.
1318         (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
1319         (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
1320         (sibcall, sibcall_value, call, call_value): Update the calls
1321         to mips_expand_call.
1322         (call_internal, call_value_internal): Use mips_split_call.
1323         (call_value_multiple_internal): Likewise.
1324         (call_split): Move after call_internal (the insn it is split from).
1325         (call_internal_direct, call_value_internal_direct): Turn into
1326         define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
1327         (call_direct_split, call_value_direct_split): New patterns.
1328         * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
1329         and use M16_REGS instead of M16_NA_REGS.
1330         * config/mips/predicates.md (const_call_insn_operand): Replace
1331         the TARGET_ABSOLUTE_ABICALLS-based check with a more general
1332         mips_use_pic_fn_addr_reg_p check.
1333         (move_operand): Reject HIGHs if mips_split_hi_p.
1334         * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
1335         (__mips16_floatunsisf): Inline __mips16_floatsisf.
1336         (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
1337         * config/mips/libgcc-mips16.ver: New file.
1338         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
1339         $(srcdir)/config/mips/libgcc-mips16.ver.
1340
1341 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
1342
1343         * config/mips/mips.c (mips_unspec_address_offset): Move earlier in file.
1344         (mips_unspec_address, mips_unspec_offset_high): Likewise.
1345         (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
1346         (mips16_cfun_returns_in_fpr_p): Likewise.
1347
1348 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
1349
1350         * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
1351         * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
1352         rather than 4 to PC.
1353
1354 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
1355
1356         * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
1357         (FUNCTION_PROFILER): Save the static chain pointer into $2
1358         beforehand and restore it aftewards.
1359         (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
1360         address directly into $25 and call the function through $25;
1361         do not clobber $3.  Pad the DImode version to cover the space
1362         left by the deleted $25 <- $3 move.
1363         (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
1364         the removal of the $25 <- $3 move.
1365         (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
1366         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
1367
1368 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
1369             Daniel Jacobowitz  <dan@codesourcery.com>
1370
1371         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
1372         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
1373         (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
1374         * config/mips/mips.c (mips_start_function_definition): New function.
1375         (mips_end_function_definition): Likewise.
1376         (mips_output_function_prologue): Use mips_start_function_definition.
1377         (mips_output_function_epilogue): Use mips_end_function_definition.
1378         (build_mips16_function_stub): Use mips_start_function_definition
1379         and mips_end_function_definition.
1380         (build_mips16_call_stub): Likewise.
1381
1382 2008-08-09  Richard Guenther  <rguenther@suse.de>
1383
1384         * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
1385         * gimple.h (gimple_call_fn): Adjust comment.
1386         (gimple_call_set_fndecl): New function.
1387         (gimple_call_fndecl): Adjust for GIMPLE_CALL no
1388         longer having bare FUNCTION_DECL operand.
1389         (gimple_call_return_type): Likewise.
1390         * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
1391
1392         * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
1393         (gimple_mod_pow2): Likewise.
1394         (gimple_mod_subtract): Likewise.
1395         (gimple_ic): Likewise.
1396         (gimple_stringop_fixed_value): Likewise.
1397         (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
1398         longer having bare FUNCTION_DECL operand.
1399         * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
1400         * omp-low.c (optimize_omp_library_calls): Likewise.
1401         * cgraphunit.c (update_call_expr): Likewise.
1402         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
1403         (execute_convert_to_rsqrt): Likewise.
1404         * cfgexpand.c (gimple_to_tree): Simplify.
1405         (release_stmt_tree): Fix for GIMPLE_CALL no longer having
1406         bare FUNCTION_DECL operand.
1407         * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
1408         (convert_gimple_call): Use gimple_call_fndecl.
1409         * c-common.c (c_warn_unused_result): Likewise.
1410
1411 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1412
1413         PR c/17880
1414         * c-typeck.c (digest_init): Call verify_sequence_points from here.
1415         (c_finish_return): Likewise.
1416         (c_start_case): Likewise.
1417         * c-common.c (warn_for_collisions_1): Use explicit location in
1418         warning.
1419         * c-parser.c (c_parser_condition): New. Call
1420         verify_sequence_points.
1421         (c_parser_paren_condition): Call c_parser_condition.
1422         (c_parser_for_statement): Call c_parser_condition.
1423
1424 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1425
1426         PR 36901
1427         * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.  
1428         * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
1429         Moved from diagnostic.h
1430         (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
1431         DK_PERMERROR.
1432         (emit_diagnostic): New.
1433         (warning0, pedwarn0): Delete.
1434         (warning, warning_at, pedwarn, permerror): Return bool.  
1435         * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
1436         Moved to diagnostic.c.
1437         (struct diagnostic_context): Use correct type for
1438         classify_diagnostic.
1439         (diagnostic_report_diagnostic): Update declaration.
1440         (emit_diagnostic): Declare.
1441         * errors.c (warning): Return bool.  
1442         * errors.h (warning): Update declaration.
1443         * toplev.h (warning0, pedwarn0): Delete.
1444         (warning, warning_at, pedwarn, permerror): Return bool.
1445         * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
1446         * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
1447         inform. Update all calls.
1448         (diagnose_mismatched_decls): Check return value of warning/pedwarn
1449         before giving informative note.
1450         (implicit_decl_warning): Likewise.  
1451         * c-typeck.c (build_function_call): Likewise.  
1452         * tree-sssa.c (warn_uninit): Likewise.  
1453         * builtins.c (gimplify_va_arg_expr): Likewise.
1454
1455 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1456
1457         PR 7651
1458         * doc/invoke.texi (-Wextra): Move warning from here...
1459         (-Wuninitialized): ... to here.
1460         
1461 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1462
1463         PR 28875
1464         * flags.h (set_Wunused): Delete
1465         * toplev.c (process_options): Handle Wunused flags here.
1466         * opts.c (maybe_warn_unused_parameter): Delete.
1467         (common_handle_option): Replace set_Wunused by warn_unused.
1468         (set_Wextra): Do not handle Wunused-parameter here.
1469         (set_Wunused): Delete.
1470         * c-opts.c (c_common_handle_option): Replace set_Wunused by
1471         warn_unused.
1472         * common.opt (Wunused): Add Var and Init.
1473         (Wunused-function): Likewise.
1474         (Wunused-label): Likewise.
1475         (Wunused-parameter): Likewise.
1476         (Wunused-value): Likewise.
1477         (Wunused-variable): Likewise.
1478         
1479 2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>
1480
1481         * doc/invoke.texi: Add cpu_type power7.
1482         * config.in (HAVE_AS_VSX): New.
1483         * config.gcc: Add cpu_type power7.
1484         * configure.ac (HAVE_AS_VSX): Check for assembler support of the
1485         VSX instructions.
1486         * configure: Regenerate.
1487         * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
1488         power5.
1489         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
1490         (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
1491         (EXTRA_SPECS): Add asm_cpu_power7 spec string.
1492
1493 2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>
1494
1495         * tree-vect-transform.c (vectorizable_conversion): Pass the integral
1496         type to vectorize.builtin_conversion.
1497         (vectorizable_conversion): Likewise.
1498         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
1499         integral type as input.
1500         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
1501         FIX_TRUNC_EXPR.
1502         (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
1503         and ALTIVEC_BUILTIN_VCTSXS.
1504         (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
1505         formatting. 
1506
1507 2008-08-08  Richard Guenther  <rguenther@suse.de>
1508
1509         * tree-ssa-ccp.c (likely_value): Calls are not all varying.
1510         (surely_varying_stmt_p): Calls are varying only if they are
1511         non-builtin and not indirect or have no result.
1512         (ccp_fold): Re-instantiate code before the tuples merge.
1513
1514 2008-08-08  Richard Guenther  <rguenther@suse.de>
1515
1516         PR tree-optimization/37056
1517         * gimple.h (gimple_assign_rhs_class): New helper function.
1518         * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
1519         unary operations properly.
1520
1521 2008-08-07  Jan Hubicka  <jh@suse.cz>
1522
1523         * i386.h (ix86_size_cost): Declare.
1524         (ix86_cur_cost): New function macro.
1525         * i386.md (peepholes expanding size and splitters): Predicate by
1526         optimize_insn_for_speed_p.
1527         (peepholes reduce size and splitters): Predicate by
1528         optimize_insn_for_size_p.
1529         * i386.c (ix86_size_cost): Rename from ...
1530         (size_cost): This one.
1531         (override_options): Update.
1532         (decide_alg): Likewise.
1533         (ix86_expand_clear): Use RTL profile.
1534         (ix86_pad_returns): Use RTL profile.
1535
1536 2008-08-07  Jan Hubicka  <jh@suse.cz>
1537
1538         * recog.c (split_all_insns): Set RTL profile
1539         (peephole2_optimize): Likewise.
1540         * function.c (thread_prologue_and_epilogue_insns): Likewise.
1541         * combine.c (combine_instructions): Likewise.
1542
1543 2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1544
1545         * c-common.c (c_common_reswords): Also warn about keyword "bool".
1546
1547 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
1548         
1549         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
1550         value in a6 after the set_frame_ptr insn.
1551         
1552 2008-08-07  Richard Henderson  <rth@redhat.com>
1553
1554         PR debug/37033
1555         * gcc.c (cpp_options): Pass along -g*.
1556
1557 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
1558
1559         * config/arm/arm.c (output_move_neon): Update comment describing
1560         big-endian vector layout.
1561         (arm_assemble_integer): Do not handle big-endian NEON vectors
1562         specially.
1563         * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
1564         neon_vget_lane<mode>_sext_internal,
1565         neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
1566         element indices for big-endian.
1567
1568 2008-08-07  Richard Henderson  <rth@redhat.com>
1569
1570         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
1571         * configure, config.in: Rebuild.
1572         * debug.h (dwarf2out_do_cfi_asm): Declare.
1573         * c-cppbuiltin.c (c_cpp_builtins): Use it.
1574         * dwarf2out.c (dwarf2out_do_cfi_asm): New.
1575         (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
1576         dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
1577
1578 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
1579
1580         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
1581         movv2si_internal): Combine into mov<mode>_internal.
1582         (movv2si_internal_2): Remove.
1583
1584 2008-08-07  Jan Hubicka  <jh@suse.cz>
1585
1586         PR target/37048
1587         * i386.md (single stringop patterns): Enable unconditionally. 
1588
1589 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
1590
1591         PR target/36992
1592         * config/i386/emmintrin.h (_mm_move_epi64): Use
1593         __builtin_ia32_movq128.
1594
1595         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
1596         (bdesc_args): Add IX86_BUILTIN_MOVQ128.
1597
1598         * config/i386/sse.md (sse2_movq128): New.
1599
1600         * doc/extend.texi: Document __builtin_ia32_movq128.
1601
1602 2008-08-07  Richard Guenther  <rguenther@suse.de>
1603
1604         PR middle-end/37042
1605         * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
1606         pointers can access anything.
1607
1608 2008-08-06  Jan Hubicka  <jh@suse.cz>
1609
1610         * optabs.c (emit_unop_insn): Break out to ...
1611         (maybe_emit_unop_insn): ... this one.
1612         (expand_sfix_optab): Use maybe variant.
1613         * optabs.h (maybe_emit_unop_insn): Declare.
1614
1615         * i386.md (mov0 patterns): Enable by default.
1616         (FP conversion expanders): Disable expansion of code expanding
1617         sequences when instruction should be optimized for size.
1618         (single strinop patterns): Enable when optimizing for size.
1619         (string expanders): Disable expanding of code expanding sequences
1620         when optimizning instruction for size.
1621         * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
1622         per BB basis.
1623         (ix86_fp_comparison_sahf_cost): Likewise.
1624         (ix86_expand_branch): Likewise.
1625         (ix86_expand_ashl_const): Likewise.
1626         (ix86_split_ashl): Likewise.
1627         (ix86_expand_strlen): Likewise.
1628         (ix86_emit_fp_unordered_jump): Likewie.
1629
1630 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1631
1632         * c-common.c: Fix typo.
1633         (c_common_reswords): Activate more C++ keyword warnings.
1634
1635         * matrix-reorg.c (compute_offset): Avoid C++ keywords.
1636
1637 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1638
1639         PR 26785
1640         * diagnostic.c (permerror_at): New.
1641         * toplev.h (permerror_at): Declare.
1642         
1643 2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
1644             Ira Rosen  <irar@il.ibm.com>
1645
1646         * tree-vect-transform.c (vect_model_simple_cost): Return
1647         immediately if stmt is pure SLP.
1648         (vect_model_store_cost): Ditto.
1649         (vect_model_load_cost): Ditto.
1650         (vectorizable_store): Remove PURE_SLP check before call
1651         to vect_model_store_cost.
1652         (vect_model_store_cost): When checking whether stmt describe
1653         strided access, add a check that it is not slp_node.
1654
1655 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1656
1657         PR 8715
1658         * c-common.c (warn_for_sign_compare): New. Handle separately the
1659         case that 'constant' is zero.
1660         * c-typeck.c (build_binary_op): Move code to c-common.c
1661         
1662 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1663
1664         * config/alpha/alpha.c (alpha_preferred_reload_class,
1665         alpha_secondary_reload, alpha_emit_set_const_1, function_value,
1666         alpha_output_mi_thunk_osf): Avoid C++ keywords.
1667         * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
1668         * config/arm/arm.md: Likewise.
1669         * config/avr/avr-protos.h (preferred_reload_class,
1670         test_hard_reg_class, avr_simplify_comparison_p,
1671         out_shift_with_cnt, class_max_nregs): Likewise.
1672         * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
1673         output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
1674         preferred_reload_class, test_hard_reg_class): Likewise.
1675         * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
1676         bfin_memory_move_cost, bfin_secondary_reload,
1677         bfin_output_mi_thunk): Likewise.
1678         * config/crx/crx.c (crx_secondary_reload_class,
1679         crx_memory_move_cost): Likewise.
1680         * config/frv/frv-protos.h (frv_secondary_reload_class,
1681         frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
1682         * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
1683         frv_secondary_reload_class, frv_class_likely_spilled_p,
1684         frv_class_max_nregs): Likewise.
1685         * config/h8300/h8300.c (h8300_classify_operand,
1686         h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
1687         Likewise.
1688         * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
1689         * config/ia64/ia64.c (ia64_preferred_reload_class,
1690         ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
1691         * config/iq2000/iq2000.c (gen_int_relational): Likewise.
1692         * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
1693         Likewise.
1694         * config/m68hc11/m68hc11.c (preferred_reload_class,
1695         m68hc11_memory_move_cost): Likewise.
1696         * config/mcore/mcore.c (mcore_secondary_reload_class,
1697         mcore_reload_class): Likewise.
1698         * config/mips/mips.c (mips_hard_regno_mode_ok_p,
1699         mips_class_max_nregs, mips_cannot_change_mode_class,
1700         mips_preferred_reload_class, mips_secondary_reload_class,
1701         mips_output_mi_thunk): Likewise.
1702         * config/mmix/mmix.c (mmix_preferred_reload_class,
1703         mmix_preferred_output_reload_class, mmix_secondary_reload_class):
1704         Likewise.
1705         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
1706         Likewise.
1707         * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
1708         pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
1709         * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
1710         * config/rs6000/rs6000.c (paired_expand_vector_init,
1711         rs6000_secondary_reload_class, rs6000_output_mi_thunk,
1712         compare_section_name, rs6000_memory_move_cost): Likewise.
1713         * config/s390/s390.c (s390_emit_compare_and_swap,
1714         s390_preferred_reload_class, s390_secondary_reload,
1715         legitimize_pic_address, legitimize_tls_address,
1716         legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
1717         s390_class_max_nregs): Likewise.
1718         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
1719         * config/s390/s390.md: Likewise.
1720         * config/score/score-protos.h (score_secondary_reload_class,
1721         score_preferred_reload_class): Likewise.
1722         * config/score/score.c (score_preferred_reload_class,
1723         score_secondary_reload_class): Likewise.
1724         * config/score/score3.c (score3_output_mi_thunk,
1725         score3_preferred_reload_class, score3_secondary_reload_class,
1726         score3_hard_regno_mode_ok): Likewise.
1727         * config/score/score3.h (score3_preferred_reload_class,
1728         score3_secondary_reload_class): Likewise.
1729         * config/score/score7.c (score7_output_mi_thunk,
1730         score7_preferred_reload_class, score7_secondary_reload_class,
1731         score7_hard_regno_mode_ok): Likewise.
1732         * config/score/score7.h (score7_preferred_reload_class,
1733         score7_secondary_reload_class): Likewise.
1734         * config/sh/sh.c (prepare_move_operands, output_far_jump,
1735         output_branchy_insn, add_constant, gen_block_redirect,
1736         sh_insn_length_adjustment, sh_cannot_change_mode_class,
1737         sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload):
1738         Likewise.
1739         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
1740         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
1741         xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
1742         xstormy16_preferred_reload_class): Likewise.
1743         * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
1744         xtensa_expand_atomic, override_options,
1745         xtensa_preferred_reload_class, xtensa_secondary_reload_class):
1746         Likewise.
1747         * reorg.c (try_merge_delay_insns): Likewise.
1748         * tree.c (merge_dllimport_decl_attributes): Likewise.
1749
1750         * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
1751
1752 2008-08-06  Michael Matz  <matz@suse.de>
1753
1754         * Makefile.in (write_entries_to_file): Quote words.
1755         * gengtype.c: (read_input_line): Skip over leading white-space.
1756
1757 2008-08-06  Marc Gauthier  <marc@tensilica.com>
1758
1759         * config.gcc: Match more processor names for Xtensa.
1760         * configure.ac: Likewise.
1761         * doc/install.texi (Specific): Likewise.
1762         * configure: Regenerate.
1763
1764 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1765
1766         * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
1767         * calls.c (avoid_likely_spilled_reg): Likewise.
1768         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
1769         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
1770         * config/i386/i386.c (ix86_expand_special_args_builtin,
1771         ix86_secondary_reload): Likewise.
1772         * except.c (struct eh_region, gen_eh_region_catch,
1773         remove_unreachable_regions, duplicate_eh_regions,
1774         assign_filter_values, build_post_landing_pads,
1775         sjlj_find_directly_reachable_regions, remove_eh_handler,
1776         reachable_next_level, foreach_reachable_handler,
1777         can_throw_internal_1, can_throw_external_1,
1778         collect_one_action_chain): Likewise.
1779         * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
1780         * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
1781         * function.c (update_temp_slot_address, instantiate_new_reg,
1782         instantiate_virtual_regs_in_rtx,
1783         instantiate_virtual_regs_in_insn): Likewise.
1784         * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
1785         * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
1786         gimplify_cleanup_point_expr): Likewise.
1787         * ipa-cp.c (ipcp_lattice_changed): Likewise.
1788         * passes.c (next_pass_1): Likewise.
1789         * print-tree.c (print_node_brief, print_node): Likewise.
1790         * profile.c (branch_prob): Likewise.
1791         * tree-dump.c (dump_register): Likewise.
1792         * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
1793         Likewise.
1794         * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
1795         copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
1796         copy_edges_for_bb, copy_cfg_body, copy_tree_r,
1797         copy_arguments_for_versioning, copy_static_chain): Likewise.
1798         * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
1799         add_new_name_mapping, register_new_name_mapping): Likewise.
1800         * tree-mudflap.c (mf_xform_derefs): Likewise.
1801         * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
1802         get_init_expr, combine_chains): Likewise.
1803         * tree-pretty-print.c (dump_generic_node): Likewise.
1804         * tree-ssa-structalias.c (create_variable_info_for): Likewise.
1805         * tree-vrp.c (simplify_cond_using_ranges): Likewise.
1806         * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
1807         * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
1808
1809 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
1810
1811         PR middle-end/37010
1812         * calls.c (expand_call): Use the biggest preferred stack
1813         boundary.
1814
1815 2008-08-06  Michael Matz  <matz@suse.de>
1816
1817         PR target/36613
1818         * reload.c (push_reload): Merge in,out,in_reg,out_reg members
1819         for reused reload, instead of overwriting them.
1820
1821 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
1822
1823         PR middle-end/37009
1824         * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
1825         for incoming stack boundary.
1826
1827         * function.c (assign_parm_find_entry_rtl): Update
1828         parm_stack_boundary.
1829
1830         * function.h (rtl_data): Add parm_stack_boundary.
1831
1832         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
1833         parm_stack_boundary for incoming stack boundary.
1834
1835 2008-08-06  Joseph Myers  <joseph@codesourcery.com>
1836
1837         * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
1838         for unrepresentable subregs or treat them as equal to other regs
1839         or subregs with the same register number.
1840
1841 2008-08-06  Aldy Hernandez  <aldyh@redhat.com>
1842
1843         PR middle-end/35432
1844         * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
1845         if want_value.
1846
1847 2008-08-06  Jan Hubicka  <jh@suse.cz>
1848
1849         * predict.c (maybe_hot_frequency_p): When profile is absent, all
1850         frequencies might be hot.
1851
1852 2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>
1853
1854         * reload.c (find_reloads): Force constants into literal pool
1855         also if they are wrapped in a SUBREG.
1856
1857 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1858
1859         PR target/35659
1860         * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
1861         * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
1862         Don't allow predicated instructions for data speculation.
1863         * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
1864         declaration.
1865
1866 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1867
1868         * haifa-sched.c (extend_global): Split to extend_global_data and
1869         extend_region_data.  Update all uses.
1870         (extend_all): Rename to extend_block_data.
1871
1872 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1873
1874         * sched-rgn.c (new_ready): Check if instruction can be
1875         speculatively scheduled before attempting speculation.
1876         (debug_rgn_dependencies): Remove wrongful assert.
1877
1878 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
1879
1880         * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
1881         
1882 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
1883         
1884         * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
1885         (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
1886         va_size, and type_size.
1887         
1888 2008-08-04  Jason Merrill  <jason@redhat.com>
1889
1890         PR c++/37016
1891         * tree-ssa.c (useless_type_conversion_p_1): Call langhook
1892         if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
1893
1894 2008-08-05  Richard Henderson  <rth@redhat.com>
1895
1896         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
1897         * configure: Rebuild.
1898
1899 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1900
1901         PR tree-opt/37024
1902         * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
1903         instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
1904         is a conversion.
1905
1906 2008-08-05  Richard Henderson  <rth@redhat.com>
1907
1908         * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
1909         * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
1910         * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
1911         * common.opt (fdwarf2-cfi-asm): New.
1912         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
1913         * config.in, configure: Rebuild.
1914         * dwarf2asm.c (dw2_asm_output_data_raw): New.
1915         (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw): New.
1916         (dw2_force_const_mem): Externalize.
1917         * dwarf2asm.h: Update.
1918         * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
1919         generate a real label.
1920         (output_cfi_directive): New.
1921         (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
1922         (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
1923         (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
1924         and .cfi_lsda.
1925         (dwarf2out_end_epilogue): Emit .cfi_endproc.
1926         (output_loc_operands_raw, output_loc_sequence_raw): New.
1927         (output_cfa_loc_raw): New.
1928         
1929 2008-08-05  Paul Brook  <paul@codesourcery.com>
1930
1931         * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
1932         * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
1933         (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
1934         (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
1935         * config/arm/arm.h (TARGET_VFPD32): Define.
1936         (TARGET_VFP3): Use TARGET_VFPD32.
1937         (fputype): Add FPUTYPE_VFP3D16.
1938         (LAST_VFP_REGNUM): Use TARGET_VFPD32.
1939         * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
1940         * config/arm/arm-cores.def: Add cortex-r4f.
1941         * config/arm/arm-tune.md: Regenerate.
1942
1943 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1944
1945         * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
1946         Reword some comments throughout the file.
1947
1948         (MFC_MIN_DMA_LIST_ELEMENTS): New define.
1949         (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
1950         (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of MFC_MIN_DMA_LIST_ELEMENTS.
1951         (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of MFC_MAX_DMA_LIST_ELEMENTS.
1952
1953         (MFC_START_ENABLE): Remove PPU-only define.
1954         (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
1955         (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
1956
1957         (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
1958         (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
1959         (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
1960         (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
1961         (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
1962         (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
1963         (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
1964
1965         (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
1966         (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
1967         (mfc_sdcrt, mfc_sdcrtst): Likewise.
1968         (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
1969
1970         (spu_read_machine_status): Fix typo.
1971
1972 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1973
1974         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
1975         SUBREG of multi-word hard register.
1976         * config/spu/spu.c (valid_subreg): Likewise.
1977         (adjust_operand): Handle SUBREGs of multi-word hard registers.
1978
1979 2008-08-04  Richard Guenther  <rguenther@suse.de>
1980
1981         * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
1982         the candidate with the stripped base if that base is different
1983         from the original base even for offset zero.
1984
1985 2008-08-04  Richard Guenther  <rguenther@suse.de>
1986
1987         PR middle-end/36691
1988         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
1989         check for no_overflow.
1990
1991 2008-08-04  Richard Guenther  <rguenther@suse.de>
1992
1993         * tree-vect-transform.c (vectorizable_call): Fix tuplification.
1994
1995 2008-08-04  Paul Brook  <paul@codesourcery.com>
1996
1997         * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
1998         (arm_order_regs_for_local_alloc): New function.
1999         * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
2000         prototype.
2001         * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
2002
2003 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
2004
2005         PR target/37012
2006         * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
2007         instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
2008         (ix86_expand_epilogue): Likewise.
2009
2010 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
2011
2012         * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
2013         in comments.
2014
2015 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
2016
2017         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
2018         to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
2019         (*movv2sf_internal_rex64): Ditto.
2020
2021 2008-08-03  Jan Hubicka  <jh@suse.cz>
2022
2023         * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
2024         expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
2025         * expmed.c (expand_smod_pow2): Likewise.
2026
2027 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
2028
2029         PR target/36992
2030         * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
2031         alternative 0 of operand 1.
2032         (*vec_concatv2di_rex64_sse): Ditto.
2033         (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
2034         of operand 1.
2035         (*sse2_storeq_rex64): Penalize allocation of "r" registers.
2036         * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
2037         of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
2038         (*movv2sf_internal_rex64): Ditto.
2039
2040 2008-08-02  Richard Guenther  <rguenther@suse.de>
2041
2042         PR target/35252
2043         * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
2044         (ssedoublesizemode): New mode attribute.
2045         (sse_shufps): Call gen_sse_shufps_v4sf.
2046         (sse_shufps_1): Macroize.
2047         (sse2_shufpd): Call gen_Sse_shufpd_v2df.
2048         (sse2_shufpd_1): Macroize.
2049         (vec_extract_odd, vec_extract_even): New expanders.
2050         (vec_interleave_highv4sf, vec_interleave_lowv4sf,
2051         vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
2052         * i386.c (ix86_expand_vector_init_one_nonzero): Call
2053         gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
2054         (ix86_expand_vector_set): Likewise.
2055         (ix86_expand_reduc_v4sf): Likewise.
2056
2057 2008-08-01  Doug Kwan  <dougkwan@google.com>
2058
2059         * matrix-reorg.c: Re-enable all code.
2060         (struct malloc_call_data): Change CALL_STMT to gimple type.
2061         (collect_data_for_malloc_call): Tuplify.
2062         (struct access_site_info): Change STMT to gimple type.
2063         (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
2064         and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
2065         (struct free_info): Change STMT to gimple type.
2066         (struct matrix_access_phi_node):  Change PHI to gimple type.
2067         (get_inner_of_cast_expr): Remove.
2068         (may_flatten_matrices_1): Tuplify.
2069         (may_flatten_matrices): Ditto.
2070         (mark_min_matrix_escape_level): Ditto.
2071         (ssa_accessed_in_tree): Refactor statement RHS related code into ...
2072         (ssa_accessed_in_call_rhs): New
2073         (ssa_accessed_in_assign_rhs): New
2074         (record_access_alloc_site_info): Tuplify.
2075         (add_allocation_site): Ditto.
2076         (analyze_matrix_allocation_site): Ditto.
2077         (analyze_transpose): Ditto.
2078         (get_index_from_offset): Ditto.
2079         (update_type_size): Ditto.
2080         (analyze_accesses_for_call_expr): Tuplify and renamed into ...
2081         (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
2082         (analyze_accesses_for_phi_node): Tuplify.
2083         (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
2084         (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
2085         (analyze_matrix_accesses): Tuplify.
2086         (check_var_data): New call-back type for check_var_notmodified_p.
2087         (check_var_notmodified_p): Tuplify and use call-back struct to
2088         return statement found.
2089         (can_calculate_expr_before_stmt): Factor out statement related code
2090         into ...
2091         (can_calculate_stmt_before_stmt): New.
2092         (check_allocation_function): Tuplify.
2093         (find_sites_in_func): Ditto.
2094         (record_all_accesses_in_func): Ditto.
2095         (transform_access_sites): Ditto.
2096         (transform_allocation_sites): Ditto.
2097         (matrix_reorg): Re-enable.
2098         (gate_matrix_reorg): Re-enable.
2099
2100 2008-08-01  Jakub Jelinek  <jakub@redhat.com>
2101
2102         * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
2103         for labels for which it hasn't been set yet.  If it has been set,
2104         stop walking insns and continue with next worklist item.
2105         (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
2106         if the only BARRIER is at the very end of a function.
2107
2108 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
2109
2110         * cfgexpand.c (expand_stack_alignment): Assert that
2111         stack_realign_drap and drap_rtx must match.
2112
2113         * function.c (instantiate_new_reg): If DRAP is used to realign
2114         stack, replace virtual_incoming_args_rtx with internal arg
2115         pointer.
2116
2117 2008-08-01  Richard Guenther  <rguenther@suse.de>
2118
2119         * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
2120         loop information only if we initialized it.
2121         (execute_pre): Call fini_pre with in_fre.
2122         * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
2123         if we do not unroll because we hit max-completely-peeled-insns.
2124         Use our estimation for consistency, do allow shrinking.
2125
2126 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
2127
2128         * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
2129         with MIN_STACK_BOUNDARY.
2130         (ix86_update_stack_boundary): Likewise.
2131         (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
2132         STACK_BOUNDARY.
2133
2134         * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
2135         (MIN_STACK_BOUNDARY): This.
2136
2137 2008-08-01  Richard Guenther  <rguenther@suse.de>
2138
2139         PR middle-end/36997
2140         * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
2141
2142 2008-08-01  Richard Guenther  <rguenther@suse.de>
2143
2144         PR tree-optimization/36988
2145         * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
2146         do not matter if that doesn't change volatile qualification.
2147
2148 2008-08-01  Paolo Bonzini  <bonzini@gnu.org>
2149
2150         * configure.ac: Do not generate libada-mk.  Do not subst
2151         host_cc_for_libada.
2152         * libada-mk.in: Remove.
2153         * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
2154         * configure: Regenerate.
2155
2156 2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>
2157
2158         * tree-pass.h: Added comment about not dumping passes with name
2159         starting with star in struct opt_pass.
2160         * passes.c (register_dump_files_1): Don't do dump for a pass with
2161         name starting with star.
2162         * doc/passes.texi (Pass manager): Mention pass names and special
2163         meaning of star prefix to avoid dump.
2164
2165 2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>
2166
2167         * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
2168         to MIPS64r2.
2169         * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
2170         (ISA_MIPS64R2): New macro.
2171         (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
2172         (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
2173         ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
2174         ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
2175         ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
2176         ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
2177         ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
2178         (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
2179         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
2180         Move up to keep list alphabetically sorted.
2181         (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
2182         * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
2183         processor.
2184         * doc/invoke.texi (MIPS Options): Add -mips64r2.
2185         (-march=@var{arch}): Add mips64r2.
2186
2187 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
2188
2189         * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
2190
2191 2008-07-31  Steve Ellcey  <sje@cup.hp.com>
2192
2193         * expr.c (expand_assignment): Check for complete type.
2194
2195 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
2196
2197         PR debug/36977
2198         * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
2199
2200         * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
2201         for stack alignment.
2202
2203         * function.h (rtl_data): Add stack_realign_tried.  Update comments.
2204
2205 2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
2206
2207         * config/sh/sh.c (sh_canonical_va_list_type): Remove.
2208         (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
2209
2210 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
2211
2212         PR rtl-optimization/36419
2213         * dwarf2out.c (barrier_args_size): New variable.
2214         (compute_barrier_args_size, compute_barrier_args_size_1): New
2215         functions.
2216         (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
2217         if not called yet in the current function, use barrier_args_size
2218         array to find the new args_size value.
2219         (dwarf2out_frame_debug): Free and clear barrier_args_size.
2220
2221 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
2222
2223         PR debug/36980
2224         * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
2225         rule 19.
2226
2227 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
2228
2229         PR debug/36976
2230         * dwarf2out.c (dwarf2out_args_size_adjust): New.
2231         (dwarf2out_stack_adjust): Use it.
2232         (dwarf2out_frame_debug_expr): Likewise.
2233
2234 2008-07-31  Richard Guenther  <rguenther@suse.de>
2235
2236         PR tree-optimization/36978
2237         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
2238         the generated condition.
2239
2240 2008-07-31  Richard Guenther  <rguenther@suse.de>
2241
2242         * passes.c (init_optimization_passes): Always call
2243         pass_early_warn_uninitialized.
2244         * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
2245         * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
2246         * doc/passes.texi (Warn for uninitialized variables): Adjust.
2247
2248 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
2249
2250         PR c/36970
2251         * builtins.c (maybe_emit_free_warning): New function.
2252         (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
2253         maybe_emit_free_warning for BUILT_IN_FREE.
2254
2255         PR debug/36278
2256         * dwarf2out.c (get_context_die): New function.
2257         (force_decl_die, force_type_die): Use it.
2258         (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
2259         returns NULL, force generation of DW_TAG_typedef and put that into
2260         DW_AT_import.
2261
2262         PR preprocessor/36649
2263         * c-pch.c (c_common_read_pch): Save and restore
2264         line_table->trace_includes across PCH restore.
2265
2266 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
2267
2268         PR ada/36554
2269         * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
2270
2271 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
2272
2273         PR 36974
2274         * final.c (call_from_call_insn): Handle COND_EXEC.
2275
2276 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
2277
2278         * builtins.c (std_gimplify_va_arg_expr): Replace
2279         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
2280         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
2281
2282 2008-07-30  Joey Ye  <joey.ye@intel.com>
2283             H.J. Lu  <hongjiu.lu@intel.com>
2284
2285         * builtins.c (expand_builtin_setjmp_receiver): Replace
2286         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
2287         (expand_builtin_apply_args_1): Likewise.
2288         (expand_builtin_longjmp): Need DRAP for stack alignment.
2289         (expand_builtin_apply): Likewise.
2290
2291         * caller-save.c (setup_save_areas): Call assign_stack_local_1
2292         instead of assign_stack_local to allow alignment reduction.
2293
2294         * calls.c (emit_call_1): Need DRAP for stack alignment if
2295         return pops.
2296         (expand_call): Replace virtual_incoming_args_rtx with
2297         crtl->args.internal_arg_pointer.
2298         * stmt.c (expand_nl_goto_receiver): Likewise.
2299
2300         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
2301         alignment and store to stack_alignment_estimated and
2302         max_used_stack_slot_alignment.
2303         (expand_one_var): Likewise.
2304         (expand_stack_alignment): New function.
2305         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
2306         and stack_alignment_estimated fields in rtl_data.  Call
2307         expand_stack_alignment at end.
2308
2309         * defaults.h (INCOMING_STACK_BOUNDARY): New.
2310         (MAX_STACK_ALIGNMENT): Likewise.
2311         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
2312         (SUPPORTS_STACK_ALIGNMENT): Likewise.
2313
2314         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
2315         stack alignment when generating virtual registers.
2316
2317         * function.c (assign_stack_local): Renamed to ...
2318         (assign_stack_local_1): This.  Add a parameter to indicate
2319         if it is OK to reduce alignment.
2320         (assign_stack_local): Use it.
2321         (instantiate_new_reg): Instantiate virtual incoming args rtx
2322         to vDRAP if stack realignment and DRAP is needed.
2323         (assign_parms): Collect parameter/return type alignment and
2324         contribute to stack_alignment_estimated.
2325         (locate_and_pad_parm): Likewise.
2326         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
2327         with crtl->args.internal_arg_pointer.
2328
2329         * function.h (rtl_data): Add new field drap_reg,
2330         max_used_stack_slot_alignment, stack_alignment_estimated,
2331         stack_realign_needed, need_drap, stack_realign_processed and
2332         stack_realign_finalized.
2333         (stack_realign_fp): New macro.
2334         (stack_realign_drap): Likewise.
2335
2336         * global.c (compute_regsets): Frame pointer is needed when
2337         stack is realigned.  Can eliminate frame pointer when stack is
2338         realigned and dynamic realigned argument pointer isn't used.
2339
2340         * reload1.c (update_eliminables):  Frame pointer is needed
2341         when stack is realigned.
2342         (init_elim_table): Can eliminate frame pointer when stack is
2343         realigned and dynamic realigned argument pointer isn't used.
2344
2345         * rtl.h (assign_stack_local_1): Declare new funtion.
2346
2347         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
2348         (TARGET_GET_DRAP_RTX): Likewise.
2349         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
2350         TARGET_GET_DRAP_RTX.
2351
2352         * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
2353
2354         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
2355         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
2356
2357 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
2358             H.J. Lu  <hongjiu.lu@intel.com>
2359
2360         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
2361         vdrap_reg, stack_realign and drap_reg_saved.
2362         (add_cfi): Don't allow redefining CFA when DRAP is used.
2363         (reg_save): Handle stack alignment.
2364         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
2365         alignment.  Don't generate DWARF information for (set fp sp)
2366         when DRAP is used.
2367         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
2368         to INVALID_REGNUM.
2369         (int_loc_descriptor): Move prototype forward.  Also define if
2370         DWARF2_UNWIND_INFO is true.
2371         (output_cfa_loc): Handle DW_CFA_expression.
2372         (build_cfa_aligned_loc): New.
2373         (based_loc_descr): Update assert for stack realign.  For local
2374         variables, use sp+offset when stack is aligned without drap and
2375         fp+offset when stack is aligned with drap.  For arguments, use
2376         cfa+offset when drap is used to align stack.
2377
2378 2008-07-30  Joey Ye  <joey.ye@intel.com>
2379             H.J. Lu  <hongjiu.lu@intel.com>
2380
2381         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
2382         Break long line.
2383         (ix86_gen_andsp): New.
2384         (ix86_user_incoming_stack_boundary): Likewise.
2385         (ix86_default_incoming_stack_boundary): Likewise.
2386         (ix86_incoming_stack_boundary): Likewise.
2387         (ix86_can_eliminate): Likewise.
2388         (find_drap_reg): Likewise.
2389         (ix86_update_stack_boundary): Likewise.
2390         (ix86_get_drap_rtx): Likewise.
2391         (ix86_finalize_stack_realign_flags): Likewise.
2392         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
2393         (TARGET_GET_DRAP_RTX): Likewise.
2394         (override_options): Overide option value for new options.
2395         (ix86_function_ok_for_sibcall): Remove check for
2396         force_align_arg_pointer.
2397         (ix86_handle_cconv_attribute): Likewise.
2398         (ix86_function_regparm): Likewise.
2399         (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
2400         (ix86_va_start): Replace virtual_incoming_args_rtx with
2401         crtl->args.internal_arg_pointer.
2402         (ix86_select_alt_pic_regnum): Check DRAP register.
2403         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
2404         (ix86_compute_frame_layout): Compute frame layout wrt stack
2405         realignment.
2406         (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
2407         (ix86_expand_prologue): Decide if stack realignment is needed
2408         and generate prologue code accordingly.
2409         (ix86_expand_epilogue): Generate epilogue code wrt stack
2410         realignment is really needed or not.
2411         
2412         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
2413         (ABI_STACK_BOUNDARY): Likewise.
2414         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
2415         (STACK_REALIGN_DEFAULT): Likewise.
2416         (INCOMING_STACK_BOUNDARY): Likewise.
2417         (MAX_STACK_ALIGNMENT): Likewise.
2418         (ix86_incoming_stack_boundary): Likewise.
2419         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
2420         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
2421         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
2422         (machine_function): Remove force_align_arg_pointer.
2423
2424         * config/i386/i386.md (BX_REG): New.
2425         (R13_REG): Likewise.
2426
2427         * config/i386/i386.opt (mforce_drap): New.
2428         (mincoming-stack-boundary): Likewise.
2429         (mstackrealign): Add Init(-1).
2430
2431         * config/i386/i386-protos.h (ix86_can_eliminate): New
2432
2433 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
2434
2435         * doc/extend.texi: Update force_align_arg_pointer.
2436
2437         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
2438         -mstackrealign.
2439
2440         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
2441         (INCOMING_STACK_BOUNDARY): Likewise.
2442         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
2443         (TARGET_GET_DRAP_RTX): Likewise.
2444
2445 2008-07-30  Andreas Schwab  <schwab@suse.de>
2446
2447         PR rtl-optimization/36929
2448         * dse.c (replace_inc_dec): Use emit_insn_before instead of
2449         add_insn_before and fix argument order.
2450         (replace_inc_dec_mem): Handle NULL rtx.
2451
2452 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
2453
2454         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
2455         function.
2456         (arm_compute_initial_elimination_offset): Use it.
2457         (arm_compute_save_reg_mask): Include static chain save slot when
2458         calculating alignment.
2459         (arm_get_frame_offsets): Ditto.
2460         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
2461         that we can use to decrement the stack when the stack decrement
2462         could be too big for an immediate value in a single insn.
2463         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
2464
2465 2008-07-30  Richard Guenther  <rguenther@suse.de>
2466
2467         PR tree-optimization/36967
2468         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
2469         Release defs of statements we remove.
2470
2471 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
2472
2473         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
2474         instead of NULL_RTVEC.
2475
2476 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
2477
2478         PR target/35866
2479
2480         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
2481         vector modes.
2482
2483 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
2484
2485         * final.c (call_from_call_insn): New.
2486         (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
2487
2488 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
2489
2490         * configure.ac: Substitute ADA_CFLAGS.
2491         * configure: Regenerate.
2492         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
2493         * Makefile.in: Remove mention of X_* variables.
2494         * config/pa/x-ada-hpux10: Remove.
2495         * config/pa/x-ada: Remove.
2496
2497         * doc/fragments.texi: Update.
2498
2499 2008-07-30  Olivier Hainque  <hainque@adacore.com>
2500
2501         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
2502         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
2503         __dso_handle explicitly here.
2504
2505 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2506
2507         PR 34389
2508         * c-typeck.c (build_binary_op): Encapsulate code into...
2509         * c-common.c (shorten_binary_op): ...this new function.
2510         (conversion_warning): Use the new function. Handle non-negative
2511         constant in bitwise-and.
2512         * c-common.h (shorten_binary_op): Declare.
2513
2514 2008-07-30  Olivier Hainque  <hainque@adacore.com>
2515
2516         * scan.c (make_sstring_space): Add explicit conversions of
2517         allocator's return value.
2518         * fix-header.c (recognized_function): Likewise.
2519
2520 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2521
2522         * doc/cpp.texi: Update to GFDL 1.2.
2523         * doc/gcc.texi: Do not list GPL as Invariant Section.
2524         * doc/gccint.texi: Likewise.  Update copyright years.
2525         * doc/install.texi: Update copyright years.
2526
2527 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
2528
2529         PR target/36955
2530         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
2531         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
2532
2533 2008-07-29  Jan Hubicka  <jh@suse.cz>
2534
2535         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
2536         (grokdeclarator): Likewise.
2537         * langhooks.c (lhd_warn_unused_global_decl): Use
2538         DECL_DECLARED_INLINE_P.
2539         * print-tree.c (print_node): Remove DECL_INLINE check.
2540
2541 2008-07-29  Richard Guenther  <rguenther@suse.de>
2542
2543         PR tree-optimization/36945
2544         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
2545         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
2546         Record invariant addresses un-decomposed.
2547         (copy_reference_ops_from_call): Record reference call
2548         arguments properly.  Simplify.
2549         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
2550         helper split out from ...
2551         (create_component_ref_by_pieces): ... here.  Simplify.
2552         Prepare for recursive invocation for call arguments.
2553         (create_expression_by_pieces): Adjust call to
2554         create_component_ref_by_pieces.
2555         (compute_avail): Process operand 2 of reference ops.
2556
2557 2008-07-29  Richard Guenther  <rguenther@suse.de>
2558
2559         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
2560
2561 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
2562
2563         * c-format.c (check_format_types): Revert unwanted checkin.
2564
2565 2008-07-29  Jan Hubicka  <jh@suse.cz>
2566
2567         * flags.h (flag_really_no_inline): Remove.
2568         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
2569         * toplev.c (flag_really_no_inline): Remove.
2570         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
2571         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
2572         (cgraph_decide_inlining_incrementally): Likewise.
2573         (compute_inline_parameters): Likewise.
2574         * opts.c (decode_options): Simplify.
2575         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
2576         * common.opt (finline): Initialize to 1.
2577         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
2578
2579 2008-07-29  Jan Hubicka  <jh@suse.cz>
2580
2581         * predict.c (always_optimize_for_size_p): New function.
2582         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
2583         optimize_edge_for_size_p, optimize_edge_for_speed_p,
2584         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
2585         functions.
2586         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
2587         * function.c (prepare_function_start): Set default profile.
2588         * function.h (rtl_data): Add maybe_hot_insn_p.
2589         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
2590         (construct_exit_block): Likewise.
2591         (tree_expand_cfg): Likewise.
2592         * basic-block.h
2593         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
2594         optimize_edge_for_size_p, optimize_edge_for_speed_p,
2595         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
2596         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
2597         Declare.
2598
2599 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2600
2601         PR 34985
2602         * c-decl.c (merge_decls): Merge USED flags.
2603
2604 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
2605
2606         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
2607         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
2608         next_stack, lab_false and lab_over trees.
2609
2610 2008-07-28  Richard Guenther  <rguenther@suse.de>
2611
2612         PR tree-optimization/36957
2613         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
2614         (useless_type_conversion_p): Remove.
2615         (types_compatible_p): Remove.
2616         * gimple.h (tree_ssa_useless_type_conversion): Declare.
2617         (useless_type_conversion_p): Declare.
2618         (types_compatible_p): Declare.
2619         (gimple_expr_type): Return the base type only if it is
2620         trivially convertible to the subtype.
2621
2622 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
2623
2624         * configure.ac: Use the m4_do macro to concatenate the warnings into
2625         one string in ACX_PROG_CC_WARNING_OPTS,
2626         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and ACX_PROG_CC_WARNINGS_ARE_ERRORS.
2627         * configure: Regenerate.
2628
2629 2008-07-28  Richard Guenther  <rguenther@suse.de>
2630
2631         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
2632         (insert_fake_stores): Remove.
2633         (realify_fake_stores): Likewise.
2634         (execute_pre): Remove dead code.
2635         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
2636         (find_func_aliases): Deal with it here instead.
2637         Re-enable gcc_unreachable call.
2638
2639 2008-07-28  Richard Guenther  <rguenther@suse.de>
2640
2641         Merge from gimple-tuples-branch.
2642
2643         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
2644         * gimple.def: New file.
2645         * gsstruct.def: Likewise.
2646         * gimple-iterator.c: Likewise.
2647         * gimple-pretty-print.c: Likewise.
2648         * tree-gimple.c: Removed.  Merged into ...
2649         * gimple.c: ... here.  New file.
2650         * tree-gimple.h: Removed.  Merged into ...
2651         * gimple.h: ... here.  New file.
2652
2653         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
2654         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
2655         --enable-checking=gimple flag.
2656         * config.in: Likewise.
2657         * configure: Regenerated.
2658
2659         * tree-ssa-operands.h: Tuplified.
2660         * tree-vrp.c: Likewise.
2661         * tree-loop-linear.c: Likewise.
2662         * tree-into-ssa.c: Likewise.
2663         * tree-ssa-loop-im.c: Likewise.
2664         * tree-dump.c: Likewise.
2665         * tree-complex.c: Likewise.
2666         * cgraphbuild.c: Likewise.
2667         * tree-ssa-threadupdate.c: Likewise.
2668         * tree-ssa-loop-niter.c: Likewise.
2669         * tree-pretty-print.c: Likewise.
2670         * tracer.c: Likewise.
2671         * gengtype.c: Likewise.
2672         * tree-loop-distribution.c: Likewise.
2673         * tree-ssa-loop-unswitch.c: Likewise.
2674         * cgraph.c: Likewise.
2675         * cgraph.h: Likewise.
2676         * tree-ssa-loop-manip.c: Likewise.
2677         * value-prof.c: Likewise.
2678         * tree-ssa-loop-ch.c: Likewise.
2679         * tree-tailcall.c: Likewise.
2680         * value-prof.h: Likewise.
2681         * tree.c: Likewise.
2682         * tree.h: Likewise.
2683         * tree-pass.h: Likewise.
2684         * ipa-cp.c: Likewise.
2685         * tree-scalar-evolution.c: Likewise.
2686         * tree-scalar-evolution.h: Likewise.
2687         * target.h: Likewise.
2688         * lambda-mat.c: Likewise.
2689         * tree-phinodes.c: Likewise.
2690         * diagnostic.h: Likewise.
2691         * builtins.c: Likewise.
2692         * tree-ssa-alias-warnings.c: Likewise.
2693         * cfghooks.c: Likewise.
2694         * fold-const.c: Likewise.
2695         * cfghooks.h: Likewise.
2696         * omp-low.c: Likewise.
2697         * tree-ssa-dse.c: Likewise.
2698         * ipa-reference.c: Likewise.
2699         * tree-ssa-uncprop.c: Likewise.
2700         * toplev.c: Likewise.
2701         * tree-gimple.c: Likewise.
2702         * tree-gimple.h: Likewise.
2703         * tree-chrec.c: Likewise.
2704         * tree-chrec.h: Likewise.
2705         * tree-ssa-sccvn.c: Likewise.
2706         * tree-ssa-sccvn.h: Likewise.
2707         * cgraphunit.c: Likewise.
2708         * tree-ssa-copyrename.c: Likewise.
2709         * tree-ssa-ccp.c: Likewise.
2710         * tree-ssa-loop-ivopts.c: Likewise.
2711         * tree-nomudflap.c: Likewise.
2712         * tree-call-cdce.c: Likewise.
2713         * ipa-pure-const.c: Likewise.
2714         * c-format.c: Likewise.
2715         * tree-stdarg.c: Likewise.
2716         * tree-ssa-math-opts.c: Likewise.
2717         * tree-ssa-dom.c: Likewise.
2718         * tree-nrv.c: Likewise.
2719         * tree-ssa-propagate.c: Likewise.
2720         * ipa-utils.c: Likewise.
2721         * tree-ssa-propagate.h: Likewise.
2722         * tree-ssa-alias.c: Likewise.
2723         * gimple-low.c: Likewise.
2724         * tree-ssa-sink.c: Likewise.
2725         * ipa-inline.c: Likewise.
2726         * c-semantics.c: Likewise.
2727         * dwarf2out.c: Likewise.
2728         * expr.c: Likewise.
2729         * tree-ssa-loop-ivcanon.c: Likewise.
2730         * predict.c: Likewise.
2731         * tree-ssa-loop.c: Likewise.
2732         * tree-parloops.c: Likewise.
2733         * tree-ssa-address.c: Likewise.
2734         * tree-ssa-ifcombine.c: Likewise.
2735         * matrix-reorg.c: Likewise.
2736         * c-decl.c: Likewise.
2737         * tree-eh.c: Likewise.
2738         * c-pretty-print.c: Likewise.
2739         * lambda-trans.c: Likewise.
2740         * function.c: Likewise.
2741         * langhooks.c: Likewise.
2742         * ebitmap.h: Likewise.
2743         * tree-vectorizer.c: Likewise.
2744         * function.h: Likewise.
2745         * langhooks.h: Likewise.
2746         * tree-vectorizer.h: Likewise.
2747         * ipa-type-escape.c: Likewise.
2748         * ipa-type-escape.h: Likewise.
2749         * domwalk.c: Likewise.
2750         * tree-if-conv.c: Likewise.
2751         * profile.c: Likewise.
2752         * domwalk.h: Likewise.
2753         * tree-data-ref.c: Likewise.
2754         * tree-data-ref.h: Likewise.
2755         * tree-flow-inline.h: Likewise.
2756         * tree-affine.c: Likewise.
2757         * tree-vect-analyze.c: Likewise.
2758         * c-typeck.c: Likewise.
2759         * gimplify.c: Likewise.
2760         * coretypes.h: Likewise.
2761         * tree-ssa-phiopt.c: Likewise.
2762         * calls.c: Likewise.
2763         * tree-ssa-coalesce.c: Likewise.
2764         * tree.def: Likewise.
2765         * tree-dfa.c: Likewise.
2766         * except.c: Likewise.
2767         * except.h: Likewise.
2768         * cfgexpand.c: Likewise.
2769         * tree-cfgcleanup.c: Likewise.
2770         * tree-ssa-pre.c: Likewise.
2771         * tree-ssa-live.c: Likewise.
2772         * tree-sra.c: Likewise.
2773         * tree-ssa-live.h: Likewise.
2774         * tree-predcom.c: Likewise.
2775         * lambda.h: Likewise.
2776         * tree-mudflap.c: Likewise.
2777         * ipa-prop.c: Likewise.
2778         * print-tree.c: Likewise.
2779         * tree-ssa-copy.c: Likewise.
2780         * ipa-prop.h: Likewise.
2781         * tree-ssa-forwprop.c: Likewise.
2782         * ggc-page.c: Likewise.
2783         * c-omp.c: Likewise.
2784         * tree-ssa-dce.c: Likewise.
2785         * tree-vect-patterns.c: Likewise.
2786         * tree-ssa-ter.c: Likewise.
2787         * tree-nested.c: Likewise.
2788         * tree-ssa.c: Likewise.
2789         * lambda-code.c: Likewise.
2790         * tree-ssa-loop-prefetch.c: Likewise.
2791         * tree-inline.c: Likewise.
2792         * tree-inline.h: Likewise.
2793         * tree-iterator.c: Likewise.
2794         * tree-optimize.c: Likewise.
2795         * tree-ssa-phiprop.c: Likewise.
2796         * tree-vect-transform.c: Likewise.
2797         * tree-object-size.c: Likewise.
2798         * tree-outof-ssa.c: Likewise.
2799         * cfgloop.c: Likewise.
2800         * system.h: Likewise.
2801         * tree-profile.c: Likewise.
2802         * cfgloop.h: Likewise.
2803         * c-gimplify.c: Likewise.
2804         * c-common.c: Likewise.
2805         * tree-vect-generic.c: Likewise.
2806         * tree-flow.h: Likewise.
2807         * c-common.h: Likewise.
2808         * basic-block.h: Likewise.
2809         * tree-ssa-structalias.c: Likewise.
2810         * tree-switch-conversion.c: Likewise.
2811         * tree-ssa-structalias.h: Likewise.
2812         * tree-cfg.c: Likewise.
2813         * passes.c: Likewise.
2814         * ipa-struct-reorg.c: Likewise.
2815         * ipa-struct-reorg.h: Likewise.
2816         * tree-ssa-reassoc.c: Likewise.
2817         * cfgrtl.c: Likewise.
2818         * varpool.c: Likewise.
2819         * stmt.c: Likewise.
2820         * tree-ssanames.c: Likewise.
2821         * tree-ssa-threadedge.c: Likewise.
2822         * langhooks-def.h: Likewise.
2823         * tree-ssa-operands.c: Likewise.
2824         * config/alpha/alpha.c: Likewise.
2825         * config/frv/frv.c: Likewise.
2826         * config/s390/s390.c: Likewise.
2827         * config/m32c/m32c.c: Likewise.
2828         * config/m32c/m32c-protos.h: Likewise.
2829         * config/spu/spu.c: Likewise.
2830         * config/sparc/sparc.c: Likewise.
2831         * config/i386/i386.c: Likewise.
2832         * config/sh/sh.c: Likewise.
2833         * config/xtensa/xtensa.c: Likewise.
2834         * config/stormy16/stormy16.c: Likewise.
2835         * config/ia64/ia64.c: Likewise.
2836         * config/rs6000/rs6000.c: Likewise.
2837         * config/pa/pa.c: Likewise.
2838         * config/mips/mips.c: Likewise.
2839
2840 2008-07-28  Simon Baldwin  <simonb@google.com>
2841
2842         * c-pragma.c (handle_pragma_message): New function.
2843         (init_pragma): Register handle_pragma_message.
2844         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
2845         documentation.
2846
2847 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
2848
2849         PR tree-optimization/35252
2850         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
2851         REALPART_EXPR to be considered as same load operation.
2852
2853 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
2854
2855         PR tree-optimization/36830
2856         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
2857         (expressions_equal_p): Return false if only one operand is null.
2858
2859 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
2860
2861         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
2862         version requirements.
2863
2864 2008-07-26  Olivier Hainque  <hainque@adacore.com>
2865
2866         * collect2.c (symkind): New enum.  Symbol kinds we care about.
2867         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
2868         code and head comment accordingly.
2869         (scan_prog_file): Use symkind names instead of bare integers.
2870
2871 2008-07-25  Jan Hubicka  <jh@suse.cz>
2872
2873         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
2874         DECL_INLINE.
2875         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
2876         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
2877         * dojump.c (clear_pending_stack_adjust): Likewise.
2878         * print-tree.c (print_node): Ignore DECL_INLINE.
2879         * tree-inline.c (inlinable_function_p): Likewise.
2880
2881 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
2882
2883         * doc/extend.texi (hot attribute): Document that the hot attribute
2884         turns on -O3 for some ports.
2885         (cold attribute): Document that the cold attribute turns on -Os
2886         for some ports
2887
2888         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
2889         reflect function specific option support.
2890
2891         * target.h (struct target_option_hooks): Add fields to say whether
2892         the cold attribute implies -Os and the hot attribute implies -O3.
2893
2894         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
2895         By default, do not turn on -Os for cold functions.
2896         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
2897         not turn on -O3 for hot functions.
2898
2899         * c-common.c (handle_hot_attribute): Use target hook to determine
2900         if hot functions should enable -O3.
2901         (handle_cold_attribute): Use target hook to determine if cold
2902         functions should enable -Os.
2903
2904         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
2905         (override_options): Move disable scheduling to
2906         optimization_options.
2907         (optimization_options): Disable scheduling here, not
2908         override_options.
2909         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
2910         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
2911
2912         * config/ia64/ia64.c (ia64_override_options): Move setting
2913         scheduling flags to ia64_optimization_options.
2914         (ia64_optimization_options): Disable scheduling options here, and
2915         not in ia64_override_options.
2916         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
2917         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
2918
2919 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
2920
2921         PR target/36936
2922         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
2923
2924 2008-07-25  Martin Jambor  <mjambor@suse.cz>
2925
2926         PR tree-optimization/36926
2927         * ipa-prop.c (ipa_analyze_call_uses): Call
2928         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
2929
2930 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
2931
2932         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
2933         movv2si_internal): Add mem = reg alternative.
2934
2935 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
2936
2937         PR bootstrap/36918
2938         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
2939         DEFAULT_PCC_STRUCT_RETURN to 127.
2940
2941 2008-07-24  Jan Hubicka  <jh@suse.cz>
2942
2943         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
2944         (build_cgraph_edges): Likewise.
2945         * cgraph.c (cgraph_node): Do not update assembler hash.
2946         (cgraph_remove_node): Drop non-unit-at-a-time code.
2947         * tree-pass.h (pass_O0_always_inline): Remove.
2948         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
2949         * toplev.c (process_options): Flag unit-at-a-time does not imply
2950         no section anchors.
2951         * cgraphunit.c: Update comments.
2952         (decide_is_function_needed): Drop non-unit-at-a-time mode.
2953         (cgraph_assemble_pending_functions): Remove.
2954         (cgraph_reset_node): Drop non-unit-at-a-time code.
2955         (cgraph_finalize_function): Likewise.
2956         (cgraph_analyze_function): Likewise.
2957         (cgraph_finalize_compilation_unit): Likewise.
2958         (cgraph_expand_function): Likewise.
2959         (cgraph_optimize): Likesise.
2960         (save_inline_function_body): Likewise.
2961         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
2962         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
2963         * ipa-inline.c: Update comments.
2964         (enum inlining_mode): remove INLINE_SPEED.
2965         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
2966         (cgraph_mark_inline_edge): Likewise.
2967         (try_inline): Likewise.
2968         (cgraph_decide_inlining_incrementally): Likewise.
2969         (cgraph_gate_inlining): Remove.
2970         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
2971         (cgraph_gate_early_inlining): Likewise.
2972         (gate_inline_passes): Remove.
2973         (pass_inline_parameters, pass_ipa_inline): Remove gates.
2974         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2975         pass_O0_always_inline): Remove.
2976         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
2977         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
2978         * opts.c (no_unit_at_a_time_default): Remove.
2979         (decode_options): Remove flag_unit_at_a_time reset and warning.
2980         * opts.h (no_unit_at_a_time_default): Remove.
2981         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
2982         early in GNU dialect.
2983         (merge_decls): Update comment; drop unit-at-a-time check.
2984         (finish_decl): Likewise.
2985         (grok_declaration): Remove flag_inline_trees code.
2986         (finish_functions): Return on function returning non-void on all
2987         statics.
2988         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
2989         * cfgexpand.c (expand_one_static_var): Remove.
2990         (expand_one_var): Remove expand_one_static_var call.
2991         (expand_used_vars_for_block): Remove flag_unit_a_time check.
2992         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
2993         and flag_unit_at_a-time compatibility checks.
2994         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
2995         * tree-inline.c (flag_inline_trees): Remove.
2996         (inlinable_function_p): Don't check it.
2997         (expand_call_inline): Remove non-unit-at-a-time code.
2998         * tree-inline.h (flag_inline_trees): Remove.
2999         * tree-optimize.c (execute_early_local_optimizations): Remove
3000         unit-at-a-time checks.
3001         (tree_rest_of_compilation): Likewise.
3002         * combine.c (setup_incoming_promotions): Likewise.
3003         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
3004         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
3005         * passes.c (pass_inline_parameters): Update comments; remove
3006         O0_alwaysinline pass.
3007         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
3008         (execute_one_pass): Likewise.
3009         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
3010         (ix86_function_sseregparm): Likewise.
3011         * arm.c (arm_function_in_section_p): Likewise.
3012         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
3013         * varpool.c: Update comments.
3014         (decide_is_variable_needed): Remove unit-at-a-time checks.
3015         (varpool_finalize_decl): Likewise.
3016
3017 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
3018
3019         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
3020         to 2 instead of -1.
3021         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
3022
3023 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
3024
3025         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
3026         imp symbol extension.
3027
3028         2008-07-23  Ian Lance Taylor  <iant@google.com>
3029
3030         * tree-vrp.c (infer_value_range): Ignore asm statements when
3031         looking for memory accesses for -fdelete-null-pointer-checks.
3032
3033 2008-07-24  Ben Elliston  <bje@au.ibm.com>
3034
3035         * config/spu/spu-c.c (__vector_keyword): New variable.
3036         (vector_keyword): Likewise.
3037         (spu_categorize_keyword): New function.
3038         (spu_macro_to_expand): Likewise.
3039         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
3040         compiling an ISO C dialect.
3041
3042 2008-07-24  Ben Elliston  <bje@au.ibm.com>
3043
3044         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
3045         conventional usage.
3046
3047 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3048
3049         * configure: Regenerate.
3050         * configure.ac: Require texinfo 4.7.
3051         * doc/install.texi: Document texinfo 4.7 requirement.
3052
3053 2008-07-23  Martin Jambor  <mjambor@suse.cz>
3054
3055         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
3056         rather than for DECL_SAVED_TREE.
3057         * ipa-prop.c: Include diagnostic.h.
3058         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
3059         thoroughly.
3060         (ipa_detect_param_modifications): Function rewritten from scratch.
3061         (ipa_compute_jump_functions): Changed accesses to modification flags.
3062         (ipa_free_node_params_substructures): Update flags destruction.
3063         (ipa_node_duplication_hook): Update flags duplication.
3064         (ipa_print_all_params_modified): Updated flag access.
3065         * ipa-prop.h (struct ipa_param_flags): New structure.
3066         (struct ipa_node_params): New field modification_analysis_done,
3067         modified_flags changed into param_flags.
3068         (ipa_is_ith_param_modified): Changed to use new flags.
3069         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
3070
3071         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
3072         ipa-cp.c and split into two functions.
3073         (ipa_print_node_jump_functions): New function.
3074         (compute_scalar_jump_functions): New function.
3075         (type_like_member_ptr_p): New function.
3076         (compute_pass_through_member_ptrs): New function.
3077         (fill_member_ptr_cst_jump_function): New function.
3078         (determine_cst_member_ptr): New function.
3079         (compute_cst_member_ptr_arguments): New function.
3080         (ipa_compute_jump_functions): Complete rewrite.
3081         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
3082         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
3083         (struct ipa_member_ptr_cst): New structure.
3084         (union jump_func_value): New field member_cst.
3085         * ipa-cp.c (ipcp_lat_is_insertable): New function.
3086         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
3087         jump function types.
3088         (ipcp_print_all_lattices): Slight fprintf rearrangement.
3089         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
3090         instead of ipcp_print_all_jump_functions.
3091         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
3092         only for replacable scalars.
3093
3094         * doc/invoke.texi (Optimize options): Add description of
3095         -findirect-inlining.
3096         * common.opt (flag_indirect_inlining): New flag.
3097         * opts.c (decode_options): Set flag_indirect_inlining when
3098         optimize >= 3.
3099
3100         * ipa-inline.c: Include ipa-prop.h.
3101         (inline_indirect_intraprocedural_analysis): New function.
3102         (inline_generate_summary): Allocate parameter and argument info
3103         structures, call inline_indirect_intraprocedural_analysis on each
3104         node when doing indirect inlining and deallocate indirect inlining
3105         data structures in the end.
3106         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
3107         (free_all_ipa_structures_after_iinln): New function.
3108         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
3109         done.
3110         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
3111
3112         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
3113         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
3114         of computing the frequency separately.
3115         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
3116         of computing the frequency separately.
3117         * ipa-cp.c (ipcp_print_all_structures): Replace a call to
3118         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
3119         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
3120         (ipa_get_stmt_member_ptr_load_param): New function.
3121         (ipa_is_ssa_with_stmt_def): New function.
3122         (ipa_note_param_call): New function.
3123         (ipa_analyze_call_uses): New function.
3124         (ipa_analyze_stmt_uses): New function.
3125         (ipa_analyze_params_uses): New function.
3126         (ipa_free_node_params_substructures): Also free the param_calls linked
3127         list.
3128         (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
3129         (ipa_print_node_param_flags): New function.
3130         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
3131         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
3132         * ipa-prop.h (struct ipa_param_flags): New field called.
3133         (struct ipa_param_call_note): New structure.
3134         (struct ipa_node_params): New fields param_calls and
3135         uses_analysis_done.
3136         (ipa_is_ith_param_called): New function.
3137         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
3138         ipa_analyze_params_uses and dump parameter flags.
3139
3140         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
3141         ipa_propagate_indirect_call_infos if performing indirect inlining,
3142         pass a new parameter new_edges to it.
3143         (add_new_edges_to_heap): New fucntion.
3144         (cgraph_decide_inlining_of_small_functions): New vector
3145         new_indirect_edges for newly found indirect edges , call
3146         ipa_propagate_indirect_call_infos after inlining.
3147         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
3148         inlining if performing indirect inlining.  Call
3149         free_all_ipa_structures_after_iinln when doing so too.
3150         (inline_generate_summary): Do not call
3151         free_all_ipa_structures_after_iinln here.
3152         * ipa-prop.c (update_jump_functions_after_inlining): New function.
3153         (print_edge_addition_message): New function.
3154         (update_call_notes_after_inlining): New function.
3155         (propagate_info_to_inlined_callees): New function.
3156         (ipa_propagate_indirect_call_infos): New function.
3157         * ipa-prop.h: Include cgraph.h
3158         (struct ipa_param_call_note): Fields reordered, new field processed.
3159         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
3160         flag indirect_call.
3161         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
3162         rediscovered call statements.
3163         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
3164         (dump_cgraph_node): Dump also the indirect_call flag.
3165         (cgraph_clone_edge): Copy also the indirect_call flag.
3166         * tree-inline.c (copy_bb): Do not check for fndecls from call
3167         expressions, check for edge availability when moving clones.
3168         (get_indirect_callee_fndecl): New function.
3169         (expand_call_inline): If callee declaration is not apprent from
3170         the statement, try calling get_indirect_callee_fndecl.  Do not
3171         issue warnings or call sorry when not inlinings an indirect edge.
3172         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
3173
3174         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
3175         bit more frandly to matching.
3176         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
3177         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
3178         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
3179
3180 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
3181
3182         PR 36907
3183         * opth-gen.awk: Suppress function specific features when building
3184         target libraries.
3185         * optc-gen.awk: Ditto.
3186
3187 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3188
3189         PR 35058
3190         * diagnostic.c (pedwarn): Add opt parameter.
3191         (pedwarn0): New.
3192         * c-tree.h (pedwarn_init): Add opt parameter.
3193         (pedwarn_c90): Likewise.
3194         (pedwarn_c99): Likewise.
3195         * c-errors.c (pedwarn_c99): Likewise.
3196         (pedwarn_c90): Likewise.
3197         * toplev.h (pedwarn): Update declaration.
3198         (pedwarn0): Declare.
3199         * c-lex.c: All calls to pedwarn changed.
3200         * builtins.c: All calls to pedwarn changed.
3201         * toplev.c: All calls to pedwarn changed.
3202         * c-decl.c: All calls to pedwarn changed.
3203         * c-typeck.c: All calls to pedwarn changed.
3204         * c-common.c: All calls to pedwarn changed.
3205         * c-parser.c: All calls to pedwarn changed.
3206
3207 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
3208             Karthik Kumar  <karthikkumar@gmail.com>
3209
3210         * attribs.c (file scope): Include c-common.h.
3211         (decl_attributes): Add support for #pragma GCC optimize and
3212         #pragma GCC option.
3213
3214         * targhooks.c (default_can_inline_p): New function that is the
3215         default for the TARGET_CAN_INLINE_P target hook.
3216
3217         * targhooks.h (default_can_inline_p): Add declaration.
3218
3219         * tree.c (cl_optimization_node): New static tree for building
3220         OPTIMIZATION_NODE tree.
3221         (cl_target_option_node): New static tree for building
3222         TARGET_OPTION_NODE tree.
3223         (cl_option_hash_table): New hash table for hashing
3224         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
3225         (cl_option_hash_hash): New function to provide the hash value for
3226         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
3227         (cl_option_hash_eq): New function to provide an equality test for
3228         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
3229         (tree_code_size): Add support for OPTIMIZATION_NODE and
3230         TARGET_OPTION_NODE trees.
3231         (tree_code_structure): Add support for OPTIMIZATION_NODE and
3232         TARGET_OPTION_NODE trees.
3233         (build_optimization_node): Build a tree that has all of the
3234         current optimization options.
3235         (build_target_option_node): Build a tree that has the target
3236         options that might be changed on a per function basis.
3237
3238         * tree.h (file scope): Include options.h.
3239         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
3240         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
3241         (TREE_OPTIMIZATION): Ditto.
3242         (TREE_TARGET_SPECIFIC): Ditto.
3243         (struct tree_function_decl): Add fields for remembering the
3244         current optimization options and target specific options.
3245         (struct tree_optimization_option): New tree variant that remembers
3246         the optimization options.
3247         (struct tree_target_option): New tree variant that remembers the
3248         target specific flags that might change for compiling a particular
3249         function.
3250         (union tree_node): Include tree_optimization_option and
3251         tree_target_option fields.
3252         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
3253         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
3254         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
3255         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
3256         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
3257         optimization and target options.
3258         (optimization_default_node): New macro to refer to global_trees
3259         field.
3260         (optimization_current_node): Ditto.
3261         (optimization_cold_node): Ditto.
3262         (optimization_hot_node): Ditto.
3263         (target_option_default_node): Ditto.
3264         (target_option_current_node): Ditto.
3265         (current_option_pragma): Ditto.
3266         (current_optimize_pragma): Ditto.
3267
3268         * target.h (struct gcc_target): Add valid_option_attribute_p,
3269         target_option_save, target_option_restore, target_option_print,
3270         target_option_pragma_parse, and can_inline_p hooks.
3271
3272         * toplev.h (parse_optimize_options): Add declaration.
3273         (fast_math_flags_struct_set_p): Ditto.
3274
3275         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
3276         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
3277         optimize is used.
3278
3279         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
3280         tree_can_inline_p hook to see if one function can inline another.
3281         (cgraph_decide_inlining): Ditto.
3282         (cgraph_decide_inlining_incrementally): Ditto.
3283
3284         * opts.c (decode_options): Add support for running multiple times
3285         to allow functions with different target or optimization options
3286         than was specified on the command line.
3287         (fast_math_flags_struct_set_p): New function that is similar to
3288         fast_math_flags_set_p, except it uses the values in the
3289         cl_optimization structure instead of global variables.
3290
3291         * optc-gen.awk: Add support for TargetSave to allow a back end to
3292         declare new fields that need to be saved when using function
3293         specific options.  Include flags.h and target.h in the options.c
3294         source.  Add support for Save to indicate which options can be set
3295         for individual functions.  Generate cl_optimize_save,
3296         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
3297         cl_target_option_restore, cl_target_option_print functions to
3298         allow functions to use different optimization or target options.
3299
3300         * opt-functions.awk (var_type_struct): Return the type used for
3301         storing the field in a structure.
3302
3303         * opth-gen.awk: Add support for TargetSave to allow a back end to
3304         declare new fields that need to be saved when using function
3305         specific options.  Add support for Save to indicate which options
3306         can be set for individual functions.  Only generate one extern for
3307         Mask fields.  Generate cl_optimization and cl_target_option
3308         structures to remember optimization and target options.
3309
3310         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
3311         collecting new tree nodes.
3312         (TS_TARGET_OPTION): Ditto.
3313
3314         * c-decl.c (merge_decls): Merge function specific target and
3315         optimization options.
3316
3317         * function.c (invoke_set_current_function_hook): If the function
3318         uses different optimization options, change the global variables
3319         to reflect this.
3320
3321         * coretypes.h (struct cl_optimization): Add forward reference.
3322         (struct cl_target_option): Ditto.
3323
3324         * c-pragma.c (option_stack): New static vector to remember the
3325         current #pragma GCC option stack.
3326         (handle_pragma_option): New function to support #pragma GCC option
3327         to change target options.
3328         (optimize_stack): New static vector to remember the current
3329         #pragma GCC optimize stack.
3330         (handle_pragma_optimize): New function to support #pragma GCC
3331         optimize to change optimization options.
3332         (init_pragma): Add support for #pragma GCC optimize and #pragma
3333         GCC option.
3334
3335         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
3336         optimization options.
3337         (TARGET_OPTION_NODE): New tree code for remembering certain target
3338         options.
3339
3340         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
3341         TARGET_OPTION_NODE trees.
3342
3343         * common.opt (-O): Add Optimization flag.
3344         (-Os): Ditto.
3345         (-fmath-errno): Ditto.
3346         (-falign-functions): Add UInteger flag to make sure flag gets full
3347         int in cl_optimization structure.
3348         (-falign-jumps): Ditto.
3349         (-falign-labels): Ditto.
3350         (-falign-loops): Ditto.
3351         (-fsched-stalled-insns): Ditto.
3352         (-fsched-stalled-insns-dep): Ditto.
3353
3354         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
3355         definition.
3356         (TARGET_OPTION_SAVE): Ditto.
3357         (TARGET_OPTION_RESTORE): Ditto.
3358         (TARGET_OPTION_PRINT): Ditto.
3359         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
3360         (TARGET_CAN_INLINE_P): Ditto.
3361         (TARGET_INITIALIZER): Add new hooks.
3362
3363         * tree-inline.c (tree_can_inline_p): New function to determine
3364         whether one function can inline another.  Check if the functions
3365         use compatible optimization options, and also call the backend
3366         can_inline_p hook.
3367
3368         * tree-inline.h (tree_can_inline_p): Add declaration.
3369
3370         * c-common.c (c_common_attribute): Add support for option and
3371         optimize attributes.
3372         (handle_option_attribute): Add support for the option attribute to
3373         allow the user to specify different target options for compiling a
3374         specific function.
3375         (handle_optimize_attribute): Add support for the optimize
3376         attribute to allow the user to specify different optimization
3377         options for compiling a specific function.
3378         (handle_hot_attribute): Turn on -O3 optimization for this one
3379         function if it isn't the default optimization level.
3380         (handle_cold_attribute): Turn on -Os optimization for this one
3381         function if it insn't the default optimization.
3382         (const_char_p): New const char * typedef.
3383         (optimize_args): New static vector to remember the optimization
3384         arguments.
3385         (parse_optimize_options): New function to set up the optimization
3386         arguments from either the optimize attribute or #pragma GCC optimize.
3387
3388         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
3389         (builtin_define_std): Ditto.
3390
3391         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
3392         Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
3393         (x86_64-*-*): Ditto.
3394
3395         * Makefile.in (TREE_H): Add options.h.
3396         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
3397
3398         * doc/extend.texi (option attribute): Document new attribute.
3399         (optimize attribute): Ditto.
3400         (hot attribute): Document hot attribute sets -O3.
3401         (cold attribute): Document cold attribute sets -Os.
3402         (#pragma GCC option): Document new pragma.
3403         (#pragma GCC optimize): Ditto.
3404
3405         * doc/options.texi (TargetSave): Document TargetSave syntax.
3406         (UInteger): Document UInteger must be used for certain flags.
3407         (Save): Document Save option to create target specific options
3408         that can be saved/restored on a function specific context.
3409
3410         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
3411         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
3412
3413         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
3414         (TARGET_OPTION_SAVE): Ditto.
3415         (TARGET_OPTION_RESTORE): Ditto.
3416         (TARGET_OPTION_PRINT): Ditto.
3417         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
3418         (TARGET_CAN_INLINE_P): Ditto.
3419
3420         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
3421         -mfpmath=sse,387.
3422         (-mfpmath=both): Ditto.
3423
3424 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
3425             Karthik Kumar  <karthikkumar@gmail.com>
3426
3427         * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
3428         (TARGET_POPCNT): Ditto.
3429         (TARGET_SAHF): Ditto.
3430         (TARGET_AES): Ditto.
3431         (TARGET_PCLMUL): Ditto.
3432         (TARGET_CMPXCHG16B): Ditto.
3433         (TARGET_RECIP): Move switch into target_flags.
3434         (TARGET_FUSED_MADD): Ditto.
3435         (ix86_arch_features): Make an unsigned char type.
3436         (ix86_tune_features): Ditto.
3437         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
3438         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
3439         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
3440
3441         * config/i386/i386.opt (arch): New TargetSave field to define
3442         fields that need to be saved for function specific option support.
3443         (tune): Ditto.
3444         (fpmath): Ditto.
3445         (branch_cost): Ditto.
3446         (ix86_isa_flags_explicit): Ditto.
3447         (tune_defaulted): Ditto.
3448         (arch_specified): Ditto.
3449         (-m128-long-double): Add Save flag to save option for target
3450         specific option support.
3451         (-m80387): Ditto.
3452         (-maccumulate-outgoing-args): Ditto.
3453         (-malign-double): Ditto.
3454         (-malign-stringops): Ditto.
3455         (-mfancy-math-387): Ditto.
3456         (-mhard-float): Ditto.
3457         (-mieee-fp): Ditto.
3458         (-minline-all-stringops): Ditto.
3459         (-minline-stringops-dynamically): Ditto.
3460         (-mms-bitfields): Ditto.
3461         (-mno-align-stringops): Ditto.
3462         (-mno-fancy-math-387): Ditto.
3463         (-mno-push-args): Ditto.
3464         (-mno-red-zone): Ditto.
3465         (-mpush-args): Ditto.
3466         (-mred-zone): Ditto.
3467         (-mrtd): Ditto.
3468         (-msseregparm): Ditto.
3469         (-mstack-arg-probe): Ditto.
3470         (-m32): Ditto.
3471         (-m64): Ditto.
3472         (-mmmx): Ditto.
3473         (-m3dnow): Ditto.
3474         (-m3dnowa): Ditto.
3475         (-msse): Ditto.
3476         (-msse2): Ditto.
3477         (-msse3): Ditto.
3478         (-msse4.1): Ditto.
3479         (-msse4.2): Ditto.
3480         (-msse4): Ditto.
3481         (-mno-sse4): Ditto.
3482         (-msse4a): Ditto.
3483         (-msse5): Ditto.
3484         (-mrecip): Move flag into target_flags.
3485         (-mcld): Ditto.
3486         (-mno-fused-madd): Ditto.
3487         (-mfused-madd): Ditto.
3488         (-mabm): Move flag into ix86_isa_flags.
3489         (-mcx16): Ditto.
3490         (-mpopcnt): Ditto.
3491         (-msahf): Ditto.
3492         (-maes): Ditto.
3493         (-mpclmul): Ditto.
3494
3495         * config/i386/i386-c.c: New file for #pragma support.
3496         (ix86_target_macros_internal): New function to #define or #undef
3497         target macros based when the user uses the #pragma GCC option to
3498         change target options.
3499         (ix86_pragma_option_parse): New function to add #pragma GCC option
3500         support.
3501         (ix86_target_macros): Move defining the target macros here from
3502         TARGET_CPU_CPP_BUILTINS in i386.h.
3503         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
3504         defined, initialize any subtarget #pragmas.
3505
3506         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
3507         REGISTER_TARGET_PRAGMAS.
3508
3509         * config/i386/t-i386: New file for x86 dependencies.
3510         (i386.o): Make dependencies mirror the include files used.
3511         (i386-c.o): New file, add dependencies.
3512
3513         * config/i386/i386-protos.h (override_options): Add bool argument.
3514         (ix86_valid_option_attribute_tree): Add declaration.
3515         (ix86_target_macros): Ditto.
3516         (ix86_register_macros): Ditto.
3517
3518         * config/i386/i386.c (ix86_tune_features): Move initialization of
3519         the target masks to initial_ix86_tune_features to allow functions
3520         to have different target options.  Make type unsigned char,
3521         instead of unsigned int.
3522         (initial_ix86_tune_features): New static vector to hold processor
3523         masks for the tune variables.
3524         (ix86_arch_features): Move initialization of the target masks to
3525         initial_ix86_arch_features to allow functions to have different
3526         target options.  Make type unsigned char, instead of unsigned int.
3527         (initial_ix86_arch_features): New static vector to hold processor
3528         masks for the arch variables.
3529         (enum ix86_function_specific_strings): New enum to describe the
3530         string options used for attribute((option(...))).
3531         (ix86_target_string): New function to return a string that
3532         describes the target options.
3533         (ix86_debug_options): New function to print the current options in
3534         the debugger.
3535         (ix86_function_specific_save): New function hook to save the
3536         function specific global variables in the cl_target_option structure.
3537         (ix86_function_specific_restore): New function hook to restore the
3538         function specific variables from the cl_target_option structure to
3539         the global variables.
3540         (ix86_function_specific_print): New function hook to print the
3541         target specific options in the cl_target_option structure.
3542         (ix86_valid_option_attribute_p): New function hook to validate
3543         attribute((option(...))) arguments.
3544         (ix86_valid_option_attribute_tree): New function that is common
3545         code between attribute((option(...))) and #pragma GCC option
3546         support that parses the options and returns a tree holding the options.
3547         (ix86_valid_option_attribute_inner_p): New helper function for
3548         ix86_valid_option_attribute_tree.
3549         (ix86_can_inline_p): New function hook to decide if one function
3550         can inline another on a target specific basis.
3551         (ix86_set_current_function); New function hook to switch target
3552         options if the user used attribute((option(...))) or #pragma GCC
3553         option.
3554         (ix86_tune_defaulted): Move to static file scope from
3555         override_options.
3556         (ix86_arch_specified): Ditto.
3557         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
3558         ix86_isa_flags.
3559         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
3560         (OPTION_MASK_ISA_ABM_SET): Ditto.
3561         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
3562         (OPTION_MASK_ISA_CX16_SET): Ditto.
3563         (OPTION_MASK_ISA_SAHF_SET): Ditto.
3564         (OPTION_MASK_ISA_AES_UNSET): Ditto.
3565         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
3566         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
3567         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
3568         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
3569         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
3570         (struct ptt): Move to static file scope from override_options.
3571         (processor_target_table): Ditto.
3572         (cpu_names): Ditto.
3573         (ix86_handle_option): Add support for options that are now isa options.
3574         (override_options): Add support for declaring functions that
3575         support different target options than were specified on the
3576         command line.  Move struct ptt, processor_target_table, cpu_names,
3577         ix86_tune_defaulted, ix86_arch_specified to static file scope.
3578         Add bool argument.  Fix up error messages so the appropriate error
3579         is given for either command line or attribute.
3580         (ix86_previous_fndecl): New static to remember previous function
3581         declaration to see if we need to change target options.
3582         (ix86_builtins_isa): New array to record the ISA of each builtin
3583         function.
3584         (def_builtin): Always create the builtin function, even if the
3585         current ISA doesn't support it.
3586         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
3587         tests for those builtins.
3588         (ix86_init_builtins): Remove TARGET_MMX test for calling
3589         ix86_init_mmx_sse_builtins.
3590         (ix86_expand_builtin): If the current ISA doesn't support a given
3591         builtin, signal an error.
3592         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
3593         (TARGET_SET_CURRENT_FUNCTION): Ditto.
3594         (TARGET_OPTION_SAVE): Ditto.
3595         (TARGET_OPTION_RESTORE): Ditto.
3596         (TARGET_OPTION_PRINT): Ditto.
3597         (TARGET_CAN_INLINE_P): Ditto.
3598
3599 2008-07-22  Rafael Avila de Espindola  <espindola@google.com>
3600
3601         * c-typeck.c (build_external_ref): Don't call assemble_external.
3602         * final.c (output_operand): Call assemble_external.
3603
3604 2008-07-21  DJ Delorie  <dj@redhat.com>
3605
3606         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
3607         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
3608
3609 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3610
3611         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
3612         original insn and splitter contents into ...
3613         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
3614         flag_unsafe_math_optimizations.  Add dummy scratch register.
3615         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
3616         !flag_unsafe_math_optimizations.  Returns number with next
3617         highest magnitude if this is still less or equal to the true
3618         quotient in magnitude.
3619
3620 2008-07-21  Rafael Avila de Espindola  <espindola@google.com>
3621
3622         * Makefile.in: Replace toplev.h with TOPLEV_H.
3623         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
3624         * c-lex.c (fe_file_change): Don't set in_system_header.
3625         * c-parser.c (c_token): Remove in_system_header.
3626         (c_lex_one_token): Don't set in_system_header.
3627         (c_parser_set_source_position_from_token): Don't set in_system_header.
3628         * diagnostic.c (diagnostic_report_diagnostic): Use location from
3629         diagnostic_info.
3630         (warning_at): New.
3631         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
3632         * flags.h (in_system_header): Remove.
3633         * function.c (saved_in_system_header): Remove.
3634         (push_cfun): Don't set in_system_header.
3635         (pop_cfun): Don't set in_system_header.
3636         (push_struct_function): Don't set in_system_header.
3637         * input.h (expanded_location): Add sysp.
3638         (in_system_header_at): New.
3639         (in_system_header): New.
3640         * toplev.c (in_system_header): Remove.
3641         * toplev.h: Include input.h
3642         (warning_at): New.
3643         * tree-cfg.c (execute_warn_function_return): Call warning_at.
3644         * tree-ssa.c (warn_uninit): Call warning_at.
3645         (warn_uninitialized_var): Update calls to warn_uninit.
3646         (warn_uninitialized_phi): Update calls to warn_uninit.
3647         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
3648         (expand_location): Initialize xloc.sysp.
3649         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
3650         (tree_decl_with_vis): Remove in_system_header_flag.
3651
3652 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
3653
3654         PR target/36822
3655         * recog.c (asm_operand_ok): Change the order of the extra
3656         memory constraint checks.
3657
3658 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3659
3660         PR tree-opt/36879
3661         * tree-switch-conversion.c (build_one_array): Call
3662         varpool_mark_needed_node and varpool_finalize_decl
3663         instead of assemble_variable.
3664
3665 2008-07-19  Jan Hubicka  <jh@suse.cz>
3666
3667         * cgraph.c (cgraph_add_new_function): Do early local passes.
3668         * tree-nrv.c (gate_pass_return_slot): New gate.
3669         (pass_nrv): Add the gate.
3670         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
3671         functions.
3672         (coalesce_ssa_name): Coalesce SSA names.
3673         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
3674         not optimizing so unused user vars remains visible.
3675         * common.opt (flag_tree_ter): Always enable by default.
3676         * tree-ssa-ter.c: Include flags.h
3677         (is_replaceable_p): Check that locations match; when aliasing is missing
3678         be conservative about loads.
3679         * tree-optimize.c (gate_init_datastructures): Remove.
3680         (pass_init_datastructures): New.
3681         * passes.c: Reorder passes so we always go into SSA.
3682
3683 2008-07-19  Jan Hubicka  <jh@suse.cz>
3684
3685         * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
3686         * doc/invoke.texi (--combine): Likewise.
3687         (-finline-functions-called-once): Update levels when enabled.
3688         (-funit-at-a-time): Document new behaviour.
3689         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
3690         -fno-section-anchors when disabled explicitly.
3691         (inline params): They are not ignored now.
3692         (precompiled headers): Remove unit-at-a-time as being incompatible.
3693         * opts.c (decode_options): Handle unit-at-a-time as alias;
3694         imply -fno-section-anchors when toplevel reorder is disabled
3695         explicitly.
3696         * common.opt (ftoplevel-reorder): Set default value to 2.
3697         (funit-at-a-time): Set default value to 1.
3698         * config/rs6000/rs6000.c (optimization_options): Set section anchors
3699         to 2.
3700
3701 2008-07-19  Jan Hubicka  <jh@suse.cz>
3702
3703         * builtins.c (expand_builtin_int_roundingfn,
3704         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
3705         it is not useful.
3706
3707 2008-07-19  Richard Guenther  <rguenther@suse.de>
3708
3709         PR bootstrap/36864
3710         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
3711         * tree-ssa-sccvn.c (get_constant_value_id): New function.
3712         * tree-ssa-pre.c (get_expr_value_id): For newly created
3713         constant value-ids make sure to add the expression to its
3714         expression-set.
3715
3716 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
3717
3718         PR middle-end/36877
3719         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
3720         return value of the builtin is ignored.
3721
3722 2008-07-19  Olivier Hainque  <hainque@adacore.com>
3723
3724         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
3725         bits, a C conformant malloc implementation has to provide.
3726         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
3727
3728 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
3729
3730         PR target/36780
3731         PR target/36827
3732         * reload.c (find_reloads_subreg_address): Only reload address if
3733         reloaded == 0, not for reloaded != 1.
3734
3735         Revert:
3736         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
3737         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
3738         (m32c_legitimate_address_p): Handle "++rii" addresses created by
3739         m32c_legitimize_reload_address.
3740
3741         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3742         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
3743         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
3744
3745 2008-07-19  Olivier Hainque  <hainque@adacore.com>
3746
3747         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
3748         argument, saying whether nested array are to be collapsed
3749         into a single array type DIE with multiple subscripts.
3750         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
3751         issues, centralize the nested array types collapsing control and
3752         disable the transformation for Ada.
3753
3754 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
3755
3756         PR target/36786
3757         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
3758         x86_64_shift_adj.
3759         (x86_64_shift_adj_2): New expander.
3760         (x86_64_shift_adj_3): Ditto.
3761         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
3762         to split TImode operands.
3763         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
3764         (ix86_split_lshr): Ditto.
3765
3766 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
3767
3768         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
3769         and __CHAR32_TYPE__.
3770         * c-typeck.c (digest_init): Support char16_t and char32_t.
3771         (set_nonincremental_init_from_string): Idem.
3772
3773 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
3774
3775         PR middle-end/36859
3776         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
3777         PREFERRED_STACK_BOUNDARY.
3778         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
3779
3780 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
3781
3782         PR middle-end/36858
3783         * function.c (locate_and_pad_parm): Cap boundary earlier.
3784
3785 2008-07-17  Julian Brown  <julian@codesourcery.com>
3786
3787         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
3788         no-op for targets which don't use DLLs.
3789
3790 2008-07-17  Martin Jambor  <mjambor@suse.cz>
3791
3792         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
3793         that nodes are relevant by examining the node->analyzed flag.
3794         (ipcp_init_stage): Check which nodes are relevant, assert that the
3795         relevant ones are also required.
3796         (ipcp_propagate_stage): Check on the side arrays are properly
3797         allocated.
3798         (ipcp_print_all_jump_functions): Make sure not to touch any node
3799         that is not analyzed or an edge that does not have a corresponding
3800         entry in the on-the-side vectors.
3801         (ipcp_function_scale_print): Likewise.
3802         (ipcp_update_callgraph): Check that the node is relevant.
3803         (ipcp_insert_stage): Check that the node is relevant.  Check there is
3804         an info for every node and edge.
3805         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
3806         (ipa_print_all_tree_maps): Likewise and a new variable info.
3807         (ipa_print_all_params_modified): Likewise.
3808         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
3809
3810 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
3811
3812         PR target/25343
3813         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
3814
3815 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
3816
3817         PR rtl-optimization/36753
3818         * fwprop.c (use_killed_between): Don't shortcut
3819         single-definition global registers.
3820
3821 2008-07-16  Jan Hubicka  <jh@suse.cz>
3822
3823         * cgraph.h (varpool_empty_needed_queue): Declare.
3824         * cgraphunit.c (output_in_order): Mark all variables as needed;
3825         empty the queue.
3826         * varpool.c (varpool_assemble_node): Update debug queue.
3827         (varpool_assemble_pending_decls): Don't do it here.
3828         (varpool_empty_needed_queue):  New function.
3829
3830 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3831
3832         * recog.c (peephole2_optimize): Fix formatting.
3833
3834 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3835
3836         * c-pch.c (get_ident): Avoid C++ keywords.
3837         * combine-stack-adj.c (single_set_for_csa): Likewise.
3838         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
3839         output_asm_insn): Likewise.
3840         * reload.c (push_secondary_reload, find_reusable_reload,
3841         push_reload, combine_reloads, find_reloads,
3842         debug_reload_to_stream): Likewise.
3843         * reload.h (struct reload): Likewise.
3844         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
3845         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
3846         emit_output_reload_insns): Likewise.
3847         * targhooks.c (default_secondary_reload): Likewise.
3848         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
3849
3850 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3851
3852         * recog.c (validate_change_1, validate_change,
3853         validate_unshare_change, validate_replace_rtx_1, struct
3854         funny_match, constrain_operands, peephole2_optimize): Avoid C++
3855         keywords.
3856         * reload.c (push_secondary_reload, secondary_reload_class,
3857         scratch_reload_class, find_valid_class, find_reusable_reload,
3858         push_reload, find_dummy_reload, find_reloads_address_1,
3859         find_reloads_address_part, find_equiv_reg): Likewise.
3860         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
3861         choose_reload_regs): Likewise.
3862         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
3863         Likewise.
3864         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
3865         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
3866         * sched-rgn.c (concat_INSN_LIST): Likewise.
3867         * stor-layout.c (mode_for_size, mode_for_size_tree,
3868         smallest_mode_for_size): Likewise.
3869
3870 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3871
3872         * cfg.c (dump_reg_info): Avoid C++ keywords.
3873         * dwarf2asm.c (dw2_force_const_mem,
3874         dw2_asm_output_encoded_addr_rtx): Likewise.
3875         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
3876         * expmed.c (expand_shift): Likewise.
3877         * global.c (find_reg): Likewise.
3878         * graph.c (draw_edge): Likewise.
3879         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
3880         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
3881         widen_clz, widen_bswap, expand_parity, expand_unop,
3882         emit_cmp_and_jump_insn_1): Likewise.
3883         * postreload.c (reload_cse_simplify_operands): Likewise.
3884         * ra.h (add_neighbor): Likewise.
3885         * reg-stack.c (remove_regno_note, change_stack): Likewise.
3886         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
3887         record_reg_classes, copy_cost, record_address_regs,
3888         invalid_mode_change_p): Likewise.
3889         * regrename.c (regrename_optimize, scan_rtx_reg,
3890         dump_def_use_chain, find_oldest_value_reg,
3891         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
3892
3893 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
3894
3895         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
3896         MASK_POWERPC64 for power4 in previous commit.
3897
3898 2008-07-16  Olivier Hainque  <hainque@adacore.com>
3899
3900         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
3901         instead of bare conversion to cast const-ness away.
3902
3903 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
3904
3905         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
3906         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
3907         * config/xtensa/xtensa.c (xtensa_function_value): New function.
3908         (TARGET_FUNCTION_VALUE): Define.
3909
3910 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
3911
3912         * config/rs6000/rs6000.c (processor_target_table): Add
3913         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
3914
3915 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
3916
3917         PR target/36827
3918         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
3919         (m32c_legitimate_address_p): Handle "++rii" addresses created by
3920         m32c_legitimize_reload_address.
3921
3922 2007-07-16  Rafael Avila de Espindola  <espindola@google.com>
3923
3924         * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
3925         DECL_IN_SYSTEM_HEADER in sync.
3926
3927 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
3928
3929         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
3930         * tree-ssa-pre.c (pre_expr_eq): Ditto
3931         (get_constant_for_value_id): Take a type as an argument.
3932         (fully_constant_expression): Pass in type.
3933         (find_or_generate_expression): Short circuit constant case.
3934         (create_expression_by_pieces): Remove special casing of
3935         pointer_plus.
3936         (do_regular_insertion): Short circuit constant case.
3937         (do_partial_partial_insertion): Ditto.
3938
3939 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3940
3941         PR target/36782
3942         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
3943
3944 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
3945
3946         * config/xtensa/libgcc-xtensa.ver: New file.
3947         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
3948
3949 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3950
3951         * df-problems.c (df_set_note): Avoid C++ keywords.
3952         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
3953         * dse.c (record_store, remove_useless_values): Likewise.
3954         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
3955         gen_reg_rtx_offset, operand_subword, change_address_1,
3956         change_address, adjust_address_1, offset_address,
3957         widen_memory_access, emit_copy_of_insn_after): Likewise.
3958         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
3959         * fwprop.c (should_replace_address, propagate_rtx_1,
3960         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
3961         Likewise.
3962         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
3963         gcse_emit_move_after, update_ld_motion_stores): Likewise.
3964         * lcm.c (compute_insert_delete, pre_edge_lcm,
3965         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
3966         * lower-subreg.c (resolve_reg_notes): Likewise.
3967         * mode-switching.c (optimize_mode_switching): Likewise.
3968
3969 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3970
3971         * bt-load.c (add_btr_def, migrate_btr_def,
3972         branch_target_load_optimize): Avoid C++ keywords.
3973         * caller-save.c (insert_restore, insert_save, insert_one_insn):
3974         Likewise.
3975         * combine.c (subst, simplify_set, make_extraction,
3976         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
3977         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
3978         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
3979
3980 2008-07-15  Richard Guenther  <rguenther@suse.de>
3981
3982         PR middle-end/36369
3983         * c-common.c (strict_aliasing_warning): Do not warn for
3984         TYPE_REF_CAN_ALIAS_ALL pointers.
3985         (c_common_get_alias_set): may_alias types are not special.
3986         * tree.c (build_pointer_type_for_mode): Look up the may_alias
3987         attribute and set can_ref_all accordingly.
3988         (build_reference_type_for_mode): Likewise.
3989         * doc/extend.texi (may_alias): Clarify.
3990
3991 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3992
3993         PR target/36780
3994         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
3995         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
3996
3997 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3998
3999         PR target/31568
4000         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
4001         gcc_assert, instead call output_operand_lossage.
4002
4003 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
4004
4005         * builtins.c (std_canonical_va_list): Treat structure based
4006         va_list types.
4007
4008 2008-07-15  Ben Elliston  <bje@au.ibm.com>
4009
4010         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
4011
4012 2007-07-14  Rafael Avila de Espindola  <espindola@google.com>
4013
4014         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
4015         is set.
4016
4017 2008-07-14  Jan Hubicka  <jh@suse.cz>
4018
4019         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
4020         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
4021         fix predicates and constraints.
4022         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
4023         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
4024
4025 2008-07-14  Doug Kwan  <dougkwan@google.com>
4026
4027         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
4028         additional option file arm/eabi.opt.
4029         * config/arm/eabi.h (File): New configuration file for EABI targets.
4030         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
4031         SUBSUBTARGET_EXTRA_SPECS.
4032         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
4033         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
4034         from STARTFILE_SPEC so that it can be referenced in an override.
4035         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
4036         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
4037         can be referenced in an override.
4038         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
4039         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
4040         so that it can be referenced in an override.
4041         (LINK_SPEC): Use BPABI_LINK_SPEC.
4042         * config/arm/eabi.opt (File): New.
4043
4044 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4045
4046         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
4047         (FIXED_VALUE_H): New variable.
4048         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
4049         input.h, fixed-value.h.
4050         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
4051         (BASIC_BLOCK_H): Use $(BITMAP_H).
4052         (FUNCTION_H): Add varray.h.
4053         (IPA_REFERENCE_H): Use $(BITMAP_H).
4054         (CGRAPH_H): Add $(BASIC_BLOCK_H).
4055         (DF_H): Use $(BITMAP_H).
4056         (GGC_H): Add statistics.h.
4057         (INSN_ADDR_H): New.
4058         (INSN_ATTR_H): Use it.
4059         (SYSTEM_H): Add safe-ctype.h, filenames.h.
4060         (INPUT_H): New.
4061         (SYMTAB_H): Add $(OBSTACK_H).
4062         (CPP_INTERNAL_H): New.
4063         (TREE_DUMP_H): Add tree-pass.h.
4064         (TREE_FLOW_H): Use $(BITMAP_H)
4065         (PRETTY_PRINT_H): Use $(INPUT_H).
4066         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
4067         (GSTAB_H): New.
4068         (BITMAP_H): New.
4069         (many object files): Fix lots of header dependencies throughout.
4070
4071 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4072
4073         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
4074         New macros.
4075         (s-gtyp-input): Use them to write tmp-gi.list.
4076         (echo_to_gi.list): Remove.
4077
4078 2008-07-14  Richard Guenther  <rguenther@suse.de>
4079
4080         * tree-ssa-sccvn.c (pre_info): Remove.
4081         (switch_to_PRE_table): Likewise.
4082         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
4083         (set_hashtable_value_ids): Do not create value-ids for the
4084         optimistic tables.
4085         (run_scc_vn): Remove double test.  Remove bogus special-case
4086         in value-number printing.
4087         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
4088         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
4089         SSA_NAME_VALUE.
4090         * tree-flow-inline.h (get_value_handle): Remove.
4091         * tree-flow.h (get_value_handle): Remove.
4092
4093 2008-07-14  Martin Jambor  <mjambor@suse.cz>
4094
4095         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
4096         in which we generate arithmetics is not a subrange.
4097
4098 2008-07-14  Martin Jambor  <mjambor@suse.cz>
4099
4100         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
4101
4102 2008-07-14  Richard Guenther  <rguenther@suse.de>
4103
4104         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
4105
4106 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
4107
4108         PR target/36745
4109         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
4110         reload for symbol refs moved to r0 with -fPIC.
4111         (legitimize_pic_address): Use the target register as temporary
4112         reg if possible.
4113         (emit_symbolic_move): Adjust comment.
4114         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
4115         New expanders.
4116
4117 2008-07-14  Ben Elliston  <bje@au.ibm.com>
4118
4119         * c-common.h (C_CPP_HASHNODE): New macro.
4120         * coretypes.h (struct cpp_token): Forward declare.
4121         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
4122         the context-sensitive keyword method.
4123         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
4124         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
4125         expand_bool_pixel): New.
4126         (altivec_categorize_keyword): New function.
4127         (init_vector_keywords): New function.
4128         (rs6000_macro_to_expand): Likewise.
4129         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
4130         compiling an ISO C dialect.
4131
4132 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
4133
4134         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
4135         (create_expression_by_pieces): Fix typo.
4136         (do_regular_insertion): Use debug counter here too.
4137
4138 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
4139
4140         PR target/35492.
4141         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
4142         CONST_OK_FOR_LETTER_P.  All port-local users changed.
4143         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
4144         implement Kp matching power-of-two.
4145         (CONSTRAINT_LEN): Define to match.
4146         * config/cris/cris.md: Replace all use of constraint K with Kc.
4147         ("*btst*): Use Kp for operand 0 of last alternative.
4148
4149 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4150
4151         PR testsuite/36440
4152         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
4153         and quad formats.
4154
4155 2008-07-13  Jan Hubicka  <jh@suse.cz>
4156
4157         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
4158         to be mangled too.
4159
4160 2008-07-13  Richard Guenther  <rguenther@suse.de>
4161
4162         PR middle-end/36811
4163         * langhooks.c (lhd_print_error_function): Deal with recursive
4164         BLOCK trees.
4165
4166 2008-07-12  Jan Hubicka  <jh@suse.cz>
4167
4168         * cgraph.c (assembler_name_hash): New static var.
4169         (hash_node_by_assembler_name, eq_assembler_name): New.
4170         (cgraph_node_for_asm): Use hashtable.
4171         (cgraph_remove_node): Maintain hashtable.
4172         (change_decl_assembler_name): Sanity check that names are not changing
4173         after aliasing was processed.
4174         * cgraph.h (varpoon_node): Add next GGC marker.
4175         * tree.c (decl_assembler_name_equal): Constify.
4176         (decl_assembler_name_hash): New.
4177         * tree.h (decl_assembler_name_equal): Constify.
4178         (decl_assembler_name_hash): Update.
4179
4180 2008-07-12  David Daney  <ddaney@avtrex.com>
4181
4182         * config/mips/driver-native.c (host_detect_local_cpu): Handle
4183         sb1 and r5000 cpus.
4184
4185 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4186
4187         * doc/md.texi: Document the MIPS "v" constraint.
4188         * config/mips/mips.h (reg_class): Revert last change.
4189         (REG_CLASS_NAMES): Likewise.
4190         (REG_CLASS_CONTENTS): Likewise.
4191         * config/mips/mips.c (mips_regno_to_class): Likewise.
4192         * config/mips/constraints.md (v): Likewise, but add documentation.
4193         Add a comment to say that this constraint should not be used in
4194         gcc code.
4195
4196 2008-07-11  DJ Delorie  <dj@redhat.com>
4197
4198         * config/h8300/h8300.md (length): Fix branch offset limit.
4199
4200 2008-07-11  Anatoly Sokolov  <aesok@post.ru>
4201
4202         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
4203         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
4204         (avr_hard_regno_scratch_ok): New function.
4205         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
4206         * config/avr/avr.md (all peepholes that request a scratch register):
4207         Remove avr_peep2_scratch_safe use.
4208
4209 2008-07-11  Tom Tromey  <tromey@redhat.com>
4210             Ian Lance Taylor  <iant@google.com>
4211
4212         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
4213         (struct c_common_resword): Define.
4214         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
4215         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
4216         (c_common_reswords, num_c_common_reswords): Declare.
4217         * c-common.c (c_common_reswords): New global const array.
4218         (num_c_common_reswords): New const int.
4219         * c-parser.c (struct resword, reswords): Don't define.
4220         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
4221         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
4222         than reswords.  If warning about C++ keywords, give them a special
4223         RID code.
4224         (c_lex_one_token): Warn about C++ keywords.  Call
4225         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
4226         (c_parser_external_declaration): Look for RID_xxx rather than
4227         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
4228         (c_parser_statement_after_labels): Likewise.
4229         (c_parser_objc_class_instance_variables): Likewise.
4230         (c_parser_objc_class_declaration): Likewise.
4231         (c_parser_objc_try_catch_statement): Likewise.
4232         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
4233         (declspecs_add_type): Likewise.
4234
4235 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
4236
4237         * ggc-page.c (alloc_page):
4238         Substituting xmalloc, xcalloc with
4239         XNEWVEC and XCNEWVAR macros which add the
4240         needed casts.
4241
4242 2008-07-11  Richard Guenther  <rguenther@suse.de>
4243
4244         PR tree-optimization/36765
4245         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
4246         aliases from HEAP vars to SMTs.
4247
4248 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4249
4250         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
4251         * configure.ac (loose_warn): Move -Wc++-compat from here...
4252         (strict_warn): ...to here.
4253         * configure: Regenerate.
4254
4255 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
4256
4257         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
4258         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
4259         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
4260         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
4261         excluding more specific h8300-*-* and sh-*-* targets.
4262
4263 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
4264
4265         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
4266         (eliminate): Ditto.
4267         (execute_pre): Call loop_optimizer_finalize in early exit.
4268
4269 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
4270
4271         PR middle-end/36790
4272         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
4273         uids in the bitmap, not just VAR_DECL uids.
4274
4275         PR rtl-optimization/36419
4276         * combine-stack-adj.c (adjust_frame_related_expr): New function.
4277         (combine_stack_adjustments_for_block): Call it if needed.  Delete
4278         correct insn.
4279         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
4280         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
4281         prologue sp adjustment.
4282
4283 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
4284
4285         PR other/28322
4286         * opts.c (print_ignored_options): Report postponed diagnostics for
4287         unknown -Wno-* options as warnings, not errors.
4288         (postpone_unknown_option_error): Renamed to...
4289         (postpone_unknown_option_warning): ... this.
4290
4291 2008-07-09  Doug Kwan  <dougkwan@google.com>
4292
4293         Revert:
4294         2008-07-08  Doug Kwan  <dougkwan@google.com>
4295
4296         * config/arm/arm.opt (mandroid): New option.
4297         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
4298         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
4299         (CC1_SPEC): Same.
4300         (CC1PLUS_SPEC): Same.
4301         (LIB_SPEC): Same.
4302         (STARTFILE_SPEC): Same.
4303         (ENDFILE_SPEC): Same.
4304         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
4305         used.
4306
4307 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
4308
4309         PR target/35802
4310         * config/mips/mips.h (reg_class): Remove V1_REG.
4311         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
4312         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
4313         instead of V1_REGS.
4314         (mips_get_tp): New function.
4315         (mips_legitimize_tls_address): Use it.
4316         * config/mips/constraints.md (v): Delete.
4317         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
4318         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
4319         After reload, split into a move and ...
4320         (*tls_get_tp_<mode>_split): ...this new instruction.
4321
4322 2008-07-09  David Daney  <ddaney@avtrex.com>
4323
4324         * config/mips/driver-native.c: Include coretypes.h and tm.h.
4325
4326 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
4327
4328         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
4329         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
4330         Add c argument.
4331         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
4332         htab_delete should be called.  Don't free c.
4333         (lookup_tmp_var): Create temp_htab lazily.
4334         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
4335         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
4336         callers.
4337         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
4338         lower_omp_ordered, lower_omp_critical, lower_omp_for,
4339         create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
4340         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
4341         * tree-sra.c (generate_element_init): Likewise.
4342         * tree-mudflap.c (execute_mudflap_function_ops,
4343         execute_mudflap_function_decls): Likewise.
4344         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
4345         * tree-gimple.h (struct gimplify_ctx): New type.
4346         (push_gimplify_context): Adjust prototype.
4347
4348 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
4349
4350         * tree-ssa-pre.c (phi_translate_1): Update placement of
4351         add_to_value calls.
4352
4353 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
4354
4355         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
4356         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
4357         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
4358         * targhooks.c (default_hard_regno_scratch_ok): New function.
4359         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
4360         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
4361         * recog.c:  Include "target.h".
4362         (peep2_find_free_register): Add check for global regs. Add target
4363         specific check.
4364         * Makefile.in (recog.o): Depend on target.h.
4365
4366 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
4367
4368         * config/sh/sh.c (sh_canonical_va_list_type): New.
4369         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
4370
4371 2008-07-09  Raksit Ashok <raksit@google.com>
4372
4373         * doc/invoke.texi (Option Summary): Mention new option
4374         -Wdisallowed-function-list=...
4375         (Warning Options): Document -Wdisallowed-function-list=...
4376         * common.opt (Wdisallowed-function-list=): New flag.
4377         * flags.h (warn_disallowed_functions): External definition of new
4378         boolean warning flag.
4379         (warn_if_disallowed_function_p): Declare new function.
4380         * opts.c (warning_disallowed_functions): New static variable.
4381         (warn_disallowed_functions): New boolean warning flag.
4382         (warn_if_disallowed_function_p): New function.
4383         (add_comma_separated_to_vector): Rename
4384         add_instrument_functions_exclude_list to this.
4385         (common_handle_option): Handle new option. Rename calls to
4386         add_instrument_functions_exclude_list into calls to
4387         add_comma_separated_to_vector.
4388         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
4389         based on flag warn_disallowed_functions.
4390
4391 2008-07-09  Christian Bruel  <christian.bruel@st.com>
4392
4393         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
4394          instead of get_attr_length.
4395
4396 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4397
4398         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
4399         keywords.
4400         * genemit.c (gen_insn): Likewise.
4401         * gengtype.c (note_def_vec): Likewise.
4402         * gengtype.h (note_def_vec): Likewise.
4403         * genoutput.c (struct data, output_insn_data, process_template,
4404         gen_expand, gen_split, note_constraint): Likewise.
4405         * genrecog.c (new_decision, add_to_sequence, factor_tests,
4406         make_insn_sequence): Likewise.
4407         * gensupport.c (record_insn_name): Likewise.
4408
4409 2008-07-08  Doug Kwan  <dougkwan@google.com>
4410
4411         * config/arm/arm.opt (mandroid): New option.
4412         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
4413         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
4414         (CC1_SPEC): Same.
4415         (CC1PLUS_SPEC): Same.
4416         (LIB_SPEC): Same.
4417         (STARTFILE_SPEC): Same.
4418         (ENDFILE_SPEC): Same.
4419         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
4420         used.
4421
4422 2008-07-08  Raksit Ashok  <raksit@google.com>
4423
4424         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
4425         (set_storage_via_setmem): Fix expected_align parameter.
4426         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
4427         missing from the list.
4428         * doc/md.texi (movmem): Explicitly state that expected alignment is
4429         to be expressed in bytes.
4430         (setmem): Explicitly state that expected alignment is to be expressed
4431         in bytes.
4432
4433 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
4434
4435         * reload.c (find_reloads_subreg_address): Do not require validity
4436         of address in original mode before reloading address.
4437
4438 2008-07-07  Tianwei Sheng  <tianweis@google.com>
4439
4440         * df-core.c (df_remove_problem): Adjust the access to avoid out of
4441         bounds array access.
4442
4443 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
4444
4445         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
4446
4447 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
4448
4449         Fix PR tree-optimization/23455
4450         Fix PR tree-optimization/35286
4451         Fix PR tree-optimization/35287
4452         * Makefile.in (OBJS-common): Remove tree-vn.o.
4453         (tree-vn.o): Remove.
4454         * dbgcnt.def: Add treepre_insert debug counter.
4455         * gcc/tree-flow.h (add_to_value): Updated for other changes.
4456         (debug_value_expressions): Ditto.
4457         (print_value_expressions): Ditto.
4458         * tree-pretty-print.c (dump_generic_node): Updated for
4459         VALUE_HANDLE removal.
4460         * tree-ssa-dom.c (record_equality): Ditto.
4461         (cprop_operand): Ditto.
4462         (lookup_avail_expr): Ditto.
4463         * tree-ssa-threadedge.c
4464         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
4465         (simplify_control_stmt_condition): Ditto.
4466         * tree.c (tree_code_size): Ditto.
4467         (tree_node_structure): Ditto.
4468         (iterative_hash_expr): Ditto.
4469         * tree.def: Ditto.
4470         * tree.h (VALUE_HANDLE_ID): Ditto.
4471         (VALUE_HANDLE_EXPR_SET): Ditto.
4472         (struct tree_value_handle): Ditto.
4473         (union tree_node): Ditto.
4474         * treestruct.def: Ditto.
4475         * tree-vn.c: Removed.
4476         * tree-ssa-pre.c: Rewritten entirely.
4477         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
4478         (constant_value_ids): Ditto.
4479         (vn_nary_op_t): Moved to header.
4480         (vn_phi_t): Ditto.
4481         (vn_reference_op_t): Ditto
4482         (vn_reference_t): Ditto.
4483         (next_value_id): New variable.
4484         (VN_INFO): Add an assert.
4485         (vn_constant_eq): New function.
4486         (vn_constant_hash): Ditto.
4487         (get_or_alloc_constant_value_id): Ditto.
4488         (value_id_constant_p): Ditto.
4489         (vn_reference_compute_hash): De-staticify.
4490         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
4491         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
4492         (valueize_refs): Update opcode if it changes from ssa name to constant.
4493         (vn_reference_lookup_1): Add new argument.
4494         (vn_reference_lookup):  Ditto.
4495         (vn_reference_lookup_pieces): New function.
4496         (vn_reference_insert): Add return type. Modify to deal with value ids.
4497         (vn_reference_insert_pieces):  New function.
4498         (vn_nary_op_compute_hash): De-staticify.
4499         (vn_nary_op_eq): Ditto.
4500         (vn_nary_op_lookup_pieces): New function.
4501         (vn_nary_op_lookup): Add new argument.
4502         (vn_nary_op_insert_pieces): New function.
4503         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
4504         (vn_phi_insert): Ditto.
4505         (visit_unary_op): Update for callee changes.
4506         (visit_binary_op): Ditto.
4507         (visit_reference_op_load): Ditto.
4508         (visit_reference_op_store): Ditto.
4509         (init_scc_vn): Init next_value_id, constant_to_value_id and
4510         constant_value_ids.
4511         (free_scc_vn): Free them.
4512         (set_hashtable_value_ids): New function.
4513         (run_scc_vn): Use it.
4514         (get_max_value_id): New function.
4515         (get_next_value_id): Ditto.
4516         (expressions_equal_p): Moved from tree-vn.c
4517         (sort_vuses): Ditto.
4518         (sort_vuses_heap): Ditto.
4519         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
4520         above).
4521         * tree.c (iterative_hash_hashval_t): Made non-static
4522         * tree.h (iterative_hash_hashval_t): Declare it.
4523
4524 2008-07-08  Martin Jambor  <mjambor@suse.cz>
4525
4526         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
4527         instead of ipa_create_node_params.
4528         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
4529         ipa_check_create_edge_args, free them with
4530         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
4531
4532         * ipa-prop.c: Include flags.h and tree-inline.h.
4533         (ipa_node_params_vector): New variable.
4534         (ipa_edge_args_vector): New variable.
4535         (edge_removal_hook_holder): New variable.
4536         (node_removal_hook_holder): New variable.
4537         (edge_duplication_hook_holder): New variable.
4538         (node_duplication_hook_holder): New variable.
4539         (ipa_detect_param_modifications): Check for presence of modified flags.
4540         (ipa_compute_jump_functions): Check for presence of jump functions.
4541         (ipa_free_edge_args_substructures): New function.
4542         (ipa_create_node_params): Removed.
4543         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
4544         (ipa_free_node_params_substructures): New function.
4545         (ipa_free_all_node_params): Changed to deallocate the on-the-side
4546         vector.
4547         (ipa_edge_removal_hook): New function.
4548         (ipa_node_removal_hook): New function.
4549         (duplicate_array): New function.
4550         (ipa_edge_duplication_hook): New function.
4551         (ipa_node_duplication_hook): New function.
4552         (ipa_register_cgraph_hooks): New function.
4553         (ipa_unregister_cgraph_hooks): New function.
4554         (free_all_ipa_structures_after_ipa_cp): New function.
4555
4556         * ipa-prop.h: Include vec.h.
4557         (ipa_node_params_t): New typedef with vector types for it.
4558         (ipa_edge_args_t):  New typedef with vector types for it.
4559         (IPA_NODE_REF): Changed to access an on-the-side vector.
4560         (IPA_EDGE_REF): Changed to access an on-the-side vector.
4561         (ipa_check_create_node_params): New function.
4562         (ipa_check_create_edge_args): New function.
4563
4564         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
4565         all users.
4566
4567 2008-07-07  Tom Tromey  <tromey@redhat.com>
4568
4569         * configure, config.in: Rebuilt.
4570         * configure.ac: Don't check for scandir or alphasort.
4571
4572 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
4573
4574         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
4575         types immediately after creating them.
4576
4577 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
4578
4579         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
4580
4581 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
4582
4583         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
4584         dump_constraint_graph.
4585         (dump_constraint_edge): New function.
4586         (dump_constraint_graph): New function.
4587         (debug_constraint_graph): New function.
4588         (dump_constraint): Removed useless comparison.
4589         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
4590         (dump_constraint_graph): Declare.
4591         (debug_constraint_graph): Declare.
4592         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
4593
4594 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
4595
4596         * config/i386/i386.c (is_va_list_char_pointer): New.
4597         (ix86_va_start): Replace compare with ms_va_list_type_node
4598         by is_va_list_char_pointer.
4599         (ix86_gimplify_va_arg): Likewise.
4600
4601 2008-07-07  Martin Jambor  <mjambor@suse.cz>
4602
4603         * cgraph.c (cgraph_edge_max_uid): New variable.
4604         (struct cgraph_edge_hook_list): New type.
4605         (struct cgraph_node_hook_list): New type.
4606         (struct cgraph_2edge_hook_list): New type.
4607         (struct cgraph_2node_hook_list): New type.
4608         (first_cgraph_edge_removal_hook): New variable.
4609         (first_cgraph_node_removal_hook): New variable.
4610         (first_cgraph_edge_duplicated_hook): New variable.
4611         (first_cgraph_node_duplicated_hook): New variable.
4612         (cgraph_add_edge_removal_hook): New function.
4613         (cgraph_remove_edge_removal_hook): New function.
4614         (cgraph_call_edge_removal_hooks):  New function.
4615         (cgraph_add_node_removal_hook):  New function.
4616         (cgraph_remove_node_removal_hook):  New function.
4617         (cgraph_call_node_removal_hooks):  New function.
4618         (cgraph_add_edge_duplication_hook):  New function.
4619         (cgraph_remove_edge_duplication_hook):  New function.
4620         (cgraph_call_edge_duplication_hooks):  New function.
4621         (cgraph_add_node_duplication_hook):  New function.
4622         (cgraph_remove_node_duplication_hook):  New function.
4623         (cgraph_call_node_duplication_hooks):  New function.
4624         (cgraph_create_edge): Assign to edge uid.
4625         (cgraph_remove_edge): Call edge removal hooks.
4626         (cgraph_node_remove_callees): Call edge removal hooks.
4627         (cgraph_node_remove_callers): Call edge removal hooks.
4628         (cgraph_remove_node): Call node removal hooks.
4629         (cgraph_clone_edge): Call edge duplication hooks.
4630         (cgraph_clone_node): Call node duplication hooks.
4631
4632         * cgraph.h (cgraph_edge): New field uid.
4633         (cgraph_edge_hook): New type.
4634         (cgraph_node_hook): New type.
4635         (cgraph_2edge_hook): New type.
4636         (cgraph_2node_hook): New type.
4637
4638 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
4639
4640         * config.in: Regenerate.
4641
4642 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
4643
4644         * gcc.c (print_sysroot): New.
4645         (option_map, display_help, process_command): Handle the
4646         -print-sysroot option.
4647         (main): Print the sysroot if requested.
4648         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
4649
4650 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4651
4652         PR target/34780
4653         * unwind-pe.h (size_of_encoded_value): add attribute unused.
4654
4655 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
4656
4657         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
4658         (assign_parm_setup_block_p): Also check mode of entry_parm.
4659
4660 2008-07-07  Richard Guenther  <rguenther@suse.de>
4661
4662         * tree-ssa-structalias.h (set_used_smts): Remove.
4663         * tree-ssa-structalias.c (used_smts): Likewise.
4664         (set_used_smts): Likewise.
4665         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
4666         call to set_used_smts.
4667
4668 2008-07-07  Richard Guenther  <rguenther@suse.de>
4669
4670         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
4671         (new_var_info): Set it to false.
4672         (solution_set_add): Correctly handle pointers outside a var and
4673         inside a field.
4674         (type_safe): Treat variables with is_full_var properly.
4675         (do_sd_constraint): Likewise.
4676         (do_ds_constraint): Likewise.
4677         (process_constraint): Remove zeroing offset for !use_field_sensitive.
4678         (get_constraint_for_ptr_offset): New function.
4679         (get_constraint_for_component_ref): For addresses at least include
4680         the last field of the variable.  Handle is_full_vars properly.
4681         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
4682         (handle_ptr_arith): Remove.
4683         (find_func_aliases): Simplify assignment handling.
4684         (create_function_info_for): For parameter and result varinfos set
4685         is_full_var flag.
4686         (create_variable_info_for): Set is_full_var flag whenever we
4687         just created a single varinfo for a decl.
4688         (init_alias_vars): Initialize use_field_sensitive from
4689         max-fields-for-field-sensitive parameter.
4690
4691 2008-07-07  Richard Guenther  <rguenther@suse.de>
4692
4693         PR tree-optimization/36713
4694         * tree-flow-inline.h (is_call_used): New function.
4695         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
4696         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
4697         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
4698
4699 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
4700
4701         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
4702
4703 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
4704
4705         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
4706
4707 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
4708             Nathan Sidwell  <nathan@codesourcery.com>
4709
4710         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
4711         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
4712         tmake_file.
4713         * config/m68k/t-linux: New.
4714         * doc/install.texi: Document m68k-*-linux is now multilibbed by
4715         default.
4716
4717 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
4718
4719         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
4720         * config/m68k/m68k-devices.def: Remove multilibs that only differ
4721         by MAC/EMAC.
4722
4723 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4724
4725         * gcc.c (execute): Fix -Wc++-compat warning.
4726
4727 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
4728
4729         PR target/36720
4730         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
4731         constant for little endian.
4732
4733 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
4734
4735         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
4736         mips_base_mips16 instead of TARGET_MIPS16.
4737         (mips_base_mips16): Declare.
4738         * config/mips/mips.c (mips_base_mips16): Make global.
4739         (was_mips16_p): Remove GTY marker.
4740         (was_mips16_pch_p): New variable.
4741         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
4742         (mips_override_options): Force to non-MIPS16 mode initially.
4743         Do not complain about MIPS16 PIC incompatibilities here.
4744         Only allow -mgpopt if -mexplicit-relocs is in force for
4745         non-MIPS16 code.
4746
4747 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
4748
4749         * configure.ac: Check for caddr_t, define to char * if not defined.
4750         * configure: Regenerate.
4751         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
4752         (mmap_gt_pch_use_address): Likewise.
4753         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
4754
4755 2008-07-06  Richard Guenther  <rguenther@suse.de>
4756
4757         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
4758         (new_var_info): Deal with it.
4759         (solution_set_add): Likewise.
4760         (bitpos_of_field): Make signed, fix.
4761         (struct fieldoff): Remove type and decl fields.  Make size field
4762         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
4763         flags.
4764         (fieldoff_compare): Deal with it.
4765         (push_fields_onto_fieldstack): Remove has_union argument, glob
4766         adjacent non-pointer fields together.
4767         (create_function_info_for): Do not set has_union.
4768         (create_variable_info_for): Simplify.
4769
4770 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
4771
4772         * config.gcc (extra_headers): Add cross-stdarg.h for target
4773         x86_64-*-* and i?86-*-*.
4774         * config/i386/cross-stdarg.h: New.
4775         * builtins.c (std_fn_abi_va_list): New.
4776         (std_canonical_va_list_type): New.
4777         (stabilize_va_list): Replace va_list_type_node use by
4778         mtarget.canonical_va_list_type.
4779         (gimplify_va_arg_expr): Likewise.
4780         (expand_builtin_va_copy): Replace va_list_type_node use by
4781         mtarget.fn_abi_va_list.
4782         * tree-sra.c (is_va_list_type): New helper.
4783         (decl_can_be_decomposed_p): Replace
4784         va_list_type_node use by is_va_list_type.
4785         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
4786         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
4787         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
4788         * config/i386/i386-protos.h (ix86_get_valist_type): New.
4789         (ix86_enum_va_list): New.
4790         * config/i386/i386.c (sysv_va_list_type_node): New.
4791         (ms_va_list_type_node): New.
4792         (ix86_function_type_abi): Remove sorry.
4793         (ix86_build_builtin_va_list_abi): New.
4794         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
4795         for 64-bit targets.
4796         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
4797         (ix86_init_builtins_va_builtins_abi): New.
4798         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
4799         for 64-bit targets.
4800         (ix86_handle_abi_attribute): New.
4801         (attribute_spec): Add sysv_abi and ms_abi.
4802         (ix86_fn_abi_va_list): New.
4803         (ix86_canonical_va_list_type): New.
4804         (ix86_enum_va_list): New.
4805         (TARGET_FN_ABI_VA_LIST): New.
4806         (TARGET_CANONICAL_VA_LIST_TYPE): New.
4807         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
4808         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
4809         (TARGET_CANONICAL_VA_LIST_TYPE): New.
4810         (TARGET_ENUM_VA_LIST): New.
4811         * expr.h (std_fn_abi_va_list): New.
4812         (std_canonical_va_list_type): New.
4813         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
4814         (TARGET_CANONICAL_VA_LIST_TYPE): New.
4815         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
4816         TARGET_CANONICAL_VA_LIST_TYPE.
4817         * target.h (struct gcc_target): Add fn_abi_va_list hook
4818         and canonical_va_list_type hook.
4819
4820 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4821
4822         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
4823         integral and pointer types.
4824
4825 2008-07-04  Roger Sayle  <roger@eyesopen.com>
4826
4827         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
4828         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
4829
4830 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
4831
4832         PR target/36684
4833         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
4834
4835 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
4836
4837         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
4838         build_gimple_modify_stmt.
4839         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
4840         gimple operand.  Use fold_build* instead of build*.
4841
4842 2008-07-04  Richard Guenther  <rguenther@suse.de>
4843
4844         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
4845         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
4846         properly to compute the reachability set if we do field-sensitive PTA.
4847         * invoke.texi (max-fields-for-field-sensitive): Document default.
4848         * opts.c (decode_options): Set max-fields-for-field-sensitive to
4849         100 for optimize >= 2.
4850
4851 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4852
4853         * ggc-zone.c (lookup_page_table_if_allocated,
4854         set_page_table_entry, zone_find_object_size, alloc_small_page,
4855         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
4856         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
4857         -Wc++-compat and/or -Wcast-qual warnings.
4858
4859 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
4860
4861         PR target/36634
4862         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
4863         pic_offset_table_rtx to be marked as used here.
4864         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
4865         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
4866         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
4867         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
4868         !TARGET_SECURE_PLT.
4869
4870 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4871
4872         * alloc-pool.c (hash_descriptor, eq_descriptor,
4873         alloc_pool_descriptor): Fix -Wc++-compat warnings.
4874         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
4875         Likewise.
4876         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
4877         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
4878         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
4879         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
4880         Likewise.
4881
4882 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
4883
4884         * tree-flow.h (loop_only_exit_p): Declare.
4885         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
4886         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
4887         the number of iterations if it is constant.  Otherwise, if this is the
4888         only possible exit of the loop, use the conservative estimate on the
4889         number of iterations of the entire loop if available.
4890
4891 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
4892
4893         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
4894         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
4895         Add synchronization functions.
4896         * config/sync.c: New file.
4897         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
4898         (LIBGCC_SYNC_CFLAGS): Likewise.
4899
4900 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
4901
4902         PR target/36710
4903         * config/i386/i386.md (mode): Add TF to "mode" attribute.
4904         (*pushtf_sse): New insn pattern.
4905         (pushtf splitters): New splitters.
4906
4907 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
4908
4909         PR middle-end/35736
4910         * predict.c (build_predict_expr): Use void_type_node for the tree
4911         type, instead of NULL_TREE.
4912
4913 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
4914
4915         * config/i386/i386.c (contains_aligned_value_p): Return true
4916         for TCmode.
4917         (ix86_data_alignment): Align TCmode to 128bits.
4918         (ix86_local_alignment): Likewise.
4919
4920 2008-07-03  Andrew Haley  <aph@redhat.com>
4921
4922         PR bootstrap/33304
4923         * vec.h (VEC_TA): New.
4924         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
4925         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
4926         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
4927         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
4928         (C_COMMON_FIXED_TYPES): Remove first arg.
4929         (C_COMMON_FIXED_MODE_TYPES): Likewise.
4930         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
4931         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
4932         not to use empty macro arguments.
4933
4934 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
4935
4936         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
4937         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
4938         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
4939         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
4940         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
4941         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
4942         config/ia64/crtn.asm, config/m68hc11/larith.asm,
4943         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
4944         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
4945         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
4946         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
4947         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
4948         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
4949         config/rs6000/e500crtres64gpr.asm,
4950         config/rs6000/e500crtres64gprctr.asm,
4951         config/rs6000/e500crtrest32gpr.asm,
4952         config/rs6000/e500crtrest64gpr.asm,
4953         config/rs6000/e500crtresx32gpr.asm,
4954         config/rs6000/e500crtresx64gpr.asm,
4955         config/rs6000/e500crtsav32gpr.asm,
4956         config/rs6000/e500crtsav64gpr.asm,
4957         config/rs6000/e500crtsav64gprctr.asm,
4958         config/rs6000/e500crtsavg32gpr.asm,
4959         config/rs6000/e500crtsavg64gpr.asm,
4960         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
4961         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
4962         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
4963         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
4964         config/sparc/sol2-cn.asm: Remove .file directives.
4965
4966 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
4967
4968         * resource.c (mark_referenced_resources): Look inside
4969         UNSPEC_VOLATILEs and ASM_INPUTs.
4970
4971 2008-07-02  Ian Lance Taylor  <iant@google.com>
4972
4973         * rtlanal.c (add_reg_note): New function.
4974         * rtl.h (add_reg_note): Declare.
4975         * auto-inc-dec.c (attempt_change): Use add_reg_note.
4976         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
4977         * builtins.c (expand_builtin_longjmp): Likewise.
4978         (expand_builtin_nonlocal_goto): Likewise.
4979         * calls.c (emit_call_1, expand_call): Likewise.
4980         * cfgexpand.c (add_reg_br_prob_note): Likewise.
4981         * cfglayout.c (fixup_reorder_chain): Likewise.
4982         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
4983         (commit_one_edge_insertion): Likewise.
4984         * combine.c (move_deaths, distribute_notes): Likewise.
4985         * df-problems.c (df_set_note): Likewise.
4986         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
4987         (set_unique_reg_note): Likewise.
4988         (emit_copy_of_insn_after): Likewise.
4989         * expr.c (expand_expr_real): Likewise.
4990         * gcse.c (add_label_notes): Likewise.
4991         * haifa-sched.c (create_check_block_twin): Likewise.
4992         * jump.c (mark_jump_label_1): Likewise.
4993         * loop-doloop.c (add_test, doloop_modify): Likewise.
4994         * loop-unswitch.c (compare_and_jump_seq): Likewise.
4995         * lower-subreg.c (move_eh_region_note): Likewise.
4996         * optabs.c (emit_libcall_block): Likewise.
4997         * predict.c (predict_insn): Likewise.
4998         (combine_predictions_for_insn): Likewise.
4999         * recog.c (peephole2_optimize): Likewise.
5000         * regmove.c (try_auto_increment): Likewise.
5001         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
5002         * reload.c (find_reloads): Likewise.
5003         * reload1.c (fixup_eh_region_note): Likewise.
5004         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
5005         * reorg.c (delete_prior_computation): Likewise.
5006         (delete_computation, dbr_schedule): Likewise.
5007         * config/pa/pa.c (legitimize_pic_address): Likewise.
5008         * config/sh/sh.c (sh_reorg): Likewise.
5009
5010 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
5011
5012         PR target/36669
5013         * config/libgcc-glibc.ver: Add %exclude.
5014         * config/m32r/libgcc-glibc.ver: Likwise.
5015         * config/s390/libgcc-glibc.ver: Likwise.
5016         * config/sh/libgcc-glibc.ver: Likwise.
5017         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
5018
5019         * config/i386/libgcc-glibc.ver: New.
5020
5021         * config/i386/libgcc-x86_64-glibc.ver: Removed.
5022
5023 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
5024
5025         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
5026         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
5027         i[34567]86-*-linux*, x86_64-*-linux*.  Add
5028         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
5029         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
5030         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
5031         i[34567]86-*-linux*, x86_64-*-linux*.
5032
5033         * libgcc-std.ver: Add empty GCC_4.4.0.
5034
5035         * mkmap-symver.awk: Support multiple versions per symbol.
5036
5037         * config/i386/i386.c (ix86_init_builtins): Always define
5038         __builtin_fabsq and __builtin_copysignq with fallbacks.
5039         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
5040         and __builtin_copysignq if SSE2 isn't available.
5041
5042         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
5043         (LIBGCC2_TF_CEXT): Likwise.
5044         (TF_SIZE): Likwise.
5045
5046         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
5047
5048         * config/i386/sfp-machine.h: Moved to libgcc.
5049
5050         * config/i386/sfp-machine.h: New.
5051         * config/i386/t-linux: Likwise.
5052
5053         * config/i386/t-darwin: Remove softfp_wrap_start and
5054         softfp_wrap_end.
5055         * config/i386/t-darwin64: Likewise.
5056
5057         * config/i386/t-fprules-softfp64: Renamed to ...
5058         * config/i386/t-fprules-softfp: This.
5059
5060         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
5061         and softfp_wrap_end.
5062
5063 2008-07-02  Jason Merrill  <jason@redhat.com>
5064
5065         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
5066
5067         * tree.c (ctor_to_list): New fn.
5068         * tree.h: Declare it.
5069         (CONSTRUCTOR_ELT): New macro.
5070         (CONSTRUCTOR_NELTS): New macro.
5071
5072 2008-07-02  Richard Guenther  <rguenther@suse.de>
5073
5074         * tree-ssa-structalias.c (struct variable_info): Reorder
5075         to fill padding on 64bit hosts.  Make collapsed_to an int.
5076         (get_varinfo_fc): Deal with that.
5077         (new_var_info): Likewise.
5078         (collapse_rest_of_var): Likewise.
5079
5080 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
5081
5082         * doc/install.texi (--enable-java-home): Document.
5083         (--enable-aot-compile-rpm): Likewise.
5084         (--with-arch-directory): Likewise.
5085         (--with-os-directory): Likewise.
5086         (--with-origin-name): Likewise.
5087         (--with-arch-suffix): Likewise.
5088         (--with-jvm-root-dir): Likewise.
5089         (--with-jvm-jar-dir): Likewise.
5090         (--with-python-dir): Likewise.
5091
5092 2008-07-02  Richard Guenther  <rguenther@suse.de>
5093
5094         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
5095         from decls explicitly.  Merge operand checking from tuples.
5096
5097 2008-07-02  Martin Jambor  <mjambor@suse.cz>
5098
5099         * tree-switch-conversion.c: Included timevar.h which I forgot before.
5100
5101 2008-07-02  Martin Jambor  <mjambor@suse.cz>
5102
5103         * tree-switch-conversion.c: Included timevar.h
5104         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
5105
5106         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
5107
5108 2008-07-02  Martin Jambor  <mjambor@suse.cz>
5109
5110         * tree-switch-conversion.c: Corrected various comments and
5111         whitespace issues
5112         (build_constructors): Fixed minor formatting mistakes.
5113
5114         * invoke.texi (Optimize Options): Corrected the
5115         switch-conversion-max-branch-ratio parameter.
5116
5117 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
5118
5119         * final.c (asm_insn_count): Return zero for an empty asm body.
5120
5121 2008-07-02  Richard Guenther  <rguenther@suse.de>
5122
5123         * bitmap.h (bitmap_set_bit): Return bool.
5124         (bitmap_clear_bit): Likewise.
5125         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
5126         write to the bitmap if it would.
5127         (bitmap_clear_bit): Likewise.
5128         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
5129         bitmap_set_bit return value.
5130         (add_pred_graph_edge): Likewise.
5131         (add_graph_edge): Likewise.
5132         (do_sd_constraint): Likewise.
5133         (do_ds_constraint): Likewise.
5134
5135 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5136
5137         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
5138         Fix -Wc++-compat and/or -Wcast-qual warnings.
5139         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
5140         gen_regparm_prefix): Likewise.
5141         * vmsdbgout.c (write_modbeg, lookup_filename,
5142         vmsdbgout_source_line, vmsdbgout_init): Likewise.
5143
5144 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
5145
5146         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
5147         defaults.h definition apply.
5148
5149 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
5150
5151         * function.c (assign_parm_remove_parallels): New.
5152         (assign_parm_setup_block_p): Do not return true for non-BLKmode
5153         PARALLELs.
5154         (assign_parm_setup_block): Do not handle them.
5155         (assign_parm_setup_reg, assign_parm_setup_stack): Call
5156         assign_parm_remove_parallels.
5157
5158 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
5159
5160         * c-typeck.c (convert_for_assignment): Use
5161         vector_targets_convertible_p.
5162         * c-common.c (vector_targets_convertible_p): New.
5163         * c-common.h (vector_targets_convertible_p): New prototype.
5164         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
5165         opaque_p_V2SI_type_node.
5166
5167 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
5168
5169         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
5170         RFmode constants.
5171
5172 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
5173
5174         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
5175         TFmode constants via two element DImode vector for hosts with
5176         HOST_BITS_PER_WIDE_INT < 64.
5177         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
5178         also for HOST_BITS_PER_WIDE_INT < 64.
5179
5180 2008-07-01  Richard Guenther  <rguenther@suse.de>
5181
5182         PR tree-optimization/36666
5183         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
5184         (get_constraint_exp_from_ssa_var): Split into ...
5185         (get_constraint_exp_for_temp): ... this ...
5186         (get_constraint_for_ssa_var): ... and that.
5187         Return constraint expressions for all touched sub-fields
5188         if the results address is not taken.
5189         (process_constraint): Remove assertion that aggregate
5190         assignments do not happen at this place.
5191         (get_constraint_for_component_ref): Add address_p argument.
5192         Return constraint expressions for all touched sub-fields
5193         if the results address is not taken.
5194         (do_deref): Use get_constraint_exp_for_temp.
5195         (get_constraint_for_1): Rename from ...
5196         (get_constraint_for): ... this.  Add the old function as wrapper.
5197         (do_structure_copy): Use get_constraint_for_1.
5198
5199 2008-07-01  Martin Jambor  <mjambor@suse.cz>
5200
5201         * Makefile.in (tree-switch-conversion.o): Add.
5202         (OBJS-common): Add tree-swtch-conversion.o.
5203         * passes.c (init_optimization_passes): Add pass_convert_switch.
5204         * tree-pass.h: (pass_convert_switch): Add.
5205         * tree-switch-conversion.c: New file.
5206         * gcc.dg/tree-ssa/cswtch.c: New testcase.
5207         * common.opt (ftree-cswtch): New option.
5208         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
5209         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
5210         * opts.c (decode_options): Set flag_tree_switch_conversion when
5211         optimization level is >= 2.
5212         * doc/invoke.texi (Optimize Options): Added description of
5213         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
5214
5215 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5216
5217         * config/darwin-driver.c (darwin_default_min_version): Fix
5218         -Wc++-compat warnings.
5219
5220 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
5221
5222         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
5223         of operand 0.
5224
5225 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
5226
5227         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
5228
5229 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
5230
5231         PR rtl-optimization/34744
5232         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
5233         (df_scan_free_internal): Free data structures not
5234         allocated in storage pools.
5235         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
5236         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
5237         df_scan_free_mws_vec.
5238         * dse.c (dse_step6): Free offset_map_p and offset_map_n
5239         unconditionally.
5240
5241 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
5242
5243         * config/i386/i386.c (contains_aligned_value_p): Return true
5244         for __float128.
5245         (ix86_function_arg_boundary): Return its natural boundary
5246         for __float128.
5247         (return_in_memory_32): Don't check TDmode.
5248         (ix86_split_to_parts): Support splitting into 4 parts and
5249         support TFmode for 32bit target.
5250         (ix86_split_long_move): Support splitting into 4 parts.
5251         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
5252         for SSE2.
5253         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
5254         (ix86_init_builtins): Here.
5255         (ix86_scalar_mode_supported_p): Always return true for TFmode.
5256         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
5257         'q' and 'w', respectively.
5258
5259         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
5260         TARGET_64BIT.
5261         (movtf_internal): Likewise.
5262         (<code>tf2): Likewise.
5263         (*absnegtf2_sse): Likewise.
5264         (copysign<mode>3): Likewise.
5265         (copysign<mode>3_const): Likewise.
5266         (copysign<mode>3_var): Likewise.
5267         (define_split UNSPEC_COPYSIGN): Likewise.
5268         * config/i386/sse.md (*nandtf3): Likewise.
5269         (<code>tf3): Likewise.
5270         (*<code>tf3): Likewise.
5271
5272 2008-06-30  Joey Ye  <joey.ye@intel.com>
5273             H.J. Lu  <hongjiu.lu@intel.com>
5274
5275         * global.c (compute_regsets): Set frame_pointer_needed here.
5276         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
5277
5278 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
5279
5280         * doc/install.texi (specific): Expand Windows build notes.
5281
5282 2008-06-30  Ira Rosen  <irar@il.ibm.com>
5283
5284         PR tree-optimization/36648
5285         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
5286         number of prolog iterations by step. Fix the comment.
5287
5288 2008-06-30  Richard Guenther  <rguenther@suse.de>
5289
5290         PR middle-end/36671
5291         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
5292         handle calls from ECF_MALLOC functions.
5293         (handle_pure_call): ECF_MALLOC functions do not return
5294         call-used memory.
5295         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
5296
5297 2008-06-29  Andreas Schwab  <schwab@suse.de>
5298
5299         * config/m68k/m68k.c (print_operand): Always print a float
5300         constant in hex.
5301         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
5302         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
5303         Remove macros.
5304
5305         * config/rs6000/x-linux64: Remove never used file.
5306
5307 2008-06-29  Richard Guenther  <rguenther@suse.de>
5308
5309         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
5310         prototype.
5311         (struct alias_info): Move ...
5312         * tree-ssa-alias.c: ... here.
5313         (update_alias_info): Declare.
5314         (compute_may_aliases): Call it.
5315         (update_alias_info): New function.
5316         * tree-ssa-structalias.c (update_alias_info): Move ...
5317         * tree-ssa-alias.c (update_alias_info_1): ... here.
5318         * tree-ssa-structalias.c (process_constraint_1): Remove
5319         unused from_call argument.  Rename to ...
5320         (process_constraint): ... this.  Delete old wrapper.
5321         (make_constraint_to): Adjust callers.
5322         (handle_const_call): Likewise.
5323         (handle_pure_call): Likewise.
5324         (init_base_vars): Likewise.
5325         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
5326         (find_func_aliases): We don't need structure copies for
5327         complex types.
5328         (make_constraint_from_anything): Remove.
5329         (create_variable_info_for): For globals make constraints
5330         from escaped, not from anything.
5331         (compute_points_to_sets): Do not call update_alias_info.
5332         (ipa_pta_execute): Use make_constraint_from.
5333
5334 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5335
5336         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
5337         (bitmap.o-warn, dominance.o-warn): New.
5338         * configure.ac (cxx_compat_warn): Delete.
5339         (loose_warn): Add -Wcast-qual and -Wc++-compat.
5340         * system.h: Remove #pragma diagnostic for -Wcast-qual and
5341         -Wc++-compat.
5342         * configure: Regenerate.
5343
5344         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
5345         warnings.
5346
5347 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5348
5349         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
5350         * df-scan.c (df_notes_rescan): Likewise.
5351         * ggc-page.c (set_page_table_entry): Likewise.
5352         * intl.c (gcc_gettext_width): Likewise.
5353         * varasm.c (get_unnamed_section, get_noswitch_section,
5354         get_section): Likewise.
5355
5356 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
5357
5358         * regrename.c (build_def_use): Don't copy RTX.
5359
5360 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
5361
5362         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
5363         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
5364         punctuation.  Use @ref instead of @xref.
5365         (Function Names): Remove stray @display/@end display.
5366         (C++ Attributes): Use @ref instead of @xref.
5367         (Deprecated Features): Fix punctuation around @xref.
5368         (Backwards Compatibility): Likewise.
5369         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
5370
5371 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
5372
5373         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
5374         constants for E500 double.
5375
5376 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5377
5378         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
5379         element type of const_vector.
5380
5381 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
5382
5383         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
5384         Remove FLAGS_REG clobber from expander pattern.
5385         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
5386         (anddi3, andsi3, andhi3, andqi3): Ditto.
5387         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
5388         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
5389         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
5390         (ashlsi3, ashlhi3, ashlqi3): Ditto.
5391         (ashrsi3, ashrhi3, ashrqi3): Ditto.
5392         (lshrsi3, lshrhi3, lshrqi3): Ditto.
5393         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
5394         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
5395
5396 2008-06-28  Richard Guenther  <rguenther@suse.de>
5397
5398         * tree-ssa-structalias.c (callused_id, var_callused,
5399         callused_tree): Add.
5400         (handle_pure_call): New function.
5401         (find_func_aliases): Call it.
5402         (find_what_p_points_to): Handle the call-used set.
5403         (clobber_what_escaped): Likewise.
5404         (compute_call_used_vars): New function.
5405         (init_base_vars): Init the call-used variable.
5406         (do_sd_constraint): Do not propagate the solution from CALLUSED
5407         but use CALLUSED as a placeholder.
5408         (solve_graph): Likewise.
5409         * tree-flow-inline.h (gimple_call_used_vars): New function.
5410         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
5411         (compute_call_used_vars): Declare.
5412         * tree-ssa-alias.c (set_initial_properties): Call
5413         compute_call_used_vars.
5414         (reset_alias_info): Clear call-used variables.
5415         (add_call_clobber_ops): Assert we are not called for const/pure
5416         functions.  Remove handling of them.
5417         (add_call_read_ops): Handle pure functions by adding the
5418         call-used set of variables as VUSEs.
5419         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
5420         (delete_tree_ssa): Free it.
5421         * tree-dfa.c (remove_referenced_var): Clear the var from the
5422         call-used bitmap.
5423
5424 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
5425
5426         * tree.c (build_varargs_function_type_list): New.
5427         (build_function_type_list_1): New.
5428         (build_function_type_list): Use build_function_type_list_1.
5429         * tree.h (build_varargs_function_type_list): New.
5430
5431 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5432
5433         PR target/34856
5434         * config/spu/spu.c (spu_builtin_splats): Do not generate
5435         invalid CONST_VECTOR expressions.
5436         (spu_expand_vector_init): Likewise.
5437
5438 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
5439
5440         * optabs.c (libfunc_decls): New variable.
5441         (libfunc_decl_hash, libfunc_decl_eq): New functions.
5442         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
5443         for the same function twice.
5444
5445 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
5446
5447         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
5448         ix86_expand_binary_operator directly.
5449         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
5450         for operand 2.
5451         (*ashrti3_1): Ditto.
5452         (*lshrti3_1): Ditto.
5453         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
5454         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
5455         using only one splitter.  Conditionaly execute splitter before or
5456         after peephole2 pass.
5457         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
5458         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
5459         Use only one alternative in asm template.
5460         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
5461         in asm template.
5462         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
5463         "J" operand constraint for operand 2.
5464         (*ashldi3_cconly_rex64): Ditto.
5465         (*ashrdi3_cmp_rex64): Ditto.
5466         (*ashrdi3_cconly_rex64): Ditto.
5467         (*lshrdi3_cmp_rex64): Ditto.
5468         (*lshrdi3_cconly_rex64): Ditto.
5469         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
5470         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
5471         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
5472         gen_x86_shrd_1.
5473
5474 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
5475
5476         * gimplify.c (omp_is_private): Don't return true if decl is not
5477         already private on #pragma omp for or #pragma omp parallel for.
5478
5479         PR debug/36617
5480         * tree-cfg.c (struct move_stmt_d): Replace block field with
5481         orig_block and new_block fields.
5482         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
5483         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
5484         (move_block_to_fn): Replace vars_map and new_label_map arguments
5485         with struct move_stmt_d pointer.
5486         (replace_block_vars_by_duplicates): New function.
5487         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
5488         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
5489         all subblocks of ORIG_BLOCK to the new function.  Call
5490         replace_block_vars_by_duplicates.
5491         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
5492         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
5493         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
5494         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
5495         (expand_omp): Temporarily set input_location to the location of
5496         region's controlling stmt.
5497         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
5498         BIND_EXPR, push ctx->block_vars and gimplification vars into
5499         the BIND_EXPR and its block's BLOCK_VARS instead of directly
5500         into dest function.
5501         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
5502         there are any BLOCK_VARS.
5503         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
5504         OMP_PARALLEL or OMP_TASK stmt.
5505         (lower_omp): Save and restore input_location around the lower_omp_1
5506         call.
5507
5508 2008-06-27  Richard Guenther  <rguenther@suse.de>
5509
5510         PR tree-optimization/36400
5511         PR tree-optimization/36373
5512         PR tree-optimization/36344
5513         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
5514         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
5515         (update_alias_info): Remove call clobbering code.
5516         (make_constraint_to): New helper function.
5517         (make_escape_constraint): Likewise.
5518         (handle_rhs_call): Use it on all pointer containing arguments.
5519         Also mark the static chain escaped.
5520         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
5521         instead of ANYTHING.
5522         (make_constraint_from): New helper split out from ...
5523         (make_constraint_from_anything): ... here.
5524         (find_func_aliases): Add constraints for escape sites.
5525         (intra_create_variable_infos): Make constraints from NONLOCAL
5526         for parameters.
5527         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
5528         as ANYTHING.
5529         (clobber_what_p_points_to): Remove.
5530         (clobber_what_escaped): New function.
5531         (init_base_vars): Init NONLOCAL and ESCAPED.
5532         (do_sd_constraint): Do not propagate the solution from ESCAPED
5533         but use ESCAPED as a placeholder.
5534         (solve_graph): Likewise.
5535         * tree-flow.h (clobber_what_p_points_to): Remove.
5536         (clobber_what_escaped): Declare.
5537         * tree-ssa-alias.c (set_initial_properties): Call it.
5538         Remove code clobbering escaped pointers.
5539
5540 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
5541
5542         * function.c (allocate_struct_function): Only allocate a unique
5543         funcdef_no if the decl is nonzero.
5544
5545 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
5546
5547         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
5548         * config/mips/mips.c (mips_split_const_insns): New function.
5549         * config/mips/mips.md (move_type): New attribute.
5550         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
5551         (dword_mode): New attribute.
5552         (type): Avoid long line.  Map "move_type"s to "type"s,
5553         choosing "multi" for doubleword moves if appropriate.
5554         Swap MTC/MFC comments to match their declaration order.
5555         (extended_mips16): Default to "yes" if "move_type" is "sll0",
5556         "type" is "branch" or "jal" is "direct".
5557         (length): Handle "extended_mips16" first.  Make the default
5558         "0" for "ghost" instructions.  Set the length from "move_type".
5559         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
5560         of "type", with "sll0" for the register alternative.  Remove the
5561         "extended_mips16" attribute.
5562         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
5563         of "type", with "shift_shift" for the register alternative.
5564         Remove the "length" attribute.
5565         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
5566         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
5567         of "type", with "andi" for the register alternative.
5568         (*zero_extendqihi2): Likewise.
5569         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
5570         of "andi" instead of a "type" of "arith".
5571         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
5572         instead of "type".
5573         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
5574         (mov_<store>r, *mov<mode>_ra): Likewise.
5575         (extendsidi2): Use "move_type" instead of "type", with "move"
5576         for the register alternative.
5577         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
5578         of "type", with "signext" for the register alternative.
5579         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
5580         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
5581         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
5582         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
5583         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
5584         (unnamed branch insn): Likewise.
5585         (*movdi_gp32_fp64): Fold into...
5586         (*movdi_32bit): ...here.
5587         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
5588         (*movdf_hardfloat): ...this new pattern.
5589         (*movdf_softfloat): Remove redundant FPR alternatives.
5590         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
5591         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
5592         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
5593         the "move" attribute.
5594         (*movdi_32bit): Use "move_type" instead of "type" and remove the
5595         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
5596         and "store" for COP loads and stores.
5597         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
5598         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
5599         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
5600         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
5601         (*movtf_mips16, *movv2sf): Likewise.
5602         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
5603         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
5604         (mfhc1<mode>): Use "move_type" instead of "move".
5605         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
5606         (loadgp_blockage): Remove the "length" attribute.
5607         (blockage, set_got_version, update_got_version): Likewise.
5608         (call_internal): Remove the "extended_mips16" attribute.
5609         (call_value_internal, call_value_multiple_internal): Likewise.
5610         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
5611         instead of "move".
5612         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
5613         the "length" attribute.
5614
5615 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5616
5617         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
5618         -Wcast-qual warnings.
5619         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
5620         handle_pragma_pop_macro): Likewise.
5621         * collect2.c (resolve_lib_name): Likewise.
5622         * config/arc/arc.c (arc_init): Likewise.
5623         * config/arm/arm.c (neon_builtin_compare,
5624         locate_neon_builtin_icode): Likewise.
5625         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
5626         * config/bfin/bfin.c (bfin_init_machine_status,
5627         bfin_optimize_loop): Likewise.
5628         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
5629         * config/cris/cris.c (cris_init_expanders): Likewise.
5630         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
5631         * config/darwin.c (machopic_indirection_eq,
5632         machopic_indirection_name, machopic_output_indirection): Likewise.
5633         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
5634         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
5635         frv_optimize_membar): Likewise.
5636         * config/i386/cygwin.h (mingw_scan,
5637         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
5638         * config/i386/cygwin1.c (mingw_scan): Likewise.
5639         * config/i386/i386.c (machopic_output_stub): Likewise.
5640         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
5641         i386_pe_unique_section): Likewise.
5642         * config/ia64/ia64.c (ia64_init_machine_status,
5643         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
5644         Likewise.
5645         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
5646         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
5647         * config/m68k/m68k.c (m68k_handle_option,
5648         m68k_sched_md_init_global): Likewise.
5649         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
5650         mcore_unique_section): Likewise.
5651         * config/mips/mips.c (mips_block_move_straight,
5652         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
5653         Likewise.
5654         * config/mmix/mmix.c (mmix_init_machine_status,
5655         mmix_encode_section_info): Likewise.
5656         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
5657         * config/rs6000/rs6000.c (rs6000_init_machine_status,
5658         print_operand_address, output_toc, redefine_groups,
5659         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
5660         * config/s390/s390.c (s390_init_machine_status): Likewise.
5661         * config/score/score.c (score_block_move_straight,
5662         score_block_move_loop_body): Likewise.
5663         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
5664         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
5665         * emit-rtl.c (find_auto_inc): Likewise.
5666         * gcc.c (translate_options, process_command): Likewise.
5667         * reorg.c (dbr_schedule): Likewise.
5668         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
5669         * xcoffout.c (xcoffout_declare_function): Likewise.
5670
5671 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
5672
5673         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
5674         ipa-pta working again.
5675
5676 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
5677
5678         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
5679         genautomata.
5680
5681 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
5682
5683         * config.gcc (powerpc*-*-*): Add new core e500mc.
5684         * config/rs6000/e500mc.md: New file.
5685         * config/rs6000/rs6000.c (processor_costs): Add new costs for
5686         e500mc.
5687         (rs6000_override_options): Add e500mc case to
5688         processor_target_table. Altivec and Spe options not allowed
5689         with e500mc. Add isel instruction to e500mc by
5690         default. Initialize rs6000_cost for e500mc.
5691         (rs6000_issue_rate): Set issue rate for e500mc.
5692         * config/rs6000/rs6000.h (processor_type): Add
5693         PROCESSOR_PPCE500MC.
5694         (ASM_CPU_SPEC): Add e500mc.
5695         Set TARGET_ISEL to rs6000_isel.
5696         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
5697         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
5698         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
5699         Include e500mc.md.
5700         * doc/invoke.texi: Add e500mc to list of cpus.
5701
5702 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5703
5704         PR c/34867
5705         * c-lex.c (lex_charconst): Initialize unsignedp.
5706
5707 2008-06-27  Olivier Hainque  <hainque@adacore.com>
5708
5709         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
5710         documented assumptions.
5711
5712 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
5713
5714         * dwarf2out.c: Remove trailing white spaces.  Break long line
5715         in comments.
5716
5717 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
5718
5719         * libfuncs.h (LTI_synchronize): New libfunc_index.
5720         (synchronize_libfunc): Declare.
5721         * builtins.c (expand_builtin_synchronize): Consider using
5722         synchronize_libfunc before falling back on an asm blockage.
5723         * config/mips/mips.c: Include libfuncs.h
5724         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
5725
5726 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
5727
5728         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
5729         parameter.  Copy stack_reg to r11 where appropriate.
5730         (no_global_regs_above): Add gpr parameter.
5731         (rs6000_stack_info): Only add padding for SPE save area if we
5732         are saving SPE GPRs and CR.
5733         (saveres_routine_syms): New variable.
5734         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
5735         Define.
5736         (rs6000_savres_routine_sym): New function.
5737         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
5738         split out of...
5739         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
5740         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
5741         Tweak FPR out-of-line saving.
5742         (rs6000_make_savres_rtx): New function.
5743         (rs6000_use_multiple_p): New function.
5744         (rs6000_savres_strategy): New function.
5745         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
5746         out-of-line if appropriate.
5747         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
5748         if we are optimizing for size.
5749         (GP_SAVE_INLINE): Define.
5750         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
5751         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
5752         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
5753         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
5754         (*save_fpregs_<mode>): Add use of r11.
5755         (*restore_gpregs_<mode>): New insn.
5756         (*return_and_restore_gpregs_<mode>): New insn.
5757         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
5758         use r11.
5759         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
5760         (*restore_gpregs_spe): New insn.
5761         (*return_and_restore_gpregs_spe): New insn.
5762         * config/rs6000/predicates.md (save_world_operation): Fix check.
5763
5764 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
5765
5766         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
5767         this point, so assert that.
5768
5769 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
5770
5771         * cfganal.c: Include vec.h and vecprim.h.
5772         (compute_idf): Import from...
5773         * tree-into-ssa (compute_idf): ...here.
5774         * basic-block.h (compute_idf): Export.
5775
5776 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
5777
5778         * c-decl.c (merge_decls): Use !current_function_decl to check for
5779         extern declaration of C99 inline function being at file scope.
5780
5781 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
5782
5783         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
5784
5785 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5786
5787         * alias.c (record_alias_subset, init_alias_analysis): Fix
5788         -Wc++-compat and/or -Wcast-qual warnings.
5789         * attribs.c (lookup_attribute_spec): Likewise.
5790         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
5791         copy_bb, connect_traces,
5792         find_rarely_executed_basic_blocks_and_cr): Likewise.
5793         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
5794         note_btr_set, migrate_btr_defs): Likewise.
5795         * builtins.c (result_vector, expand_builtin_memcpy,
5796         expand_builtin_mempcpy_args, expand_builtin_strncpy,
5797         builtin_memset_read_str, expand_builtin_printf,
5798         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
5799         Likewise.
5800         * caller-save.c (mark_set_regs): Likewise.
5801         * calls.c (expand_call, emit_library_call_value_1): Likewise.
5802         * cgraph.c (cgraph_edge): Likewise.
5803         * combine.c (likely_spilled_retval_1): Likewise.
5804         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
5805         htab_counts_entry_del, get_coverage_counts): Likewise.
5806         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
5807         new_cselib_val): Likewise.
5808         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
5809         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
5810         Likewise.
5811         * df-core.c (df_compact_blocks): Likewise.
5812         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
5813         * df-scan.c (df_grow_reg_info, df_ref_create,
5814         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
5815         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
5816         df_record_entry_block_defs, df_record_exit_block_uses,
5817         df_bb_verify): Likewise.
5818         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
5819         DF_REF_EXTRACT_MODE_CONST): New.
5820         * dominance.c (get_immediate_dominator, get_dominated_by,
5821         nearest_common_dominator, root_of_dom_tree,
5822         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
5823         -Wc++-compat and/or -Wcast-qual warnings.
5824         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
5825         record_store, replace_read, check_mem_read_rtx, scan_insn,
5826         dse_step1, dse_record_singleton_alias_set): Likewise.
5827         * dwarf2asm.c (dw2_force_const_mem): Likewise.
5828
5829 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5830
5831         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
5832         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
5833         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
5834         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
5835         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
5836         add_ranges_num, add_ranges_by_labels, file_info_cmp,
5837         file_name_acquire, output_file_names, add_const_value_attribute,
5838         premark_used_types_helper, file_table_eq, file_table_hash,
5839         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
5840         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
5841         -Wcast-qual warnings.
5842         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
5843         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
5844         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
5845         gen_reg_rtx, start_sequence, init_emit): Likewise.
5846         * et-forest.c (et_new_occ, et_new_tree): Likewise.
5847         * except.c (init_eh_for_function, gen_eh_region,
5848         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
5849         arh_to_landing_pad, arh_to_label, add_action_record,
5850         add_call_site, switch_to_exception_section): Likewise.
5851         * expmed.c (synth_mult): Likewise.
5852         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
5853         store_expr): Likewise.
5854         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
5855         Likewise.
5856         * function.c (assign_stack_temp_for_type,
5857         allocate_struct_function, match_asm_constraints_1): Likewise.
5858         * gcov-io.c (gcov_allocate): Likewise.
5859         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
5860         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
5861         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
5862         record_one_set, insert_expr_in_table, insert_set_in_table,
5863         dump_hash_table, compute_hash_table_work, alloc_hash_table,
5864         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
5865         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
5866         -Wcast-qual warnings.
5867
5868 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5869
5870         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
5871         -Wcast-qual warnings.
5872         * gcc.c (process_command): Likewise.
5873         * genattrtab.c (oballoc): Use XOBNEW.
5874         (oballocvec): Define.
5875         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
5876         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
5877         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
5878         -Wc++-compat and/or -Wcast-qual warnings.
5879         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
5880         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
5881         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
5882         gen_presence_absence_set, gen_automaton, gen_regexp_el,
5883         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
5884         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
5885         add_excls, process_presence_absence_names,
5886         process_presence_absence_patterns, add_presence_absence,
5887         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
5888         get_free_state, add_arc, get_free_automata_list_el,
5889         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
5890         transform_3, cache_presence, create_ainsns, create_automata,
5891         create_state_ainsn_table, dfa_insn_code_enlarge,
5892         output_trans_func, output_min_issue_delay_func,
5893         output_dead_lock_func, output_reset_func,
5894         output_get_cpu_unit_code_func, output_dfa_start_func,
5895         expand_automata): Likewise.
5896         * genextract.c (gen_insn): Likewise.
5897         * gengtype-lex.l: Likewise.
5898         * gengtype.c (read_input_list, adjust_field_type,
5899         process_gc_options): Likewise.
5900         * genoutput.c (note_constraint): Likewise.
5901         * genpreds.c (mangle, add_constraint): Likewise.
5902         * genrecog.c (process_define_predicate, new_decision,
5903         add_to_sequence): Likewise.
5904         * gensupport.c (record_insn_name): Likewise.
5905
5906 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5907
5908         * config/i386/driver-i386.c (detect_caches_amd,
5909         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
5910         and/or -Wcast-qual warnings.
5911         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
5912         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
5913         gt_pch_save): Likewise.
5914         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
5915         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
5916         * global.c (compute_regsets): Likewise.
5917         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
5918         finish_graph_dump_file): Likewise.
5919         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
5920         unlink_bb_notes): Likewise.
5921         * integrate.c (get_hard_reg_initial_val): Likewise.
5922         * ipa-prop.c (ipa_push_func_to_list): Likewise.
5923         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
5924         * local-alloc.c (update_equiv_regs): Likewise.
5925         * loop-invariant.c (check_invariant_table_size,
5926         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
5927         Likewise.
5928         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
5929         altered_reg_used, mark_altered): Likewise.
5930         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
5931         insert_var_expansion_initialization,
5932         combine_var_copies_in_loop_exit, apply_opt_in_copies,
5933         release_var_copies): Likewise.
5934         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
5935         analyze_matrix_decl, add_allocation_site, analyze_transpose,
5936         analyze_accesses_for_phi_node, check_var_notmodified_p,
5937         check_allocation_function, find_sites_in_func,
5938         record_all_accesses_in_func, transform_access_sites,
5939         transform_allocation_sites): Likewise.
5940         * omp-low.c (new_omp_region, create_omp_child_function_name,
5941         check_omp_nesting_restrictions, check_combined_parallel,
5942         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
5943         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
5944         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
5945         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
5946         Likewise.
5947         * opts-common.c (prune_options): Likewise.
5948         * opts.c (add_input_filename, print_filtered_help,
5949         get_option_state): Likewise.
5950         * params.c (add_params): Likewise.
5951         * passes.c (set_pass_for_id, next_pass_1,
5952         do_per_function_toporder, pass_fini_dump_file): Likewise.
5953         * postreload.c (reload_cse_simplify_operands): Likewise.
5954         * predict.c (tree_predicted_by_p, tree_predict_edge,
5955         clear_bb_predictions, combine_predictions_for_bb): Likewise.
5956
5957 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5958
5959         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
5960         warnings.
5961         * recog.c (check_asm_operands, validate_change_1): Likewise.
5962         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
5963         subst_asm_stack_regs): Likewise.
5964         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
5965         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
5966         * regmove.c (reg_is_remote_constant_p): Likewise.
5967         * regrename.c (regrename_optimize, scan_rtx_reg,
5968         kill_clobbered_value, kill_set_value, kill_autoinc_value):
5969         Likewise.
5970         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
5971         regstat_compute_calls_crossed): Likewise.
5972         * reload1.c (init_reload, new_insn_chain,
5973         has_nonexceptional_receiver, reload, copy_reloads,
5974         calculate_needs_all_insns, init_elim_table): Likewise.
5975         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
5976         * rtl.c (shallow_copy_rtx_stat): Likewise.
5977         * rtlanal.c (parms_set): Likewise.
5978         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
5979         sbitmap_resize, sbitmap_vector_alloc): Likewise.
5980         * sched-ebb.c (earliest_block_with_similiar_load,
5981         add_deps_for_risky_insns): Likewise.
5982         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
5983         schedule_region): Likewise.
5984         * see.c (eq_descriptor_pre_extension,
5985         hash_descriptor_pre_extension, hash_del_pre_extension,
5986         eq_descriptor_properties, hash_descriptor_properties,
5987         hash_del_properties, see_seek_pre_extension_expr,
5988         see_initialize_data_structures, see_print_register_properties,
5989         see_print_pre_extension_expr, see_delete_merged_def_extension,
5990         see_delete_unmerged_def_extension, see_emit_use_extension,
5991         see_pre_delete_extension, see_map_extension, see_commit_changes,
5992         see_analyze_merged_def_local_prop,
5993         see_analyze_merged_def_local_prop,
5994         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
5995         see_set_prop_merged_def, see_set_prop_unmerged_def,
5996         see_set_prop_unmerged_use, see_print_one_extension,
5997         see_merge_one_use_extension, see_merge_one_def_extension,
5998         see_store_reference_and_extension, see_update_uses_relevancy,
5999         see_update_defs_relevancy): Likewise.
6000         * statistics.c (hash_statistics_hash, hash_statistics_eq,
6001         hash_statistics_free, curr_statistics_hash): Likewise.
6002         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
6003         expand_asm_operands, expand_return, case_bit_test_cmp,
6004         expand_case): Likewise.
6005         * stor-layout.c (start_record_layout): Likewise.
6006         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
6007         gt_pch_save_stringpool): Likewise.
6008         * tree-data-ref.c (hash_stmt_vertex_info,
6009         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
6010         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
6011
6012 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
6013
6014         PR target/36627
6015         * config/i386/i386.md : Change constraints of HImode and QImode
6016         immediate operands from "i" to "n".  Change SImode "ni" constraint to
6017         "i" and SImode "rmi" constraint to "g".  Remove all constraints
6018         from const0_operand and const1_operand predicated operands.
6019         (i): Change QImode and HImode attribute from "i" to "n".
6020         (*subqi_2): Change HImode operands to QImode.
6021         (*subqi_3): Ditto.
6022
6023 2008-06-25  Olivier Hainque  <hainque@adacore.com>
6024
6025         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
6026         sed substitutions.
6027
6028 2008-06-25  Richard Guenther  <rguenther@suse.de>
6029
6030         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
6031         not overflow the result type.
6032
6033 2008-06-25  Richard Guenther  <rguenther@suse.de>
6034
6035         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
6036         (vn_lookup): Likewise.
6037
6038 2008-06-25  Richard Guenther  <rguenther@suse.de>
6039
6040         PR tree-optimization/35518
6041         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
6042         * tree-sra.c (instantiate_element): Use fold_build3 to build
6043         BIT_FIELD_REFs.
6044         (try_instantiate_multiple_fields): Likewise.
6045
6046 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6047
6048         * config/rs6000/rs6000.md: Change all string instruction's clobber to
6049         be early clobbers.
6050
6051 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6052
6053         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
6054         use_backchain_to_restore_sp to true
6055         if the offset of the link register save area would go over the 32k - 1
6056         offset limit of the load
6057         instructions.
6058
6059 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
6060
6061         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
6062         anchor for the type-punning blurb.  Cross-reference "Structures
6063         unions enumerations and bit-fields implementation".  Provide a
6064         cast-through-pointer example.  Make final sentence self-contained.
6065         * doc/implement-c.texi (Structures unions enumerations and
6066         bit-fields implementation): Cross-reference the type-punning blurb
6067         in the -fstrict-aliasing documentation.
6068
6069 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6070
6071         PR middle-end/36594
6072         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
6073         the memory instead of the memory itself for the save area.
6074
6075 2008-06-24  Olivier Hainque  <hainque@adacore.com>
6076             Nicolas Roche  <roche@adacore.com>
6077
6078         * gengtype.c (srcdir_len): size_t instead of int.
6079         (get_file_realbasename): New function.  For F a filename, the real
6080         basename of F, with all the path components stripped.
6081         (get_file_srcdir_relative_path): New function.  For F a filename, the
6082         relative path to F from $(srcdir).
6083         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
6084         get_file_realbasename.  Adjust the head comment.
6085         (get_prefix_langdir_index): New function. For F a filename, return the
6086         lang_dir_names[] relative index of the language directory that is
6087         a prefix in F.
6088         (get_file_langdir): For F a filename, return the name of the language
6089         directory where F is located.
6090         (get_file_gtfilename): New function. The gt- output file name for an
6091         input filename F.
6092         (get_output_file_with_visibility): Replace in-line computations with
6093         uses of get_file_gtfilename and get_prefix_langdir_index.
6094         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
6095
6096 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
6097
6098         PR tree-optimization/36504
6099         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
6100         references without base address.
6101
6102 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
6103
6104         PR middle-end/36584
6105         * calls.c (expand_call): Increase alignment for recursive functions.
6106
6107 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
6108
6109         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
6110         (TARGET_FUNCTION_VALUE): New define.
6111         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
6112         * config/avr/avr.h (FUNCTION_VALUE): Remove.
6113
6114 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
6115
6116         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
6117         (fmod<mode>3): Ditto.
6118         (remainderxf3): Ditto.
6119         (remainder<mode>3): Ditto.
6120
6121 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
6122
6123         PR target/36533
6124         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
6125         REG is a hard register.
6126
6127         PR tree-optimization/36508
6128         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
6129         499, don't check it at all in release compilers.
6130
6131 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
6132
6133         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
6134         together with SSE_TARGET_MATH to disable insn pattern.
6135         (*fop_<MODEF:mode>_2_i387): Ditto.
6136         (*fop_<MODEF:mode>_3_i387): Ditto.
6137
6138 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
6139
6140         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
6141
6142 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6143
6144         PR middle-end/34906
6145         * gimplify.c (gimplify_asm_expr): Check the return code of
6146         parse_output_constraint call, set function return and is_inout
6147         value if it failed.
6148
6149 2008-06-22  Ian Lance Taylor  <iant@google.com>
6150
6151         * c-lex.c (narrowest_unsigned_type): Change itk to int.
6152         (narrowest_signed_type): Likewise.
6153         * c-typeck.c (c_common_type): Change local variable mclass to enum
6154         mode_class, twice.
6155         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
6156         tcc_comparison, not the tree code itself.
6157         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
6158         (c_expand_expr): Cast modifier to enum expand_modifier.
6159         * c-common.h (C_RID_CODE): Add casts.
6160         (C_SET_RID_CODE): Define.
6161         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
6162         (c_lex_one_token): Add cast to avoid warning.
6163         (c_parser_objc_type_name): Rename local typename to type_name.
6164         (check_no_duplicate_clause): Change code parameter to enum
6165         omp_clause_code.
6166         (c_parser_omp_var_list_parens): Change kind parameter to enum
6167         omp_clause_code.
6168         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
6169         c_parser_omp_list_var_parens.
6170         (c_parser_omp_threadprivate): Likewise.
6171         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
6172         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
6173         * c-format.c (NO_FMT): Define.
6174         (printf_length_specs): Use NO_FMT.
6175         (asm_fprintf_length_specs): Likewise.
6176         (gcc_diag_length_specs): Likewise.
6177         (scanf_length_specs): Likewise.
6178         (strfmon_length_specs): Likewise.
6179         (gcc_gfc_length_specs): Likewise.
6180         (printf_flag_specs): Change 0 to STD_C89.
6181         (asm_fprintf_flag_specs): Likewise.
6182         (gcc_diag_flag_specs): Likewise.
6183         (gcc_cxxdiag_flag_specs): Likewise.
6184         (scanf_flag_specs): Likewise.
6185         (strftime_flag_specs): Likewise.
6186         (strfmon_flag_specs): Likewise.
6187         (print_char_table): Likewise.
6188         (asm_fprintf_char_table): Likewise.
6189         (gcc_diag_char_table): Likewise.
6190         (gcc_tdiag_char_table): Likewise.
6191         (gcc_cdiag_char_table): Likewise.
6192         (gcc_cxxdiag_char_table): Likewise.
6193         (gcc_gfc_char_table): Likewise.
6194         (scan_char_table): Likewise.
6195         (time_char_table): Likewis.
6196         (monetary_char_table): Likewise.
6197         * c-format.h (BADLEN): Likewise.
6198
6199 2008-06-21  Ian Lance Taylor  <iant@google.com>
6200
6201         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
6202         Define END_OF_BASE_TREE_CODES around inclusion.
6203         * tree.c (tree_code_type): New global array.
6204         (tree_code_length, tree_code_name): Likewise.
6205         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
6206         $(lang_tree_files).
6207         (all-tree.def, s-alltree): New targets.
6208         (gencheck.h, s-gencheck): Remove.
6209         (tree.o): Depend upon all-tree.def.
6210         (build/gencheck.o): Remove gencheck.h dependency.
6211         (mostlyclean): Don't remove gencheck.h.
6212         * c-common.h (enum c_tree_code): Remove.
6213         * c-lang.c (tree_code_type): Remove.
6214         (tree_code_length, tree_code_name): Remove.
6215         * gencheck.c (tree_codes): Include all-tree.def, rather than
6216         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
6217         after it is used.
6218         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
6219         than tree.def.
6220         * cp/cp-tree.h (enum cplus_tree_code): Remove.
6221         (operator_name_info): Size to MAX_TREE_CODES.
6222         (assignment_operator_name_info): Likewise.
6223         * cp/cp-lang.c (tree_code_type): Remove.
6224         (tree_code_length, tree_code_name): Remove.
6225         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
6226         (assignment_operator_name_info): Likewise.
6227         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
6228         MAX_TREE_CODES.
6229         * cp/mangle.c (write_expression): Likewise.
6230         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
6231         * fortran/f95-lang.c (tree_code_type): Remove.
6232         (tree_code_length, tree_code_name): Remove.
6233         * java/java-tree.h (enum java_tree_code): Remove.
6234         * java/lang.c (tree_code_type): Remove.
6235         (tree_code_length, tree_code_name): Remove.
6236         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
6237         * objc/objc-act.h (enum objc_tree_code): Remove.
6238         * objc/objc-lang.c (tree_code_type): Remove.
6239         (tree_code_length, tree_code_name): Remove.
6240         * objcp/objcp-lang.c (tree_code_type): Remove.
6241         (tree_code_length, tree_code_name): Remove.
6242         * ada/ada-tree.h (enum gnat_tree_code): Remove.
6243         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
6244         * ada/misc.c (tree_code_type): Remove.
6245         (tree_code_length, tree_code_name): Remove.
6246
6247 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
6248
6249         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
6250         the grand_bitmap_obstack.
6251
6252 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6253
6254         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
6255         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
6256         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
6257         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
6258         move_stmt_r, new_label_mapper): Likewise.
6259         * tree-complex.c (cvc_lookup): Likewise.
6260         * tree-dfa.c (create_function_ann): Likewise.
6261         * tree-dump.c (dump_register): Likewise.
6262         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
6263         find_phi_replacement_condition): Likewise.
6264         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
6265         tree_function_versioning): Likewise.
6266         * tree-into-ssa.c (cmp_dfsnum): Likewise.
6267         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
6268         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
6269         get_nonlocal_debug_decl, convert_nonlocal_reference,
6270         convert_nonlocal_omp_clauses, get_local_debug_decl,
6271         convert_local_reference, convert_local_omp_clauses,
6272         convert_nl_goto_reference, convert_nl_goto_receiver,
6273         convert_tramp_reference, convert_call_expr): Likewise.
6274         * tree-outof-ssa.c (contains_tree_r): Likewise.
6275         * tree-parloops.c (reduction_phi, initialize_reductions,
6276         eliminate_local_variables_1, add_field_for_reduction,
6277         add_field_for_name, create_phi_for_local_result,
6278         create_call_for_reduction_1, create_loads_for_reductions,
6279         create_stores_for_reduction, create_loads_and_stores_for_name):
6280         Likewise.
6281         * tree-phinodes.c (allocate_phi_node): Likewise.
6282         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
6283         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
6284         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
6285         * tree-ssa-coalesce.c (compare_pairs): Likewise.
6286         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
6287         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
6288         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
6289         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
6290         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
6291         vn_nary_op_insert): Likewise.
6292         * tree-ssa.c (redirect_edge_var_map_add,
6293         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
6294         * tree-vectorizer.c (vectorize_loops): Likewise.
6295         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
6296         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
6297         tree_cons_stat, build1_stat, build_variant_type_copy,
6298         decl_init_priority_lookup, decl_fini_priority_lookup,
6299         decl_priority_info, decl_restrict_base_lookup,
6300         decl_restrict_base_insert, decl_debug_expr_lookup,
6301         decl_debug_expr_insert, decl_value_expr_lookup,
6302         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
6303         type_hash_add, get_file_function_name, tree_check_failed,
6304         tree_not_check_failed, tree_range_check_failed,
6305         omp_clause_range_check_failed, build_omp_clause,
6306         build_vl_exp_stat): Likewise.
6307         * value-prof.c (gimple_histogram_value,
6308         gimple_duplicate_stmt_histograms): Likewise.
6309         * var-tracking.c (attrs_list_insert, attrs_list_copy,
6310         unshare_variable, variable_union_info_cmp_pos, variable_union,
6311         dataflow_set_different_1, dataflow_set_different_2,
6312         vt_find_locations, variable_was_changed, set_variable_part,
6313         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
6314         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
6315         section_entry_hash, object_block_entry_eq,
6316         object_block_entry_hash, create_block_symbol,
6317         initialize_cold_section_name, default_function_rodata_section,
6318         strip_reg_name, set_user_assembler_name, const_desc_eq,
6319         build_constant_desc, output_constant_def, lookup_constant_def,
6320         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
6321         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
6322         default_internal_label): Likewise.
6323         * varray.c (varray_init, varray_grow): Likewise.
6324         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
6325
6326 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
6327
6328         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
6329         operators for "test" insn.  Macroize insn using SWI mode macro.
6330         (*jcc_fused_2): Ditto.
6331         (*jcc_fused_3): Macroize insn using SWI mode macro.
6332         (*jcc_fused_4): Ditto.
6333
6334 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
6335
6336         * tree-ssa-pre.c: Fix typo in comment.
6337         (init_antic, fini_antic): Add explicit funtions for
6338         initializing and deinitializing ANTIC and AVAIL sets.
6339         (create_expression_by_pieces): Fix typo in comment.
6340         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
6341         (execute_pre): Eventually dump details about ANTIC_IN.
6342
6343 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6344
6345         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
6346         * gcc.c (translate_options, init_spec, store_arg, read_specs,
6347         add_to_obstack, file_at_path, find_a_file, execute,
6348         add_preprocessor_option, add_assembler_option, add_linker_option,
6349         process_command, insert_wrapper, do_option_spec, do_self_spec,
6350         spec_path, do_spec_1, is_directory, main, used_arg,
6351         getenv_spec_function): Likewise.
6352         * tlink.c (symbol_hash_lookup, file_hash_lookup,
6353         demangled_hash_lookup, symbol_push, file_push, frob_extension):
6354         Likewise.
6355
6356 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
6357
6358         * doc/rtl.texi: Updated subreg section.
6359
6360 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
6361
6362         PR c++/36523
6363         * cgraphunit.c (cgraph_process_new_functions): Don't clear
6364         node->needed and node->reachable.
6365         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
6366         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
6367         (expand_task_call): Don't call expand_task_copyfn.
6368         (expand_task_copyfn): Renamed to...
6369         (finalize_task_copyfn): ... this.
6370
6371 2008-06-19  Jan Hubicka  <jh@suse.cz>
6372
6373         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
6374         clobbering framepointer.
6375
6376 2008-06-19  Jan Hubicka  <jh@suse.cz>
6377
6378         * tree-optimize.c (execute_early_local_optimizations): Set
6379         cgraph_state only at first invocation.
6380
6381 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6382
6383         * system.h (-Wc++-compat): Activate as a warning, no an error.
6384
6385 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
6386
6387         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
6388         instead of "#" in insn asm template.
6389         (*jcc_fused_2): Ditto.
6390
6391 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
6392
6393         * config/i386/i386.h (ix86_tune_indices)
6394         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
6395         (TARGET_FUSE_CMP_AND_BRANCH): New define.
6396         * config/i386/i386.md (*jcc_fused_1): New insn pattern
6397         (*jcc_fused_2): Ditto.
6398         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
6399         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
6400         (print operand): Handle 'E' and 'e' code.
6401
6402 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
6403
6404         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
6405         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
6406         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
6407
6408 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
6409
6410         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
6411         node->decl.
6412         (cgraph_expand_function): Use local copy of decl.
6413         (cgraph_expand_all_functions): Remove redundant initialization of
6414         order_pos.
6415         (cgraph_optimize): Reword internal_error message.
6416
6417 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
6418
6419         * arm-protos.h (arm_return_in_memory): Remove public
6420         arm_return_in_memory() prototype.
6421         * arm.c (arm_return_in_memory): Add static prototype, add target
6422         hook macro, change definition and comments.
6423         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
6424
6425 2008-06-19  Ben Elliston  <bje@au.ibm.com>
6426
6427         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
6428         real.c: Remove references to IEEE 754R.
6429         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
6430         * doc/libgcc.texi (Decimal float library routines): Likewise.
6431
6432 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6433
6434         * targhooks.h (struct gcc_target): New member unwind_word_mode.
6435         (default_unwind_word_mode): Add prototype.
6436         * targhooks.c (default_unwind_word_mode): New function.
6437         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
6438         instead of word_mode.
6439         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
6440         (TARGET_INITIALIZER): Use it.
6441
6442         * c-common.c (handle_mode_attribute): Support "unwind_word"
6443         mode attribute.
6444         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
6445
6446         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
6447         word_mode to access SjLj_Function_Context member "data".
6448         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
6449         conversion from targetm.eh_return_filter_mode () to
6450         targetm.unwind_word_mode () if they differ.
6451
6452         * builtin-types.def (BT_UNWINDWORD): New primitive type.
6453         (BT_FN_UNWINDWORD_PTR): New function type.
6454         (BT_FN_WORD_PTR): Remove.
6455         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
6456         * except.c (expand_builtin_extend_pointer): Convert pointer to
6457         targetm.unwind_word_mode () instead of word_mode.
6458
6459         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
6460         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
6461         (spu_unwind_word_mode): New function.
6462         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
6463         (TARGET_UNWIND_WORD_MODE): Define.
6464         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
6465
6466 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6467
6468         * config/spu/spu.c (reg_align): Remove.
6469         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
6470         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
6471         (spu_split_store): Likewise.
6472
6473 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
6474
6475         * gcc/tree-vn.c: Fix typo in comment.
6476
6477 2008-06-18  Jan Hubicka  <jh@suse.cz>
6478
6479         * cgraphunit.c (cgraph_optimize): Output debug info when doing
6480         toplevel reorder too.
6481
6482 2008-06-18  Jan Hubicka  <jh@suse.cz>
6483
6484         * c-opts.c (c_common_post_options): PCH is not compatible with
6485         no-unit-at-a-time.
6486         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
6487         -fno-toplevel-reorder by default now.
6488
6489 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6490
6491         PR documentation/30739
6492         * doc/install.texi (Prerequisites): Document dependency on awk.
6493
6494 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
6495             Ian Lance Taylor  <iant@google.com>
6496
6497         PR rtl-optimization/35604
6498         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
6499         only want to change jump destinations, not eventual label comparisons.
6500
6501 2008-06-16  Jan Hubicka  <jh@suse.cz>
6502
6503         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
6504         syntax errors.
6505         (cgraph_analyze_function): Likewise.
6506
6507 2008-06-16  Jan Hubicka  <jh@suse.cz>
6508
6509         * cgraph.h (cgraph_mark_if_needed): New function.
6510         * cgraphunit.c (cgraph_mark_if_needed): New function.
6511         * c-decl.c (duplicate_decl): Use it.
6512
6513 2008-06-16  Jan Hubicka  <jh@suse.cz>
6514
6515         * cgraph.c (cgraph_add_new_function): When in expansion state, do
6516         lowering.
6517
6518 2008-06-16  Jan Hubicka  <jh@suse.cz>
6519
6520         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
6521
6522 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
6523             Kazu Hirata  <kazu@codesourcery.com>
6524             Maxim Kuvyrkov  <maxim@codesourcery.com
6525
6526         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
6527         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
6528         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
6529         EXTRA_SPEC_FUNCTIONS.
6530         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
6531         (DRIVER_SELF_SPECS): Adjust.
6532         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
6533         * config/mips/st.h, config/mips/t-st: New.
6534         * config/mips/driver-native.c, config/mips/x-native: New.
6535         * doc/invoke.texi (MIPS): Document 'native' value for -march and
6536         -mtune options.
6537
6538 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
6539
6540         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
6541         from it.
6542         (ISA_HAS_FP_CONDMOVE): New macro.
6543         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
6544         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
6545         (ISA_HAS_NMADD3_NMSUB3): New macro.
6546         * config/mips/mips.c (mips_rtx_costs): Update.
6547         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
6548         compiling for ST Loongson 2E/2F.
6549         (madd<mode>): Rename to madd4<mode>.  Update.
6550         (madd3<mode>): New pattern.
6551         (msub<mode>): Rename to msub4<mode>.  Update.
6552         (msub3<mode>): New pattern.
6553         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
6554         (nmadd3<mode>): New pattern.
6555         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
6556         (nmadd3<mode>_fastmath): New pattern.
6557         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
6558         (nmsub3<mode>): New pattern.
6559         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
6560         (nmsub3<mode>_fastmath): New pattern.
6561         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
6562
6563 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
6564
6565         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
6566         (DF_REF_INSN_INFO): New.
6567         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
6568         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
6569         with a NULL DF_REF_INSN_INFO.
6570         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
6571         DF_INSN_SET.
6572         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
6573         DF_INSN_INFO_EQ_USES): New.
6574         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
6575         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
6576         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
6577         * df-core.c: Update comment for above changes.
6578         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
6579         DF_INSN_UID_* macros.
6580         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
6581         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
6582         insn rtx.  Update all callers.
6583         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
6584         df_ref_create_structure, df_insn_refs_collect): Likewise.
6585         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
6586         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
6587         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
6588         macros to access the insn refs.
6589         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
6590         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
6591         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
6592         for accessing the refs.
6593         (try_fwprop_subst): Likewise.
6594         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
6595         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
6596         for accessing the refs.
6597         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
6598         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
6599         to look at the insn refs.
6600         (record_uses): Likewise.
6601         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
6602         function anymore.
6603         (mark_artificial_uses): Don't mark_insn for artificial refs.
6604         (mark_reg_rependencies): Likewise.
6605
6606         * doc/rtl.texi: Remove documentation of ADDRESSOF.
6607
6608 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6609
6610         * configure: Regenerate.
6611
6612 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
6613
6614         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
6615         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6616         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6617
6618 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
6619
6620         * config/avr/avr.c (avr_mcu_t): Add attiny167.
6621         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6622         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6623
6624 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
6625
6626         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
6627         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6628         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6629
6630 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
6631
6632         * tree-ssa-sccvn.c: Fix format of comments.
6633
6634 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
6635
6636         * cgraph.c: Remove unneeded forward declarations of eq_node()
6637         and hash_node().
6638
6639 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
6640
6641         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
6642         REG_RETVAL notes.
6643         (see_update_relevancy): Likewise.
6644         * fwprop.c (try_fwprop_subst): Likewise.
6645         * rtlanal.c (noop_move_p): Likewise.
6646         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
6647         notes to non-existing libcall blocks.
6648         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
6649         Remove orig_set.
6650         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
6651         (dead_libcall_p): Remove.
6652         (delete_trivially_dead_insns): Don't use it.
6653         * web.c (union_defs): Remove comment about keeping nops.
6654         * gcse.c (hash_scan_insn): Don't take libcall pointers.
6655         (compute_hash_table_work): Don't track libcall notes.
6656         (do_local_cprop): Don't take libcall pointers.  Don't update
6657         libcall notes.
6658         (adjust_libcall_notes): Deleted.
6659         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
6660         ever have existed in the first place).
6661         (replace_store_insn): Don't try to remove libcall notes.
6662         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
6663         (resolve_reg_notes): Don't call them.
6664         (resolve_simple_move): Likewise.
6665         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
6666         Don't remove REG_RETVAL notes.
6667         * emit-rtl.c (try_split): Don't update libcall notes.
6668         (emit_copy_of_insn_after): Dito.
6669         * cselib.c (cselib_current_insn_in_libcall): Remove.
6670         (cselib_process_insn): Don't set/clear it.
6671         (new_elt_loc_list): Don't record it.
6672         (cselib_init): Don't initialize it.
6673         * cselib.c (struct elt_loc_list): Remove in_libcall field.
6674         * loop-invariant.c (find_invariant_insn): Don't look for libcall
6675         notes.
6676         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
6677         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
6678         (init_deps): Don't initialize it.
6679         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
6680         * combine.c (delete_noop_moves): Don't update libcall notes.
6681         (can_combine_p): Remove now pointless #if 0 block.
6682         (try_combine): Remove another obsolete #if 0 block.
6683         (distribute_notes): Don't distribute libcall notes.
6684         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
6685         * dce.c (libcall_dead_p): Remove.
6686         (delete_unmarked_insns): Don't handle libcall blocks.
6687         (preserve_libcall_for_dce): Remove.
6688         (prescan_insns_for_dce): Don't special-case libcall block insns.
6689         * reload1 (reload): Don't handle libcall notes.
6690         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
6691         documentation.
6692
6693 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
6694
6695         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
6696         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6697         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6698
6699 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
6700
6701         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
6702         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6703         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6704
6705 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6706
6707         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
6708
6709 2008-06-16  Ira Rosen  <irar@il.ibm.com>
6710
6711         PR tree-optimization/36493
6712         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
6713         the arguments list. Use VECTYPE to create vector pointer.
6714         (vectorizable_store): Fail if accesses through a pointer to vectype
6715         do not alias the original memory reference operands.
6716         Call vect_create_data_ref_ptr without the removed argument.
6717         (vectorizable_load): Likewise.
6718         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
6719         removed argument.
6720
6721 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
6722
6723         PR target/36336
6724         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
6725         reg_equiv_constant.
6726
6727 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
6728
6729         * config/mips/loongson2ef.md: New file.
6730         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
6731         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
6732         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
6733         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
6734         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
6735         and loongson_2f.
6736         (loongson2ef.md): New include.
6737         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
6738         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
6739         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
6740         (loongson_gt_<mode>, loongson_extract_halfword)
6741         (loongson_insert_halfword_0, loongson_insert_halfword_2)
6742         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
6743         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
6744         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
6745         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
6746         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
6747         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
6748         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
6749         (vec_interleave_low<mode>): Define type attribute.
6750         * config/mips/mips.c (mips_ls2): New static variable.
6751         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
6752         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
6753         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
6754         Implement target scheduling hooks.
6755         (mips_multipass_dfa_lookahead): Update to handle tuning for
6756         Loongson 2E/2F.
6757         (mips_sched_init): Initialize data for Loongson scheduling.
6758         (mips_ls2_variable_issue): New static function.
6759         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
6760         Add sanity check.
6761         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
6762         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
6763         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
6764         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
6765         Handle ST Loongson 2E/2F cores.
6766         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
6767
6768 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6769
6770         * omp-low.c (extract_omp_for_data): Fix comment typo.
6771         * c.opt: Fix typo.
6772
6773 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6774
6775         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
6776         FIXME note about gcc/config.guess.
6777         * doc/options.texi (Option file format): Remove non-ASCII bytes.
6778         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
6779         * doc/cppopts.texi: Likewise.
6780         * doc/extend.texi: Likewise.
6781         * doc/gcc.texi: Likewise.
6782         * doc/gccint.texi: Likewise.
6783         * doc/gcov.texi: Likewise.
6784         * doc/gty.texi: Likewise.
6785         * doc/hostconfig.texi: Likewise.
6786         * doc/install.texi: Likewise.
6787         * doc/invoke.texi: Likewise.
6788         * doc/loop.texi: Likewise.
6789         * doc/makefile.texi: Likewise.
6790         * doc/md.texi: Likewise.
6791         * doc/passes.texi: Likewise.
6792         * doc/tm.texi: Likewise.
6793         * doc/tree-ssa.texi: Likewise.
6794         * doc/trouble.texi: Likewise.
6795
6796 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
6797             Nathan Sidwell  <nathan@codesourcery.com>
6798             Maxim Kuvyrkov  <maxim@codesourcery.com>
6799             Richard Sandiford  <rdsandiford@googlemail.com>
6800
6801         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
6802         * config/mips/mips-protos.h (mips_expand_vector_init): New.
6803         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
6804         builtins.
6805         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
6806         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
6807         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
6808         V8QImode cases.
6809         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
6810         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
6811         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
6812         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
6813         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
6814         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
6815         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
6816         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
6817         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
6818         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
6819         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
6820         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
6821         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
6822         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
6823         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
6824         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
6825         (mips_builtins): Add Loongson builtins.
6826         (mips_loongson_2ef_bdesc): New.
6827         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
6828         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
6829         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
6830         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
6831         New.
6832         (mips_expand_vector_init): New.
6833         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
6834         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
6835         if appropriate.
6836         * config/mips/mips.md: Add unspec numbers for Loongson
6837         builtins.  Include loongson.md.
6838         (MOVE64): Include Loongson vector modes.
6839         (SPLITF): Include Loongson vector modes.
6840         (HALFMODE): Handle Loongson vector modes.
6841         * config/mips/loongson.md: New.
6842         * config/mips/loongson.h: New.
6843         * config.gcc: Add loongson.h header for mips*-*-* targets.
6844         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
6845
6846 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
6847
6848         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
6849         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
6850         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
6851         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
6852         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
6853         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
6854         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
6855         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
6856         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
6857         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
6858         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
6859         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
6860         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
6861         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
6862         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
6863         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
6864         Remove use_fixproto=yes.
6865         (ia64*-*-hpux*): Remove comment about using fixproto.
6866         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
6867
6868 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6869
6870         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
6871         library rebuilds.
6872         * configure: Regenerate.
6873
6874 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
6875
6876         PR middle-end/36520
6877         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
6878         before evaluating it.
6879
6880 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
6881
6882         PR c/36507
6883         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
6884         nested inline functions.
6885         (start_decl, start_function): Don't invert DECL_EXTERNAL
6886         for nested inline functions.
6887
6888 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
6889
6890         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
6891         splits that must be made for correctness.
6892
6893 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
6894
6895         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
6896         (AVAIL_NON_MIPS16): Likewise.
6897         (mips_builtin_description): Replace target_flags with a predicate.
6898         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
6899         (dspr2_32): New availability predicates.
6900         (MIPS_BUILTIN): New macro.
6901         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
6902         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
6903         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
6904         Replace the TARGET_FLAGS parameters with AVAIL parameters.
6905         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
6906         (mips_dsp_32only_bdesc): Merge into...
6907         (mips_builtins): ...this new array.
6908         (mips_bdesc_map, mips_bdesc_arrays): Delete.
6909         (mips_init_builtins): Update after above changes.
6910         (mips_expand_builtin_1): Merge into...
6911         (mips_expand_builtin): ...here and update after above changes.
6912
6913 2008-06-12  Paul Brook  <paul@codesourcery.com>
6914
6915         * longlong.h (__arm__): Define count_leading_zeros.
6916         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
6917         (clzsi2, clzdi2): New functions.
6918         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
6919         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
6920         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
6921         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
6922         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
6923         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
6924         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
6925         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
6926         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
6927         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
6928
6929 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
6930
6931         * config/m68k/m68k.c (m68k_tune_flags): New.
6932         (override_options): Compute m68k_tune_flags.
6933         (MULL_COST, MULW_COST): Update for various variants of CFV2.
6934         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
6935
6936 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
6937
6938         PR middle-end/36506
6939         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
6940
6941 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
6942
6943         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
6944         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
6945
6946 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
6947
6948         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
6949         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
6950
6951 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
6952
6953         PR middle-end/36506
6954         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
6955         reductions.
6956
6957 2008-06-12  Richard Guenther  <rguenther@suse.de>
6958
6959         PR tree-optimization/36345
6960         * tree-flow.h (struct ptr_info_def): Align escape_mask,
6961         add memory_tag_needed flag.
6962         (may_alias_p): Declare.
6963         * tree-ssa-alias.c (may_alias_p): Export.
6964         (set_initial_properties): Use memory_tag_needed flag.
6965         (update_reference_counts): Likewise.
6966         (reset_alias_info): Reset memory_tag_needed flag.
6967         (create_name_tags): Check memory_tag_needed flag.
6968         (dump_points_to_info_for): Dump it.
6969         * tree-ssa-structalias.c (struct variable_info): Remove
6970         directly_dereferenced flag.
6971         (new_var_info): Do not initialize it.
6972         (process_constraint_1): Do not set it.
6973         (update_alias_info): Set is_dereferenced flag.
6974         (set_uids_in_ptset): Use may_alias_p.
6975         (set_used_smts): Check memory_tag_needed flag.
6976         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
6977         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
6978         memory_tag_needed flag.
6979         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
6980         from broken design.
6981
6982 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
6983
6984         * config/i386/i386.c (ix86_compute_frame_layout): Disable
6985         red zone for w64 abi.
6986         (ix86_expand_prologue): Likewise.
6987         (ix86_force_to_memory): Likewise.
6988         (ix86_free_from_memory): Likewise.
6989
6990 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
6991
6992         PR target/36425
6993         * config/rs6000/rs6000.c (rs6000_override_options): Set
6994         rs6000_isel conditionally to the absence of comand line override.
6995         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
6996         Remove duplicate rs6000_isel setting.
6997         * config/rs6000/eabispe.h: Ditto.
6998
6999 2008-06-11  Richard Guenther  <rguenther@suse.de>
7000
7001         * alias.c (get_alias_set): Use the element alias-set for arrays.
7002         (record_component_aliases): For arrays and vectors do nothing.
7003         * c-common.c (strict_aliasing_warning): Handle the cases
7004         of alias set zero explicitly.
7005         * Makefile.in (dfp.o-warn): Add -Wno-error.
7006
7007 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
7008
7009         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
7010         tune_32 tune_64.
7011         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
7012         tune_32 tune_64 to supported_defaults.  Allow values not
7013         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
7014         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
7015         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
7016         with_cpu_64 to generic for 64-bit-supporting configurations, not
7017         with_cpu.  Remove FIXMEs.
7018         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
7019         --with-arch-64, --with-tune-32, --with-tune-64): Document.
7020         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
7021         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
7022         arch_32 and arch_64.
7023
7024 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
7025             Olivier Hainque  <hainque@adacore.com>
7026
7027         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
7028         Use DECL_SIZE_UNIT to retrieve the size of the field.
7029
7030 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
7031
7032         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
7033         with function calls after declarations.  Lay out
7034         neon_float_type_node before further use.
7035
7036 2008-06-11  Richard Guenther  <rguenther@suse.de>
7037
7038         * tree-flow.h (may_point_to_global_var): Declare.
7039         * tree-ssa-alias.c (may_point_to_global_var): New function.
7040         * tree-ssa-sink.c (is_hidden_global_store): Use it.
7041
7042 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
7043
7044         * configure.ac: Teach that fido supports .debug_line.
7045         * configure: Regenerate.
7046
7047 2008-06-10  Tom Tromey  <tromey@redhat.com>
7048
7049         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
7050         debug hook.
7051
7052 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
7053
7054         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
7055         (encode_decimal64, decode_decimal64, encode_decimal128,
7056         decode_decimal128): Reverse order of 32-bit parts of value if host
7057         and target endianness differ.
7058
7059 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
7060
7061         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
7062         Avoid division by 0.
7063         (tree_mod_pow2_value_transform): Likewise.
7064         (tree_ic_transform): Likewise.
7065         (tree_stringops_transform): Likewise.
7066         (tree_mod_subtract_transform): Likewise.
7067         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
7068         (copy_edges_for_bb): Likewise.
7069         (initialize_cfun): Likewise.
7070
7071 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
7072
7073         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
7074         nonmemory_operand. Add "N" operand constraint.
7075         (*btsi): Ditto.
7076         (*jcc_btdi_mask_rex64): New instruction and split pattern.
7077         (*jcc_btsi_mask): Ditto.
7078         (*jcc_btsi_mask_1): Ditto.
7079
7080 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
7081
7082         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
7083         TYPE_CANONICAL for copied element type.
7084
7085 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
7086
7087         PR target/36473
7088         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
7089         Add m_CORE2 and m_GENERIC.
7090         * config/i386/predicates.md (bt_comparison_operator): New predicate.
7091         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
7092         (*btsi): Ditto.
7093         (*jcc_btdi_rex64): New instruction and split pattern.
7094         (*jcc_btsi): Ditto.
7095         (*jcc_btsi_1): Ditto.
7096         (*btsq): Fix Intel asm dialect operand order.
7097         (*btrq): Ditto.
7098         (*btcq): Ditto.
7099
7100 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
7101
7102         PR middle-end/36447
7103         * simplify-rtx.c (simplify_subreg): Add check for shift count
7104         greater than size.
7105
7106 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
7107
7108         * doc/md.texi: Synchronize with later constraints.md change.
7109         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
7110         with a C implementation.
7111         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
7112         MFLO handling.
7113         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
7114         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
7115         when moving to and from MD_REGNUM.
7116         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
7117         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
7118         Handle byte and halfword moves.
7119         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
7120         separately.
7121         * config/mips/constraints.md (h): Turn into NO_REGS.
7122         (l, x): Update documentation.
7123         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
7124         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
7125         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
7126         (HILO): New mode iterator.
7127         (MOVE128): Add TI.
7128         (any_div): New code iterator.
7129         (u): Extend code attribute to div and udiv.
7130         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
7131         d_operand in the splitters.  Remove redundant CONST_INT checks.
7132         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
7133         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
7134         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
7135         accordingly, using normal moves instead of unspecs to move LO into
7136         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
7137         (<u>mulsidi3): Handle expansion in C code.
7138         (<u>mulsidi3_32bit_internal): Rename to...
7139         (<u>mulsidi3_32bit): ...this.
7140         (<u>mulsidi3_32bit_r4000): Fix insn separator.
7141         (*<u>mulsidi3_64bit): Rename to...
7142         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
7143         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
7144         to set LO and HI to the multiplication result.  Use a normal move
7145         for MFLO and an unspec for MFHI.
7146         (*<u>mulsidi3_64bit_parts): Replace with...
7147         (<u>mulsidi3_64bit_hilo): ...this new instruction.
7148         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
7149         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
7150         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
7151         instead of HI.  Split the instruction into a separate multiplication
7152         and MFHI if !TARGET_FIX_R4000.
7153         (<su>muldi3_highpart): Likewise.
7154         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
7155         and the "=h" clobber.
7156         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
7157         (<u>mulditi3): New expander.
7158         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
7159         (madsi): Remove "=h" clobber.
7160         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
7161         Force the modulus result to be a GPR and split the instruction into
7162         a division followed by an MFHI after reload.
7163         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
7164         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
7165         the MIPS16 HIGH define_split.
7166         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
7167         of acc<->gpr moves to "multi".
7168         (*movdi_64bit): Replace the single "x" alternative with
7169         alternatives for moving into and out of "a".
7170         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
7171         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
7172         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
7173         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
7174         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
7175         (movti): New expander.
7176         (*movti, *movti_mips16): New insns.
7177         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
7178         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
7179         (mthi<GPR:mode>_<HILO:mode>): Likewise.
7180         * config/mips/predicates.md (fpr_operand): Delete.
7181         (d_operand): New predicate.
7182
7183 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
7184
7185         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
7186         failure on some Bourne shells.
7187         (x86_64-*-*): Ditto.
7188
7189 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
7190
7191         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
7192
7193 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
7194
7195         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
7196         (sparc-sun-solaris2*): Likewise.
7197
7198 2008-06-09  Arnaud Charlet  <charlet@adacore.com
7199
7200         * doc/install.texi: Update requirements to build the Ada compiler.
7201
7202 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
7203
7204         * df-scan.c (struct df_scan_problem_data): Remove the
7205         mw_link_pool alloc pool.
7206         (df_scan_free_internal): Don't free it.
7207         (df_scan_alloc): Don't allocate it.
7208         * df.h (struct df_link): Update comment.
7209
7210 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
7211
7212         * except.h: Correct checks for when SJLJ exceptions must be used.
7213
7214 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7215
7216         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
7217         default.
7218
7219 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
7220
7221         PR tree-optimization/36218
7222         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
7223         configure for the build system.
7224         (BUILD_LDFLAGS): Define.
7225         * configure: Regenerate.
7226         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
7227
7228 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
7229
7230         PR target/36424
7231         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
7232         * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
7233         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
7234
7235 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
7236
7237         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
7238
7239 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
7240
7241         * config.gcc (Obsolete configurations): Remove list of
7242         configurations.
7243         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
7244         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
7245         targets matched by those patterns.
7246         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
7247         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
7248         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
7249         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
7250         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
7251         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
7252         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
7253         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
7254         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
7255         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
7256         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
7257         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
7258         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
7259         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
7260         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
7261         Make code for Solaris 7 and greater unconditional for Solaris.
7262         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
7263         Remove --with-* handling.
7264         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
7265         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
7266         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
7267         LINK_OS_WINDISS_SPEC): Remove.
7268         * config/rs6000/sysv4.opt (mwindiss): Remove.
7269         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
7270         * configure: Regenerate.
7271         * doc/cpp.texi: Don't mention BeOS.
7272         * doc/extend.texi (interrupt): Don't mention MS1.
7273         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
7274         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
7275         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
7276         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
7277         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
7278         Remove.
7279         * doc/invoke.texi (MT Options): Remove.
7280         (-mwindiss): Remove.
7281         (CRIS Options): Remove cris-axis-aout references.
7282         (HPPA Options): Don't mention hppa1.1-*-pro.
7283         * doc/md.texi: (MorphoTech family): Remove.
7284         * libgcc2.c: Don't handle UWIN.
7285         * config/alpha/t-unicosmk: Remove.
7286         * config/alpha/unicosmk.h: Remove.
7287         * config/arm/kaos-arm.h: Remove.
7288         * config/arm/kaos-strongarm.h: Remove.
7289         * config/arm/strongarm-coff.h: Remove.
7290         * config/arm/strongarm-elf.h: Remove.
7291         * config/arm/strongarm-pe.h: Remove.
7292         * config/arm/t-strongarm-pe: Remove.
7293         * config/arm/t-xscale-coff: Remove.
7294         * config/arm/t-xscale-elf: Remove.
7295         * config/arm/xscale-coff.h: Remove.
7296         * config/arm/xscale-elf.h: Remove.
7297         * config/chorus.h: Remove.
7298         * config/cris/aout.h: Remove.
7299         * config/cris/aout.opt: Remove.
7300         * config/cris/t-aout: Remove.
7301         * config/i386/beos-elf.h: Remove.
7302         * config/i386/kaos-i386.h: Remove.
7303         * config/i386/ptx4-i.h: Remove.
7304         * config/i386/sco5.h: Remove.
7305         * config/i386/sco5.opt: Remove.
7306         * config/i386/sysv4-cpp.h: Remove.
7307         * config/i386/sysv5.h: Remove.
7308         * config/i386/t-beos: Remove.
7309         * config/i386/t-sco5: Remove.
7310         * config/i386/t-uwin: Remove.
7311         * config/i386/uwin.asm: Remove.
7312         * config/i386/uwin.h: Remove.
7313         * config/kaos.h: Remove.
7314         * config/mips/windiss.h: Remove.
7315         * config/mt: Remove directory.
7316         * config/pa/pa-osf.h: Remove.
7317         * config/pa/pa-pro-end.h: Remove.
7318         * config/pa/t-pro: Remove.
7319         * config/ptx4.h: Remove.
7320         * config/rs6000/beos.h: Remove.
7321         * config/rs6000/kaos-ppc.h: Remove.
7322         * config/rs6000/t-beos: Remove.
7323         * config/rs6000/windiss.h: Remove.
7324         * config/sh/kaos-sh.h: Remove.
7325         * config/sol2-6.h: Remove.
7326         * config/sparc/sol26-sld.h: Remove.
7327         * config/sparc/sysv4-only.h: Remove.
7328         * config/vax/bsd.h: Remove.
7329         * config/vax/t-memfuncs: Remove.
7330         * config/vax/ultrix.h: Remove.
7331         * config/vax/vaxv.h: Remove.
7332         * config/windiss.h: Remove.
7333
7334 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
7335
7336         PR rtl-optimization/36438
7337         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
7338         for vector shifts with constant scalar shift operands.
7339
7340 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
7341
7342         * doc/invoke.texi: Document -march=xlr.
7343         * config/mips/xlr.md: New file.
7344         * config/mips/mips.md: Include it.
7345         (cpu): Add "xlr".
7346         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
7347         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
7348         (mips_rtx_cost_data): Likewise.
7349
7350 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
7351
7352         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
7353         PRE_INC and PRE_DEC cases.
7354
7355 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
7356
7357         PR rtl-optimization/36419
7358         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
7359         the emitting jump insn.
7360
7361         PR target/36362
7362         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
7363         is not bool, boolify the whole *expr_p and convert to the desired type.
7364
7365 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
7366
7367         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
7368         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
7369         Add omp_private_outer_ref hook, add another argument to
7370         omp_clause_default_ctor hook.
7371         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
7372         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
7373         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
7374         hook_tree_tree_tree_tree_null.
7375         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
7376         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
7377         * hooks.c (hook_tree_tree_tree_tree_null): New function.
7378         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
7379         * tree.def (OMP_TASK): New tree code.
7380         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
7381         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
7382         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
7383         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
7384         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
7385         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
7386         OMP_CLAUSE_COLLAPSE_EXPR): Define.
7387         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
7388         (OMP_DIRECTIVE_P): Add OMP_TASK.
7389         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
7390         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
7391         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
7392         and OMP_CLAUSE_UNTIED entries.
7393         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
7394         num_ops to 2.
7395         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
7396         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
7397         * tree-pretty-print.c (dump_omp_clause): Handle
7398         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
7399         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
7400         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
7401         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
7402         warning about unsigned iterators.  Change decl/init/cond/incr
7403         arguments to TREE_VECs, check arguments for all collapsed loops.
7404         (c_finish_omp_taskwait): New function.
7405         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
7406         ws_clauses.
7407         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
7408         default_function_array_conversion on init.  Add par_clauses argument.
7409         If decl is present in parallel's lastprivate clause, change it to
7410         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
7411         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
7412         collapse count in clauses.
7413         (c_parser_omp_for, c_parser_omp_parallel): Adjust
7414         c_parser_omp_for_loop callers.
7415         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
7416         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
7417         (c_parser_omp_clause_name): Handle collapse and untied clauses.
7418         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
7419         functions.
7420         (c_parser_omp_clause_schedule): Handle schedule(auto).
7421         Include correct location in the error message.
7422         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
7423         and PRAGMA_OMP_CLAUSE_UNTIED.
7424         (OMP_TASK_CLAUSE_MASK): Define.
7425         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
7426         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
7427         * tree-nested.c (convert_nonlocal_omp_clauses,
7428         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
7429         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
7430         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
7431         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
7432         OMP_CLAUSE_DECL.
7433         (conver_nonlocal_reference, convert_local_reference,
7434         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
7435         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
7436         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
7437         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
7438         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
7439         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
7440         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
7441         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
7442         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
7443         OMP_CLAUSE_UNTIED.
7444         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
7445         * c-common.h (c_finish_omp_taskwait): New prototype.
7446         * gimple-low.c (lower_stmt): Handle OMP_TASK.
7447         * tree-parloops.c (create_parallel_loop): Create 1 entry
7448         vectors for OMP_FOR_{INIT,COND,INCR}.
7449         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
7450         (make_edges): Handle OMP_TASK.
7451         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
7452         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
7453         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
7454         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
7455         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
7456         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
7457         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
7458         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
7459         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
7460         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
7461         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
7462         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
7463         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
7464         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
7465         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
7466         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
7467         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
7468         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
7469         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
7470         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
7471         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
7472         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
7473         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
7474         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
7475         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
7476         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
7477         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
7478         original iterator is present in lastprivate clause or if
7479         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
7480         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
7481         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
7482         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
7483         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
7484         if it is set, lookup var in outer contexts too.  Handle
7485         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
7486         to be implicitly determined firstprivate for task regions.
7487         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
7488         if it is set, lookup var in outer contexts too.  Set
7489         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
7490         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
7491         OMP_CLAUSE_UNTIED.  Take region_type as last argument
7492         instead of in_parallel and in_combined_parallel.
7493         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
7494         Adjust callers.
7495         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
7496         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
7497         (new_omp_context): Set default_kind to
7498         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
7499         (omp_region_type): New enum.
7500         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
7501         fields, add region_type.
7502         (new_omp_context): Take region_type as argument instead of is_parallel
7503         and is_combined_parallel.
7504         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
7505         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
7506         ctx->is_combined_parallel checks.
7507         (gimplify_omp_task): New function.
7508         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
7509         OMP_CLAUSE_UNTIED.
7510         * omp-low.c (extract_omp_for_data): Use schedule(static)
7511         for schedule(auto).  Handle pointer and unsigned iterators.
7512         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
7513         Add loops argument.  Extract data for collapsed OMP_FOR loops.
7514         (expand_parallel_call): Assert sched_kind isn't auto,
7515         map runtime schedule to index 3.
7516         (struct omp_for_data_loop): New type.
7517         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
7518         Add loop, loops, collapse and iter_type fields.
7519         (workshare_safe_to_combine_p): Disallow combined for if
7520         iter_type is unsigned long long.  Don't combine collapse > 1 loops
7521         unless all bounds and steps are constant.  Adjust extract_omp_for_data
7522         caller.
7523         (expand_omp_for_generic): Handle pointer, unsigned and long long
7524         iterators.  Handle collapsed OMP_FOR loops.  Adjust
7525         for struct omp_for_data changes.  If libgomp function doesn't return
7526         boolean_type_node, add comparison of the return value with 0.
7527         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
7528         pointer, unsigned and long long iterators.  Adjust for struct
7529         omp_for_data changes.
7530         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
7531         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
7532         unsigned long long.  Allocate loops array, pass it to
7533         extract_omp_for_data.  For collapse > 1 loops use always
7534         expand_omp_for_generic.
7535         (omp_context): Add sfield_map and srecord_type fields.
7536         (is_task_ctx, lookup_sfield): New functions.
7537         (use_pointer_for_field): Use is_task_ctx helper.  Change first
7538         argument's type from const_tree to tree.  Clarify comment.
7539         In OMP_TASK disallow copy-in/out sharing.
7540         (build_sender_ref): Call lookup_sfield instead of lookup_field.
7541         (install_var_field): Add mask argument.  Populate both record_type
7542         and srecord_type if needed.
7543         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
7544         in srecord_type.
7545         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
7546         and DECL_FIELD_OFFSET.
7547         (scan_sharing_clauses): Adjust install_var_field callers.  For
7548         firstprivate clauses on explicit tasks allocate the var by value in
7549         record_type unconditionally, rather than by reference.
7550         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
7551         Use is_taskreg_ctx instead of is_parallel_ctx.
7552         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
7553         (create_omp_child_function_name): Add task_copy argument, use
7554         *_omp_cpyfn* names if it is true.
7555         (create_omp_child_function): Add task_copy argument, if true create
7556         *_omp_cpyfn* helper function.
7557         (scan_omp_parallel): Adjust create_omp_child_function callers.
7558         Rename parallel_nesting_level to taskreg_nesting_level.
7559         (scan_omp_task): New function.
7560         (lower_rec_input_clauses): Don't run constructors for firstprivate
7561         explicit task vars which are initialized by *_omp_cpyfn*.
7562         Pass outer var ref to omp_clause_default_ctor hook if
7563         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
7564         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
7565         OMP_CLAUSE_REDUCTION_INIT.
7566         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
7567         avoid duplicate setting of fields.  Handle
7568         OMP_CLAUSE_PRIVATE_OUTER_REF.
7569         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
7570         copy-out if TREE_READONLY, only copy-in.
7571         (expand_task_copyfn): New function.
7572         (expand_task_call): New function.
7573         (struct omp_taskcopy_context): New type.
7574         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
7575         New functions.
7576         (lower_omp_parallel): Rename to...
7577         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
7578         Call create_task_copyfn if srecord_type is needed.  Adjust
7579         sender_decl type.
7580         (task_shared_vars): New variable.
7581         (check_omp_nesting_restrictions): Warn if work-sharing,
7582         barrier, master or ordered region is closely nested inside OMP_TASK.
7583         Add warnings for barrier if closely nested inside of work-sharing,
7584         ordered, or master region.
7585         (scan_omp_1): Call check_omp_nesting_restrictions even for
7586         GOMP_barrier calls.  Rename parallel_nesting_level to
7587         taskreg_nesting_level.  Handle OMP_TASK.
7588         (lower_lastprivate_clauses): Even if some lastprivate is found on a
7589         work-sharing construct, continue looking for them on parent parallel
7590         construct.
7591         (lower_omp_for_lastprivate): Add lastprivate clauses
7592         to the beginning of dlist rather than end.  Adjust for struct
7593         omp_for_data changes.
7594         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
7595         not after it.  Handle collapsed OMP_FOR loops, adjust for
7596         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
7597         (get_ws_args_for): Adjust extract_omp_for_data caller.
7598         (scan_omp_for): Handle collapsed OMP_FOR
7599         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
7600         (lower_omp_single_simple): If libgomp function doesn't return
7601         boolean_type_node, add comparison of the return value with 0.
7602         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
7603         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
7604         (parallel_nesting_level): Rename to...
7605         (taskreg_nesting_level): ... this.
7606         (is_taskreg_ctx): New function.
7607         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
7608         of is_parallel_ctx.
7609         (execute_lower_omp): Rename parallel_nesting_level to
7610         taskreg_nesting_level.
7611         (expand_omp_parallel): Rename to...
7612         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
7613         Call omp_task_call for OMP_TASK regions.
7614         (expand_omp): Adjust caller, handle OMP_TASK.
7615         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
7616
7617         * bitmap.c (bitmap_default_obstack_depth): New variable.
7618         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
7619         if argument is NULL and bitmap_default_obstack is already initialized.
7620         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
7621         at the end.
7622         * matrix-reorg.c (matrix_reorg): Likewise.
7623
7624 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
7625
7626         * config/i386/i386.md (*indirect_jump): Macroize using P
7627         mode iterator.  Remove !TARGET_64BIT from insn constraints.
7628         (*tablejump_1): Ditto.
7629         (*indirect_jump_rex64): Remove insn pattern.
7630         (*tablejump_1_rex64): Ditto.
7631         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
7632         and eh_return_si insn patterns.
7633
7634 2008-06-06  Richard Guenther  <rguenther@suse.de>
7635
7636         * tree-ssa-structalias.c (merge_smts_into): Remove.
7637         (find_what_p_points_to): Do not bother to compute the
7638         points-to set for pt_anything pointers.
7639         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
7640         for pt_anything pointers is ok.
7641
7642 2008-06-06  Jan Hubicka  <jh@suse.cz>
7643
7644         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
7645
7646 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7647
7648         * cgraph.c: Fix typos in comments.
7649         (cgraph_availability_names): Fix string typo.
7650         * fold-const.c: Fix typos in comments.
7651         (fold_binary): Fix typo in warning.
7652         * genautomata.c: Fix typos in comments.
7653         (check_presence_pattern_sets): Fix typo in local variable.
7654         (output_description): Fix typo in output.
7655         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
7656         * hwint.h: Likewise.
7657         * matrix-reorg.c (check_allocation_function): Likewise.
7658         * omega.c (smooth_weird_equations): Likewise.
7659         * auto-inc-dec.c: Fix typos in comments.
7660         * bb-reorder.c: Likewise.
7661         * builtins.c: Likewise.
7662         * c-common.c: Likewise.
7663         * c-cppbuiltin.c: Likewise.
7664         * c-parser.c: Likewise.
7665         * c-pretty-print.c: Likewise.
7666         * cfgcleanup.c: Likewise.
7667         * cfgexpand.c: Likewise.
7668         * cfghooks.c: Likewise.
7669         * cfglayout.c: Likewise.
7670         * cfgloopmanip.c: Likewise.
7671         * cgraphunit.c: Likewise.
7672         * coverage.c: Likewise.
7673         * dbxout.c: Likewise.
7674         * df-byte-scan.c: Likewise.
7675         * df-core.c: Likewise.
7676         * df-problems.c: Likewise.
7677         * df-scan.c: Likewise.
7678         * dfp.c: Likewise.
7679         * dominance.c: Likewise.
7680         * domwalk.c: Likewise.
7681         * dse.c: Likewise.
7682         * dwarf2out.c: Likewise.
7683         * emit-rtl.c: Likewise.
7684         * et-forest.c: Likewise.
7685         * function.c: Likewise.
7686         * function.h: Likewise.
7687         * gcc.c: Likewise.
7688         * gcov-io.c: Likewise.
7689         * gcov.c: Likewise.
7690         * gcse.c: Likewise.
7691         * genattrtab.c: Likewise.
7692         * ggc-page.c: Likewise.
7693         * gimplify.c: Likewise.
7694         * gthr-lynx.h: Likewise.
7695         * haifa-sched.c: Likewise.
7696         * ipa-cp.c: Likewise.
7697         * ipa-inline.c: Likewise.
7698         * ipa-prop.h: Likewise.
7699         * ipa-pure-const.c: Likewise.
7700         * ipa-struct-reorg.c: Likewise.
7701         * ipa-struct-reorg.h: Likewise.
7702         * ipa-type-escape.c: Likewise.
7703         * ipa.c: Likewise.
7704         * loop-doloop.c: Likewise.
7705         * mips-tfile.c: Likewise.
7706         * mkmap-flat.awk: Likewise.
7707         * mkmap-symver.awk: Likewise.
7708         * modulo-sched.c: Likewise.
7709         * omp-low.c: Likewise.
7710         * optabs.c: Likewise.
7711         * optabs.h: Likewise.
7712         * opts.c: Likewise.
7713         * passes.c: Likewise.
7714         * postreload-gcse.c: Likewise.
7715         * postreload.c: Likewise.
7716         * predict.c: Likewise.
7717         * pretty-print.h: Likewise.
7718         * profile.c: Likewise.
7719         * protoize.c: Likewise.
7720         * ra-conflict.c: Likewise.
7721         * real.c: Likewise.
7722         * recog.c: Likewise.
7723         * regclass.c: Likewise.
7724         * regs.h: Likewise.
7725         * reload.c: Likewise.
7726         * rtl-error.c: Likewise.
7727         * rtlanal.c: Likewise.
7728         * scan.h: Likewise.
7729         * sched-rgn.c: Likewise.
7730         * see.c: Likewise.
7731         * stmt.c: Likewise.
7732         * target.h: Likewise.
7733         * tree-dfa.c: Likewise.
7734         * tree-eh.c: Likewise.
7735         * tree-flow-inline.h: Likewise.
7736         * tree-inline.c: Likewise.
7737         * tree-into-ssa.c: Likewise.
7738         * tree-loop-distribution.c: Likewise.
7739         * tree-nested.c: Likewise.
7740         * tree-parloops.c: Likewise.
7741         * tree-pass.h: Likewise.
7742         * tree-pretty-print.c: Likewise.
7743         * tree-profile.c: Likewise.
7744         * tree-scalar-evolution.c: Likewise.
7745         * tree-sra.c: Likewise.
7746         * tree-ssa-alias-warnings.c: Likewise.
7747         * tree-ssa-ccp.c: Likewise.
7748         * tree-ssa-coalesce.c: Likewise.
7749         * tree-ssa-dom.c: Likewise.
7750         * tree-ssa-dse.c: Likewise.
7751         * tree-ssa-forwprop.c: Likewise.
7752         * tree-ssa-live.c: Likewise.
7753         * tree-ssa-live.h: Likewise.
7754         * tree-ssa-loop-im.c: Likewise.
7755         * tree-ssa-loop-ivopts.c: Likewise.
7756         * tree-ssa-loop-niter.c: Likewise.
7757         * tree-ssa-loop-prefetch.c: Likewise.
7758         * tree-ssa-phiopt.c: Likewise.
7759         * tree-ssa-phiprop.c: Likewise.
7760         * tree-ssa-sccvn.c: Likewise.
7761         * tree-ssa-ter.c: Likewise.
7762         * tree-ssa-threadupdate.c: Likewise.
7763         * tree-ssa.c: Likewise.
7764         * tree-vect-analyze.c: Likewise.
7765         * tree-vect-transform.c: Likewise.
7766         * tree-vectorizer.c: Likewise.
7767         * tree-vn.c: Likewise.
7768         * tree-vrp.c: Likewise.
7769         * tree.c: Likewise.
7770         * tree.def: Likewise.
7771         * tree.h: Likewise.
7772         * unwind-dw2-fde.c: Likewise.
7773         * unwind.inc: Likewise.
7774         * value-prof.c: Likewise.
7775         * vmsdbgout.c: Likewise.
7776
7777 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
7778
7779         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
7780         always place FP constants in the TOC for TARGET_POWERPC64.
7781         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
7782
7783 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
7784
7785         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
7786         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
7787         enable for TARGET_E500_DOUBLE.
7788         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
7789         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
7790         floating-point modes like integer modes for E500 double.
7791         (rs6000_legitimate_offset_address_p): Likewise.
7792         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
7793         addressing for DDmode for E500 double.
7794         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
7795         modes as using 64-bits of registers for E500 double.
7796         (spe_build_register_parallel): Do not handle DDmode or TDmode.
7797         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
7798         specially for E500 double.
7799         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
7800         TDmode for E500 double.
7801         (rs6000_gimplify_va_arg): Only handle SDmode in registers
7802         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
7803         (rs6000_split_multireg_move): Do not handle TDmode specially for
7804         E500 double.
7805         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
7806         using 64-bit registers for E500 double.
7807         (emit_frame_save): Do not handle DDmode specially for E500 double.
7808         (gen_frame_mem_offset): Likewise.
7809         (rs6000_function_value): Do not call spe_build_register_parallel
7810         for DDmode or TDmode.
7811         (rs6000_libcall_value): Likewise.
7812         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
7813         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
7814         for E500 double.
7815
7816 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
7817
7818         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
7819         in comments.
7820
7821 2008-06-04  Junjie Gu <jgu@tensilica.com>
7822
7823         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
7824         comparison for frame pointers.
7825
7826 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
7827
7828         PR target/27386
7829         * config/avr/avr.h (PUSH_ROUNDING): Remove.
7830
7831 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
7832
7833         PR target/30243
7834         * builtins.c (expand_builtin_signbit): Don't take lowpart when
7835         register is already smaller or equal to required mode.
7836
7837 2008-06-04  Xinliang David Li  <davidxl@google.com>
7838
7839         * tree-call-cdce.c: New file.
7840         (cond_dead_built_in_calls): New static variable.
7841         (input_domain): New struct.
7842         (check_pow): New function.
7843         (check_builtin_call): Ditto.
7844         (check_target_format): Ditto.
7845         (is_call_dce_candidate): Ditto.
7846         (gen_one_condition): Ditto.
7847         (gen_conditions_for_domain): Ditto.
7848         (get_domain): Ditto.
7849         (gen_conditions_for_pow_cst_base): Ditto.
7850         (gen_conditions_for_pow_int_base): Ditto.
7851         (gen_conditions_for_pow): Ditto.
7852         (get_no_error_domain): Ditto.
7853         (gen_shrink_wrap_conditions): Ditto.
7854         (shrink_wrap_one_built_in_call): Ditto.
7855         (shink_wrap_conditional_dead_built_in_calls): Ditto.
7856         (tree_call_cdce): Ditto.
7857         (gate_call_cdce): Ditto.
7858         (pass_call_cdce): New gimple pass.
7859         * passes.c: (init_optimization_passes): New pass.
7860         * tree-pass.h: New pass declaration.
7861         * opts.c (decode_options): New flag setting.
7862         * common.opt: Add -ftree-builtin-call-dce flag.
7863         * Makefile.in: Add new source file.
7864         * tempvar.def: New tv_id.
7865         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
7866
7867 2008-06-04  Richard Guenther  <rguenther@suse.de>
7868
7869         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
7870         (is_call_clobbered): Always check var_ann->call_clobbered.
7871         (mark_call_clobbered): Always set var_ann->call_clobbered.
7872         (clear_call_clobbered): Always clear var_ann->call_clobbered.
7873         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
7874         (reset_alias_info): Clear call clobbering info on MTAGs and
7875         globals as well.
7876         (set_pt_anything): Set pt_global_mem.
7877         (create_tag_raw): Adjust comment.
7878         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
7879
7880 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
7881             Maxim Kuvyrkov  <maxim@codesourcery.com>
7882
7883         * config/m68k/m68k.opt (mxgot): New option.
7884         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
7885         (m68k_output_addr_const_extra): New.
7886         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
7887         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
7888         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
7889         * doc/invoke.texi (M680x0 Options): Document -mxgot.
7890
7891 2008-06-04  Richard Guenther  <rguenther@suse.de>
7892
7893         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
7894         negative or non-representable offsets.
7895
7896 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
7897
7898         * config/i386/i386.c (ix86_gen_leave): New.
7899         (ix86_gen_pop1): Likewise.
7900         (ix86_gen_add3): Likewise.
7901         (ix86_gen_sub3): Likewise.
7902         (ix86_gen_sub3_carry): Likewise.
7903         (ix86_gen_one_cmpl2): Likewise.
7904         (ix86_gen_monitor): Likewise.
7905         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
7906         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
7907         ix86_gen_one_cmpl2 and ix86_gen_monitor.
7908         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
7909         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
7910         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
7911         (ix86_expand_epilogue): Updated.
7912         (print_operand): Handle integer register operand for 'z'.
7913         (ix86_expand_strlensi_unroll_1): Likewise.
7914         (ix86_expand_strlen): Likewise.
7915         (ix86_expand_builtin): Likewise.
7916         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
7917         mov{q}/mov{l} and add{q}/add{l}.
7918
7919 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
7920
7921         * config/i386/i386.md (P): New mode iterator.
7922         (SFmode push_operand splitter): Macroize DImode and SImode pushes
7923         using P mode iterator.
7924         (DFmode push_operand splitter): Ditto.
7925         (XFmode push_operand splitter): Ditto.
7926         (DFmode float_extend SFmode push_operand splitter): Ditto.
7927         (XFmode float_extend SFmode push_operand splitter): Do not generate
7928         SImode pushes for 64bit target.  Macroize Dimode and SImode
7929         pushes using P mode iterator.
7930         (XFmode float_extend DFmode push_operand splitter): Ditto.
7931
7932 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
7933
7934         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
7935         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
7936         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
7937         return type to int.
7938         (ix86_call_abi_override): Remove check for call_used_regs.
7939
7940 2008-06-03  Richard Guenther  <rguenther@suse.de>
7941
7942         * tree-ssa-structalias.c (find_func_aliases): Add constraints
7943         for the lhs of calls if the return type contains pointers.
7944
7945 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
7946
7947         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
7948         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
7949         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
7950         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
7951         of cfun and DEFAULT_ABI to deceide abi mode.
7952         (DEFAULT_ABI): New.
7953         (REG_PARM_STACK_SPACE): Removed.
7954         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
7955         (STACK_BOUNDARY): Use default target to deceide stack boundary.
7956         * config/i386/i386-protos.h (ix86_cfun_abi): New.
7957         (ix86_function_abi): Likewise.
7958         (ix86_function_type_abi): Likewise.
7959         (ix86_call_abi_override): Likewise.
7960         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
7961         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
7962         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
7963         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
7964         specific defines.
7965         (X86_64_REGPARM_MAX): New.
7966         (X86_64_SSE_REGPARM_MAX): New.
7967         (X64_REGPARM_MAX): New.
7968         (X64_SSE_REGPARM_MAX): New.
7969         (X86_32_REGPARM_MAX): New.
7970         (X86_32_SSE_REGPARM_MAX): New.
7971         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
7972         (ix86_function_regparm): Handle user calling abi.
7973         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
7974         by DEFAULT_ABI versus SYSV_ABI check.
7975         (ix86_reg_parm_stack_space): New.
7976         (ix86_function_type_abi): New.
7977         (ix86_call_abi_override): New.
7978         (ix86_function_abi): New.
7979         (ix86_cfun_abi): New.
7980         (init_cumulative_args): Call abi specific initialization.
7981         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
7982         (function_arg_64): Extend SSE_REGPARM_MAX check.
7983         (function_arg (): Remove TARGET_64BIT_MS_ABI.
7984         (ix86_pass_by_reference): Likewise.
7985         (ix86_function_value_regno_p): Likewise.
7986         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
7987         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
7988         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
7989         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
7990         (setup_incoming_varargs_64): Adjust regparm for call abi.
7991         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
7992         (ix86_va_start): Likewise.
7993         (ix86_gimplify_va_arg): Likewise.
7994         (ix86_expand_prologue): Likewise.
7995         (output_pic_addr_const): Likewise.
7996         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
7997         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
7998         (x86_output_mi_thunk): Likewise.
7999         (x86_function_profiler): Likewise.
8000         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
8001         (SYSV_ABI, MS_ABI): New constants.
8002         (DEFAULT_ABI): New.
8003         (init_regs): Add prototype of function in regclass.c file.
8004         (OVERRIDE_ABI_FORMAT): New.
8005         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
8006         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
8007         (OUTGOING_REG_PARM_STACK_SPACE): New.
8008         (ix86_reg_parm_stack_space): New prototype.
8009         (CUMULATIVE_ARGS): Add call_abi member.
8010         (machine_function): Add call_abi member.
8011         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
8012         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
8013
8014 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com>
8015
8016         PR target/34879
8017         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
8018         (avr_builtin_setjmp_frame_value): New function.
8019         * config/avr/avr.md (nonlocal_goto_receiver): Define.
8020         (nonlocal_goto): Define.
8021
8022 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
8023
8024         * config/mips/mips.c (mips_emit_loadgp): Return early if
8025         there is nothing do to, otherwise emit a blockage if
8026         !TARGET_EXPLICIT_RELOCS || crtl->profile.
8027         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
8028
8029 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8030
8031         * configure.ac: Drop unneeded backslash ending up in config.in.
8032         * acinclude.m4: Likewise.
8033         * config.in: Regenerate.
8034
8035 2008-05-26  Jan Hubicka  <jh@suse.cz>
8036
8037         * predict.c (maybe_hot_frequency_p): Break out of...
8038         (maybe_hot_bb_p): ... here.
8039         (maybe_hot_edge_p): New.
8040         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
8041         * basic-block.h (maybe_hot_edge_p): Declare.
8042
8043 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
8044
8045         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
8046         (*cmpfp_<mode>_cc): Ditto.
8047         (*fp_jcc_8<mode>_387): Ditto.
8048         (*fop_<MODEF:mode>_2_i387): Ditto.
8049         (*fop_<MODEF:mode>_3_i387): Ditto.
8050         (*fop_xf_2_i387): Ditto.
8051         (*fop_xf_3_i387): Ditto.
8052
8053 2008-06-02  Tomas Bily  <tbily@suse.cz>
8054
8055         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
8056
8057 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
8058
8059         * config/mips/mips.c (mips_valid_offset_p): New function.
8060         (mips_valid_lo_sum_p): Likewise.
8061         (mips_classify_address): Use them.
8062         (mips_force_address): New function.
8063         (mips_legitimize_address): Use it.
8064         * config/mips/mips.md (MOVE128): New mode iterator.
8065         (movtf): Require TARGET_64BIT.  Remove empty strings.
8066         (*movtf_internal): Rename to...
8067         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
8068         of "R" and use {,fp}{load,store} attributes instead of "multi".
8069         Use a separate define_split.
8070         (*movtf_mips16): New pattern.
8071
8072 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
8073
8074         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
8075         * config/mips/mips.c (mips_expand_before_return): New function.
8076         (mips_expand_epilogue): Call it.
8077         * config/mips/mips.md (return): Turn into a define_expand.
8078         (*return): New insn.
8079
8080 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
8081
8082         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
8083         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
8084         functions.  Do not emit uses and clobbers of CONCATs; individually
8085         use and clobber their operands.
8086         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
8087         gen_clobber, emit_use and gen_use.
8088         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
8089         (expand_builtin_return): Likewise.
8090         * cfgbuild.c (count_basic_blocks): Likewise.
8091         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
8092         * explow.c (emit_stack_restore): Likewise.
8093         * expmed.c (extract_bit_field_1): Likewise.
8094         * expr.c (convert_move, emit_move_complex_parts): Likewise.
8095         (emit_move_multi_word, store_constructor): Likewise.
8096         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
8097         (thread_prologue_and_epilogue_insns): Likewise.
8098         * lower-subreg.c (resolve_simple_move): Likewise.
8099         * optabs.c (widen_operand, expand_binop): Likewise.
8100         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
8101         * reload.c (find_reloads): Likewise.
8102         * reload1.c (eliminate_regs_in_insn): Likewise.
8103         * stmt.c (expand_nl_goto_receiver): Likewise.
8104         * config/alpha/alpha.md (builtin_longjmp): Likewise.
8105         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
8106         * config/arm/arm.c (arm_load_pic_register): Likewise.
8107         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
8108         * config/arm/arm.md (untyped_return): Likewise.
8109         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
8110         * config/avr/avr.c (expand_prologue): Likewise.
8111         * config/bfin/bfin.c (do_unlink): Likewise.
8112         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
8113         * config/cris/cris.c (cris_expand_prologue): Likewise.
8114         * config/darwin.c (machopic_indirect_data_reference): Likewise.
8115         (machopic_legitimize_pic_address): Likewise.
8116         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
8117         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
8118         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
8119         (ix86_expand_convert_uns_didf_sse): Likewise.
8120         (ix86_expand_vector_init_general): Likewise.
8121         * config/ia64/ia64.md (eh_epilogue): Likewise.
8122         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
8123         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
8124         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
8125         (config/iq2000/iq2000.c): Likewise.
8126         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
8127         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
8128         (builtin_longjmp): Likewise.
8129         * config/mn10300/mn10300.md (call, call_value): Likewise.
8130         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
8131         * config/pdp11/pdp11.md (abshi2): Likewise.
8132         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
8133         * config/s390/s390.c (s390_emit_prologue): Likewise.
8134         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
8135         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
8136         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
8137         * config/sh/sh.c (prepare_move_operands): Likewise.
8138         (output_stack_adjust, sh_expand_epilogue): Likewise.
8139         (sh_set_return_address, sh_expand_t_scc): Likewise.
8140         * config/sparc/sparc.c (load_pic_register): Likewise.
8141         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
8142         * config/spu/spu.c (spu_expand_epilogue): Likewise.
8143         * config/v850/v850.c (expand_epilogue): Likewise.
8144
8145 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
8146
8147         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
8148         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
8149         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
8150         * config/avr/avr.c (expand_prologue, expand_epilogue): Use
8151         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
8152         stack pointer register.
8153         (output_movhi): Remove code for interrupt specific writing to the
8154         stack pointer register.
8155
8156 2008-05-31  Richard Guenther  <rguenther@suse.de>
8157
8158         PR tree-optimization/34244
8159         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
8160         (tree_expr_nonzero_warnv_p): Likewise.
8161         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
8162         ssa_name_nonnegative_p.
8163         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
8164         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
8165         not tree_expr_nonzero_warnv_p.
8166
8167         PR tree-optimization/36262
8168         Revert
8169         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
8170
8171         PR tree-optimization/34244
8172         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
8173         (record_numbers_of_iterations): New function.
8174         (execute_vrp): Cache the numbers of iterations of loops.
8175         * tree-scalar-evolution.c (scev_reset_except_niters):
8176         New function.
8177         (scev_reset): Use scev_reset_except_niters.
8178         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
8179
8180 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
8181
8182         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
8183         __WORKAROUND_RETS when appropriate.
8184
8185 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
8186
8187         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
8188         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
8189         mode iterator.
8190         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
8191         *fop_df_comm_sse insn patterns using MODEF mode iterator.
8192         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
8193         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
8194         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
8195         *fop_df_1_mixed insn patterns using MODEF mode iterator.
8196         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
8197         *fop_df_1_sse insn patterns using MODEF mode iterator.
8198         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
8199         *fop_df_1_i387 insn patterns using MODEF mode iterator.
8200         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
8201         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
8202         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
8203         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
8204         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
8205         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
8206         (*fop_xf_4_i387): Use <MODE> for mode attribute.
8207         (*fop_xf_5_i387): Ditto.
8208         (*fop_xf_6_i387): Ditto.
8209
8210 2008-05-30  Richard Guenther  <rguenther@suse.de>
8211
8212         * builtins.c (build_string_literal): Avoid generating
8213         a non-gimple_val result.
8214
8215 2008-05-30  DJ Delorie  <dj@redhat.com>
8216
8217         * exec-tool.in: Use an environment variable (private) instead of a
8218         file (shared) as a semaphore, so as to not break parallel builds.
8219
8220 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
8221
8222         * optabs.c (maybe_encapsulate_block): Remove.
8223         (emit_libcall_block): Adjust accordingly.
8224         * optabs.h (maybe_encapsulate_block): Remove prototype.
8225
8226         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
8227         Don't use maybe_encapsulate_block.
8228
8229 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
8230
8231         * config/rs6000/rs6000.c (rs6000_legitimize_address,
8232         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
8233         rtx is a SYMBOL_REF before calling get_pool_constant.
8234
8235 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
8236
8237         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
8238
8239 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
8240
8241         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
8242         rather than OS names to choose INO_T_EQ definition.
8243         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
8244         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
8245
8246 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
8247
8248         PR target/36348
8249         * config/darwin-f.c: New.
8250         * config/t-darwin: Added rule to build darwin-f.o.
8251         * config.gcc: Defined new variable, fortran_target_objs.
8252         (*-*-darwin*): Set fortran_target_objs.
8253         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
8254         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
8255         * configure: Regenerated.
8256
8257 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
8258
8259         PR target/35771
8260         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
8261         canonical type if needed.
8262
8263 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
8264
8265         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
8266
8267 2008-05-29  Richard Guenther  <rguenther@suse.de>
8268
8269         PR tree-optimization/36343
8270         PR tree-optimization/36346
8271         PR tree-optimization/36347
8272         * tree-flow.h (clobber_what_p_points_to): Declare.
8273         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
8274         pointed-to variable is dereferenced is irrelevant to whether
8275         the pointer can access the pointed-to variable.
8276         (clobber_what_p_points_to): New function.
8277         * tree-ssa-alias.c (set_initial_properties): Use it.
8278         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
8279         call clobber check for NMTs.
8280
8281 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
8282
8283         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
8284         for printing gcov_type.
8285
8286 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
8287
8288         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
8289         and the eh region information.
8290         * value-prof.c (gimple_move_stmt_histograms): New function.
8291         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
8292
8293 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
8294
8295         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
8296
8297 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
8298
8299         * value-prof.c (tree_ic_transform): Print counts.
8300         * tree-profile.c (tree_gen_ic_func_profiler):
8301         Clear __gcov_indreict_call_callee variable to avoid misattribution
8302         of the profile.
8303
8304 2008-05-28  Rafael Espindola  <espindola@google.com>
8305
8306         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
8307         invalid sharing.
8308
8309 2008-05-28  Richard Guenther  <rguenther@suse.de>
8310
8311         PR tree-optimization/36339
8312         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
8313         and clobbering code out of the loop.
8314
8315 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
8316
8317         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
8318         letters defined.
8319
8320         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
8321         s390_contiguous_bitmask_p, s390_symref_operand_p,
8322         s390_check_symref_alignment, s390_reload_larl_operand,
8323         s390_reload_symref_address): New functions.
8324         (s390_branch_condition_mnemonic): Support compare and branch
8325         instructions.
8326         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
8327         and 'W' constraints.
8328         (s390_secondary_reload): Add secondary reloads for unaligned
8329         symbol refs or symbol refs to floating point or QI/TI mode
8330         integer values.
8331         (legitimate_address_p): Accept symbol references as addresses.
8332         (s390_expand_insv): Use rotate and insert selected bits
8333         instruction for insv when building for z10.
8334         (print_operand_address): Handle symbol ref addresses.
8335         (print_operand): Output modifier 'c' added for signed byte values.
8336         (s390_encode_section_info): Mark symbol refs with
8337         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
8338
8339         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
8340         (length attribute): RRF, RRR have 4 byte length.
8341         (FPALL, INTALL): New mode iterators added.
8342         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
8343         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
8344         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
8345         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
8346         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
8347         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
8348         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
8349         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
8350         instructions.
8351         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
8352         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
8353         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
8354         reload<INTALL:mode><P:mode>_toreg_z10,
8355         reload<FPALL:mode><P:mode>_tomem_z10,
8356         reload<FPALL:mode><P:mode>_toreg_z10,
8357         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
8358         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
8359         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
8360         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
8361         definition.
8362         (movmem, clrmem, cmpmem): New splitters added.
8363
8364         * config/s390/predicates.md (larl_operand): Use
8365         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
8366         SYMBOL_REF_ALIGN1_P.
8367         (s390_signed_integer_comparison,
8368         s390_unsigned_integer_comparison): New predicates.
8369
8370         * config/s390/s390-protos.h (s390_check_symref_alignment,
8371         s390_contiguous_bitmask_p, s390_reload_larl_operand,
8372         s390_reload_symref_address,
8373         s390_compare_and_branch_condition_mask): Prototypes added.
8374
8375         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
8376         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
8377         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
8378
8379 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
8380
8381         * config/s390/s390.c (z10_cost): New cost function for z10.
8382         (s390_handle_arch_option, override_options): Support -march=z10 switch.
8383         (s390_issue_rate): Adjust issue rate for z10.
8384         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
8385         (processor_flags): Add PF_Z10.
8386         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
8387         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
8388         * gcc/config.gcc: Add z10.
8389
8390 2008-05-28  Richard Guenther  <rguenther@suse.de>
8391
8392         PR tree-optimization/36291
8393         * tree-flow. h (struct gimple_df): Remove var_anns member.
8394         * tree-flow-inline.h (gimple_var_anns): Remove.
8395         (var_ann): Simplify.
8396         * tree-dfa.c (create_var_ann): Simplify.
8397         (remove_referenced_var): Clear alias info from var_anns of globals.
8398         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
8399         (delete_tree_ssa): Clear alias info from var_anns of globals.
8400         Do not free var_anns.
8401         (var_ann_eq): Remove.
8402         (var_ann_hash): Likewise.
8403
8404 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
8405
8406         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
8407         and loongson2f entries.
8408         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
8409         * config/mips/mips.h (processor_type): Add Loongson-2E
8410         and Loongson-2F entries.
8411         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
8412         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
8413         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
8414         * doc/invoke.texi (MIPS Options): Document loongson2e
8415         and loongson2f processor names.
8416
8417 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
8418
8419         PR target/35767
8420         PR target/35771
8421         * config/i386/i386.c (ix86_function_arg_boundary): Use
8422         alignment of canonical type.
8423         (ix86_expand_vector_move): Check unaligned memory access for
8424         all SSE modes.
8425
8426 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
8427
8428         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
8429         Moved to the front of file.
8430
8431 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
8432             H.J. Lu  <hongjiu.lu@intel.com>
8433
8434         * dwarf2out.c (current_fde): New.
8435         (add_cfi): Use it.
8436         (lookup_cfa:): Likewise.
8437         (dwarf2out_end_epilogue): Likewise.
8438         (dwarf2out_note_section_used): Likewise.
8439
8440 2008-05-27  Michael Matz  <matz@suse.de>
8441
8442         PR c++/27975
8443         * c.opt (Wenum-compare): New warning option.
8444         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
8445
8446 2008-05-27  Michael Matz  <matz@suse.de>
8447
8448         PR middle-end/36326
8449         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
8450         non-BLKmode types.
8451         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
8452         into memory as tail calls.
8453
8454 2008-05-27  Richard Guenther  <rguenther@suse.de>
8455
8456         PR tree-optimization/36339
8457         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
8458         pointers cause all addressable variables to be call clobbered.
8459
8460 2008-05-27  Richard Guenther  <rguenther@suse.de>
8461
8462         PR tree-optimization/36245
8463         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
8464
8465 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
8466
8467         * config/s390/s390.md: Replace all occurences of the 'm'
8468         constraint with 'RT'.
8469
8470 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
8471
8472         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
8473         definitions added.
8474         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
8475         "*movdi_64".
8476         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
8477         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
8478         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
8479
8480 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
8481
8482         * reload.c: (find_reloads): Skip alternatives according to the
8483         "enabled" attribute. Constify the constraint variable.
8484         * recog.c (get_attr_enabled): Add default implementation.
8485         (extract_insn): Set the alternative_enabled_p array
8486         in the recog_data struct.
8487         (preprocess_constraints, constrain_operands): Skip
8488         alternatives according to the "enabled" attribute
8489         * recog.h (struct recog_data): New field alternative_enabled_p.
8490         (skip_alternative): New inline function.
8491         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
8492         (record_reg_classes): Skip alternative according to the
8493         "enabled" attribute.
8494
8495         * doc/md.texi: Add documention for the "enabled" attribute.
8496
8497 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
8498
8499         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
8500         * postreload.c (reload_cse_simplify_operands): Replace 'm'
8501         constraint with TARGET_MEM_CONSTRAINT.
8502         * recog.c (asm_operand_ok, preprocess_constraints,
8503         constrain_operands): Likewise.
8504         * regclass.c (record_reg_classes): Likewise.
8505         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
8506         * reload1.c (maybe_fix_stack_asms): Likewise.
8507         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
8508         * recog.h: Adjust comment.
8509         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
8510         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
8511         * doc/md.texi: Add a note to description of 'm' constraint.
8512         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
8513
8514 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
8515
8516         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
8517         that the bitfield is of integral type before testing its precision.
8518
8519 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
8520             Sa Liu  <saliu@de.ibm.com>
8521
8522         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
8523         __modti3, __udivti3, __umodti3 and __udivmodti4.
8524         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
8525         that implement TImode mul and div functions.
8526         * config/spu/multi3.c: New. Implement __multi3.
8527         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
8528         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
8529         functions on SPU.
8530
8531 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
8532
8533         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
8534         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
8535         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
8536         tls_sysv_suffix): New mode and mode attribute iterators.
8537         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
8538         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
8539         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
8540         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
8541         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
8542         iterators.
8543
8544 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
8545
8546         PR tree-optimization/36329
8547         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
8548         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
8549         * cgraphbuild.c (initialize_inline_failed): Use the latter
8550         macro in lieu of the former.
8551         * ipa-inline.c (cgraph_mark_inline): Likewise.
8552         (cgraph_decide_inlining_of_small_function): Likewise.
8553         (cgraph_decide_inlining): Likewise.
8554         (cgraph_decide_inlining_incrementally): Likewise.
8555
8556 2008-05-26  Tristan Gingold  <gingold@adacore.com>
8557             Anatoly Sokolov  <aesok@post.ru>
8558
8559         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
8560         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
8561         * config/avr/avr.c (expand_prologue): Tune "call_prologue"
8562         optimization for 'avr6' architecture.
8563
8564 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
8565
8566         PR target/34932
8567         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
8568
8569 2008-05-26  Richard Guenther  <rguenther@suse.de>
8570
8571         * tree-ssa-sccvn.c (expr_has_constants): Declare.
8572         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
8573
8574 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
8575
8576         PR middle-end/36253
8577         * caller-save.c (insert_restore): Verify alignment of spill space.
8578         (insert_save): Likewise.
8579         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
8580         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
8581         (STACK_SLOT_ALIGNMENT): Likewise.
8582         * function.c (LOCAL_ALIGNMENT): Removed.
8583         (get_stack_local_alignment): New.
8584         (assign_stack_local): Use it.  Set alignment on stack slot.
8585         (assign_stack_temp_for_type): Use get_stack_local_alignment.
8586         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
8587         (STACK_SLOT_ALIGNMENT): New.
8588         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
8589         stack slot in XFmode.
8590
8591         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
8592
8593 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
8594
8595         PR/36321
8596         * config/i386/i386.md (allocate_stack_worker_64): Make sure
8597         argument operand in rax isn't removed.
8598
8599 2008-05-26  Richard Guenther  <rguenther@suse.de>
8600
8601         PR middle-end/36300
8602         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
8603         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
8604
8605 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
8606
8607         PR bootstrap/36331
8608         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
8609
8610 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
8611
8612         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
8613         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
8614
8615 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
8616
8617         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
8618         build a trampoline if we don't want one.
8619         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
8620         return zero for nested functions if we don't want a trampoline.
8621
8622 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
8623
8624         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
8625
8626 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
8627
8628         PR fortran/18428
8629         * c.opt: Removed undocumented option '-lang-fortran'.
8630         * c-common.h: Removed global variable 'lang_fortran'.
8631         * c-opts.c (c_common_handle_option): Removed code to handle
8632         option '-lang-fortran'. Updated includes.
8633         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
8634         definition of '__GFORTRAN__'.
8635         (define__GNUC__): Reimplemented to use BASEVER and
8636         cpp_define_formatted.
8637         (builtin_define_with_value_n): Removed.
8638         * c-incpath.h: Renamed to ...
8639         * incpath.h: ... this.
8640         * c-incpath.c: Renamed to ...
8641         * incpath.c: ... this. Updated includes.
8642         * fix-header.c: Updated includes.
8643         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
8644         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
8645         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
8646
8647 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
8648
8649         * tree.h: Update the table of flags used on tree nodes.
8650         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
8651         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
8652         (FORCED_LABEL): Add access check.
8653         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
8654         (ASM_INPUT_P): Likewise.
8655         (ASM_VOLATILE_P): Likewise.
8656         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
8657         (OMP_SECTION_LAST): Access private_flag directly.
8658         (OMP_RETURN_NOWAIT): Likewise.
8659         (OMP_PARALLEL_COMBINED): Likewise.
8660         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
8661         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
8662         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
8663         deprecated_flag directly.
8664
8665 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
8666
8667         * final.c (frame_pointer_needed): Removed.
8668         * flags.h (frame_pointer_needed): Likewise.
8669
8670         * function.h (rtl_data): Add frame_pointer_needed.
8671         (frame_pointer_needed): New.
8672
8673 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
8674
8675         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
8676
8677 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
8678
8679         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
8680         SRC is a REG.
8681
8682 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
8683
8684         * c-common.c (strip_array_types): Move function to..
8685         * tree.c: ..here.
8686         (get_inner_array_type): Delete.
8687         * c-common.h (strip_array_types): Move declaration to..
8688         * tree.h: ..here.
8689         (get_inner_array_type): Delete.
8690         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
8691         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
8692         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
8693         * config/pa/pa.c (emit_move_sequence): Likewise.
8694
8695 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
8696
8697         * config/i386/i386.md (*sse_prologue_save_insn): Set length
8698         attribute to 34.
8699
8700 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
8701
8702         * function.c: Include target hook for nonlocal_goto frame value.
8703
8704 2008-05-24  Richard Guenther  <rguenther@suse.de>
8705
8706         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
8707         variable can be only accessed through a pointer or a union.
8708
8709 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8710
8711         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
8712         * doc/extend.texi: Likewise.
8713
8714 2008-05-23  DJ Delorie  <dj@redhat.com>
8715
8716         * config/m32c/jump.md (untyped_call): Add.
8717
8718         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
8719         for A24 to PSImode.
8720         (m32c_address_cost): Detail costs for indirect offsets.
8721
8722 2008-05-23  Rafael Espindola  <espindola@google.com>
8723
8724         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
8725         if a node is a SUBREG.
8726         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
8727         is a SUBREG.
8728
8729 2008-05-23  Paul Brook  <paul@codesourcery.com>
8730             Carlos O'Donell  <carlos@codesourcery.com>
8731
8732         * doc/extend.texi: Clarify use of __attribute__((naked)).
8733         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
8734         * target.h (gcc_target): Add allocate_stack_slots_for_args.
8735         * function.c (use_register_for_decl): Use
8736         targetm.calls.allocate_stack_slots_for_args.
8737         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
8738         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
8739         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
8740
8741 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
8742
8743         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
8744
8745 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
8746
8747         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
8748         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
8749         is only rounded once.
8750
8751 2008-05-23  Richard Guenther  <rguenther@suse.de>
8752
8753         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
8754
8755 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
8756             Jakub Jelinek  <jakub@redhat.com>
8757
8758         PR target/36079
8759         * configure.ac: Handle --enable-cld.
8760         * configure: Regenerated.
8761         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
8762         * config/i386/i386.h (struct machine_function): Add needs_cld field.
8763         (ix86_current_function_needs_cld): New define.
8764         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
8765         (cld): New isns pattern.
8766         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
8767         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
8768         * config/i386/i386.opt (mcld): New option.
8769         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
8770         TARGET_CLD and ix86_current_function_needs_cld.
8771         (override_options): Use -mcld by default for 32-bit code if
8772         USE_IX86_CLD.
8773
8774         * doc/install.texi (Options specification): Document --enable-cld.
8775         * doc/invoke.texi (Machine Dependent Options)
8776         [i386 and x86-64 Options]: Add -mcld option.
8777         (Intel 386 and AMD x86-64 Options): Document -mcld option.
8778
8779 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
8780         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
8781         (return_in_memory_64): Likewise.
8782         (return_in_memory_ms_64): Likewise.
8783
8784 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8785
8786         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
8787         * builtins.c (fold_builtin_fpclassify): New.
8788         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
8789         * builtins.def (BUILT_IN_FPCLASSIFY): New.
8790         * c-common.c (handle_type_generic_attribute): Adjust to accept
8791         fixed arguments before an elipsis.
8792         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
8793         * doc/extend.texi: Document __builtin_fpclassify.
8794
8795 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
8796
8797         * omp-low.c (gate_expand_omp_ssa): Remove.
8798         (pass_expand_omp_ssa): Remove.
8799         (gate_expand_omp): Do not check for flag_openmp_ssa.
8800         * common.opt (-fopenmp-ssa): Remove.
8801         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
8802
8803 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
8804
8805         * config/sh/sh.opt (mfixed-range): New option.
8806         * config/sh/sh-protos.h (sh_fix_range): Declare.
8807         * config/sh/sh.c (sh_fix_range): New function.
8808         * config/sh/sh.h (sh_fixed_range_str): Declare.
8809         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
8810         is not empty.
8811         * doc/invoke.texi (SH Options): Document -mfixed-range.
8812
8813 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
8814
8815         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
8816         it before the redeclaration.
8817
8818 2008-05-22  Anatoly Sokolov <aesok@post.ru>
8819
8820         * config/avr/avr.c (get_sequence_length): Add new function.
8821         (expand_prologue, expand_epilogue): Remove duplicate code.
8822
8823 2008-05-22  Rafael Espindola  <espindola@google.com>
8824
8825         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
8826         sharing.
8827
8828 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
8829
8830         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
8831         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
8832
8833         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
8834         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
8835         (vect_update_misalignment_for_peel): Likewise.
8836         (vector_alignment_reachable_p): Likewise.
8837         * tree-vect-transform.c (vectorizable_load): Likewise.
8838         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
8839         (get_vectype_for_scalar_type): Pass mode of scalar_type
8840         to UNITS_PER_SIMD_WORD.
8841
8842         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
8843         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
8844         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
8845         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
8846         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
8847
8848 2008-05-22  Ira Rosen  <irar@il.ibm.com>
8849
8850         PR tree-optimization/36293
8851         * tree-vect-transform.c (vect_transform_strided_load): Don't check
8852         if the first load must be skipped because of a gap.
8853
8854 2008-05-22  Richard Guenther  <rguenther@suse.de>
8855
8856         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
8857         more cases of offset disambiguation that is possible if
8858         strict-aliasing rules apply.
8859         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
8860         for basic offset and type-based disambiguation.
8861
8862 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8863
8864         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
8865         ix86_expand_vector_set on V16QImode for SSE4.1.
8866
8867 2008-05-21  Tom Tromey  <tromey@redhat.com>
8868
8869         * c.opt (Wimport): Mark as undocumented.
8870         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
8871         -Wno-import.
8872         (Warning Options): Likewise.
8873         * doc/cppopts.texi: Don't mention -Wimport.
8874
8875 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
8876
8877         PR tree-optimization/36287
8878         PR tree-optimization/36286
8879         * lambda-code.c (build_access_matrix): Do not use the loop->num
8880         for computing the number of induction variables: use the loop depth
8881         instead.
8882
8883 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
8884
8885         PR/36280
8886         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
8887         option -f(no-)leading-underscore.
8888
8889 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8890
8891         * config/i386/i386.c (ix86_expand_vector_init_general): Use
8892         GET_MODE_NUNITS (mode).
8893
8894 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
8895
8896         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
8897         (-mmulhw): Add 464 to description.
8898         (-mdlmzb): Likewise.
8899         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
8900         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
8901         464fp entries.
8902         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
8903         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
8904         * config/rs6000/rs6000.md: Update comments for 464.
8905
8906 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
8907
8908         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
8909
8910 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8911
8912         * config/i386/sse.md (vec_extractv4sf): Removed.
8913         (vec_extractv2df): Likewise.
8914         (vec_extractv2di): Likewise.
8915         (vec_extractv4si): Likewise.
8916         (vec_extractv8hi): Likewise.
8917         (vec_extractv16qi): Likewise.
8918         (vec_extract<mode>): New.
8919
8920 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8921
8922         * config/i386/sse.md (vec_setv4sf): Removed.
8923         (vec_setv2df): Likewise.
8924         (vec_setv2di): Likewise.
8925         (vec_setv4si): Likewise.
8926         (vec_setv8hi): Likewise.
8927         (vec_setv16qi): Likewise.
8928         (vec_set<mode>): New.
8929
8930 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8931
8932         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
8933         goto for vec_concat and vec_interleave.
8934
8935 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8936
8937         * config/i386/sse.md (vec_initv4sf): Removed.
8938         (vec_initv2df): Likewise.
8939         (vec_initv2di): Likewise.
8940         (vec_initv4si): Likewise.
8941         (vec_initv8hi): Likewise.
8942         (vec_initv16qi): Likewise.
8943         (vec_init<mode>): New.
8944
8945 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
8946
8947         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
8948
8949 2008-05-21  Tom Tromey  <tromey@redhat.com>
8950
8951         * ggc-zone.c (lookup_page_table_if_allocated): New function.
8952         (zone_find_object_offset): Likewise.
8953         (gt_ggc_m_S): Likewise.
8954         (highest_bit): Likewise.
8955         * ggc-page.c (gt_ggc_m_S): New function.
8956         * stringpool.c (string_stack): Remove.
8957         (init_stringpool): Update.
8958         (ggc_alloc_string): Use ggc_alloc.
8959         (maybe_delete_ident): New function.
8960         (ggc_purge_stringpool): Likewise.
8961         (gt_ggc_m_S): Remove.
8962         * ggc-common.c (ggc_protect_identifiers): New global.
8963         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
8964         ggc_protect_identifiers.
8965         * ggc.h (ggc_protect_identifiers): Declare.
8966         (gt_ggc_m_S): Update.
8967         (ggc_purge_stringpool): Declare.
8968         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
8969         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
8970         special case.
8971         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
8972
8973 2008-05-21  David S. Miller  <davem@davemloft.net>
8974
8975         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
8976         tmake_file.
8977
8978 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
8979
8980         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
8981         once finished.
8982
8983 2008-05-20  David Daney  <ddaney@avtrex.com>
8984
8985         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
8986         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
8987         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
8988         UNSPEC_UPDATE_GOT_VERSION): Renumber.
8989         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
8990         (atomic_hiqi_op): New define_code_iterator.
8991         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
8992         mips_expand_compare_and_swap_12.
8993         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
8994         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
8995         (sync_<optab><mode>, sync_old_<optab><mode>,
8996         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
8997         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
8998         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
8999         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
9000         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
9001         (test_and_set_12): New insn.
9002         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
9003         sync_new_<optab><mode>, sync_old_nand<mode>,
9004         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
9005         clobber to operand 0 for SI and DI mode insns.
9006         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
9007         mips_gen_fn_4): New typedefs.
9008         (mips_gen_fn_ptrs): Define new union type.
9009         (mips_expand_compare_and_swap_12): Remove declaration.
9010         (mips_expand_atomic_qihi): Declare function.
9011         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
9012         (mips_expand_atomic_qihi): ... this.  Use new generator function
9013         parameter.
9014         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
9015         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
9016         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
9017         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
9018         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
9019         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
9020         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
9021         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
9022         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
9023         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
9024         New macros.
9025
9026 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
9027
9028         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
9029         the missing break.
9030
9031 2008-05-20  Anatoly Sokolov <aesok@post.ru>
9032
9033         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
9034         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
9035         (avr_attribute_table): Add 'OS_main' function attribute.
9036         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
9037         functions with 'OS_main' attribute.
9038
9039 2008-05-20  Richard Guenther  <rguenther@suse.de>
9040
9041         PR tree-optimization/35204
9042         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
9043         helper, split out from ...
9044         (DFS): ... here.  Make the DFS walk non-recursive.
9045
9046 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
9047             Jan Sjodin  <jan.sjodin@amd.com>
9048
9049         PR tree-optimization/36181
9050         * tree-parloops.c (loop_has_vector_phi_nodes): New.
9051         (parallelize_loops): Don't parallelize when the loop has vector
9052         phi nodes.
9053
9054 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
9055             Sebastian Pop  <sebastian.pop@amd.com>
9056
9057         * tree-loop-linear.c (gather_interchange_stats): Look in the access
9058         matrix, and never look at the tree representation of the memory
9059         accesses.
9060         (linear_transform_loops): Computes parameters and access matrices.
9061         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
9062         when fails.
9063         (access_matrix_get_index_for_parameter): New.
9064         * tree-data-ref.h (struct access_matrix): New.
9065         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
9066         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
9067         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
9068         am_vector_index_for_loop): New.
9069         (struct data_reference): Add field access_matrix.
9070         (DR_ACCESS_MATRIX): New.
9071         (compute_data_dependences_for_loop): Update declaration.
9072         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
9073         * lambda.h (lambda_vector_vec_p): Declared.
9074         * lambda-code.c: Depend on pointer-set.h.
9075         (lambda_collect_parameters_from_af, lambda_collect_parameters,
9076         av_for_af_base, av_for_af, build_access_matrix,
9077         lambda_compute_access_matrices): New.
9078         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
9079
9080 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
9081
9082         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
9083         $SOURCEDIR/include.
9084
9085 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
9086             Sebastian Pop  <sebastian.pop@amd.com>
9087
9088         PR tree-optimization/36206
9089         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
9090         FOLD_CONVERSIONS.
9091         (instantiate_scev_1): Rename flags to fold_conversions.
9092         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
9093         outeside instantiation_loop.
9094         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
9095         (evolution_function_is_affine_or_constant_p): Removed.
9096         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
9097         instantiate_scev.
9098         (analyze_siv_subscript): Pass in the loop nest number.
9099         Call evolution_function_is_affine_in_loop instead of
9100         evolution_function_is_affine_p.
9101         (analyze_overlapping_iterations): Pass in the loop nest number.
9102
9103 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
9104             Sebastian Pop  <sebastian.pop@amd.com>
9105
9106         PR tree-optimization/36206
9107         * tree-chrec.h (chrec_fold_op): New.
9108         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
9109         and other trees.
9110
9111 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
9112
9113         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
9114         (DIRS_EQ): New.
9115         (remove_duplicates): Do not set inode on non-inode systems.
9116         Use DIRS_EQ.
9117
9118 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
9119
9120         * config.gcc (tm_file): Update comments about relative pathnames.
9121
9122 2008-05-20  Richard Guenther  <rguenther@suse.de>
9123
9124         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
9125         * tree-ssa-sccvn.c (process_scc): Likewise.
9126         * tree-ssa-sink.c (execute_sink_code): Likewise.
9127         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
9128         * tree-vrp.c (process_assert_insertions): Likewise.
9129         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
9130         (perform_tree_ssa_dce): Likewise.
9131         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
9132         (dump_dominator_optimization_stats): Likewise.
9133         * tree-vectorizer.c (vectorize_loops): Likewise.
9134
9135 2008-05-20  Richard Guenther  <rguenther@suse.de>
9136
9137         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
9138
9139 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
9140
9141         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
9142         (ix86_i386elf_return_in_memory): Likewise.
9143         (ix86_i386interix_return_in_memory): Likewise.
9144         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
9145         (SUBTARGET_RETURN_IN_MEMORY): New.
9146         * config/i386/i386elf.h: Likewise.
9147         * config/i386/ptx4-i.h: Likewise.
9148         * config/i386/sol2-10.h: Likewise.
9149         * config/i386/sysv4.h: Likewise.
9150         * config/i386/vx-common.h: Likewise.
9151         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
9152         * config/i386/i386.c (ix86_return_in_memory): Made static and
9153         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
9154         (ix86_i386elf_return_in_memory): Removed.
9155         (ix86_i386interix_return_in_memory): Removed.
9156         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
9157         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
9158
9159 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
9160
9161         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
9162
9163 2008-05-19  Xinliang David Li  <davidxl@google.com>
9164
9165         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
9166         * opts.c: Ditto.
9167         * common.opt: Ditto.
9168         * doc/invoke.texi: Ditto.
9169
9170 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
9171
9172         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
9173         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
9174
9175 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
9176
9177         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
9178         sizes of operand array from 8/4 to 4/2.
9179         (ix86_expand_vector_init_general): Change size of operand array
9180         from 32 to 16.  Remove op0, op1 and half_mode.
9181
9182 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
9183
9184         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
9185         (ix86_expand_vector_init_interleave): Likewise.
9186         (ix86_expand_vector_init_general): Use them.  Assert
9187         word_mode == SImode when n_words == 4.
9188
9189 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
9190
9191         * config/i386/i386.c (ix86_secondary_reload): New static function.
9192         (TARGET_SECONDARY_RELOAD): New define.
9193         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
9194         * config/i386/i386.md (reload_outqi): Remove.
9195
9196 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9197
9198         PR middle-end/35509
9199         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
9200         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
9201         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
9202         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
9203         (fold_builtin_1): Likewise.
9204         * builtins.def (BUILT_IN_ISINF_SIGN): New.
9205         c-common.c (check_builtin_function_arguments): Handle
9206         BUILT_IN_ISINF_SIGN.
9207         * doc/extend.texi: Document __builtin_isinf_sign.
9208         * fold-const.c (operand_equal_p): Handle COND_EXPR.
9209
9210 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
9211
9212         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
9213         EH cleanup at the end of the pass, search for those that have been
9214         turned into forwarder blocks and do the cleanup on their successor.
9215
9216 2008-05-18  Richard Guenther  <rguenther@suse.de>
9217
9218         * tree-cfg.c (verify_gimple_expr): Allow conversions from
9219         pointers to sizetype and vice versa.
9220
9221 2008-05-18 Xinliang David Li   <davidxl@google.com>
9222
9223         * gcc/tree-ssa-dce.c: Coding style fix.
9224         (check_pow): Documentation comment.
9225         (check_log): Documenation comment. Coding style fix.
9226         (is_unnecessary_except_errno_call): Ditto.
9227         (gen_conditions_for_pow): Ditto.
9228         (gen_conditions_for_log): Ditto.
9229         (gen_shrink_wrap_conditions): Ditto.
9230         (shrink_wrap_one_built_in_calls): Ditto.
9231         * gcc/doc/invoke.texi: Better documentation string.
9232         * ChangeLog: Fix wrong change log entries from
9233         May 17 checkin on function call DCE.
9234
9235 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
9236
9237         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
9238
9239 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
9240
9241         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
9242         * df-problems.c (simulation routines): Fixed block comment to
9243         properly say how to add forwards scanning functions.
9244
9245 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
9246
9247         * tree-inline.c (setup_one_parameter): Remove dead code.
9248
9249 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
9250
9251         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
9252         a BIT_AND_EXPR only for an INTEGER_TYPE.
9253
9254 2008-05-17 Xinliang David Li   <davidxl@google.com>
9255
9256         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
9257         (check_pow, check_log, is_unnecessary_except_errno_call): New
9258         functions to check for eliminating math functions that are pure
9259         except for setting errno.
9260         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
9261         general condition expressions for shrink-wrapping pow/log calls.
9262         (gen_shrink_wrap_conditions): Ditto.
9263         (shrink_wrap_one_built_in_call): Ditto.
9264         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
9265         (mark_operand_necessary): If debugging, output if OP is necessary.
9266         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
9267         unnecessary.
9268         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
9269         opt level >= 2.
9270         * gcc/common.opt: New user flag -ftree-builtin-dce.
9271         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
9272
9273 2008-05-16  David S. Miller  <davem@davemloft.net>
9274
9275         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
9276         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
9277
9278 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
9279
9280         PR target/36246
9281         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
9282
9283 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
9284
9285         * ifcvt.c (dead_or_predicable): Rename
9286         df_simulate_one_insn_backwards to df_simulate_one_insn.
9287         * recog.c (peephole2_optimize): Ditto.
9288         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
9289         Ditto.
9290         * df.h: Rename df_simulate_one_insn_backwards to
9291         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
9292         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
9293         scanning of defs and uses.
9294         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
9295         (df_simulate_one_insn_forwards): Removed.
9296
9297 2008-05-16  Doug Kwan  <dougkwan@google.com>
9298
9299         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
9300         QNaN & SNaN.
9301         (real_from_string): Handle NaNs and Inf as approriate.
9302
9303 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
9304
9305         * doc/gty.texi (Source Files Containing Type Information): Note
9306         that headers should appear first in the gtfiles list.
9307
9308 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
9309
9310         * tree.def (COND_EXEC): Properly documented this code.
9311
9312 2008-05-16  Diego Novillo  <dnovillo@google.com>
9313
9314         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
9315         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
9316         the new field.
9317
9318 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
9319
9320         * tree-ssa-dse (max_stmt_uid): Removed.
9321         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
9322         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
9323         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
9324         * function.h (cfun.last_stmt_uid): New field.
9325         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
9326         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
9327         New functions.
9328         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
9329         (create_stmt_ann): Initialize the ann->uid field.
9330         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
9331         with new calls.
9332         * tree-flow.h (renumber_gimple_stmt_uids): New function.
9333
9334 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
9335
9336         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
9337         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
9338         (init_empty_tree_cfg): Call it.
9339
9340 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
9341
9342         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
9343         Update all users.
9344
9345 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
9346
9347         * doc/invoke.text (-fdump-tree-*-verbose): New option.
9348         * tree-dump.c (dump_options): New verbose option.
9349         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
9350         Add verbose dump.
9351         * tree-pass.h (TDF_VERBOSE): New dump flag.
9352         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
9353         (tree-flow.h): Added include.
9354         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
9355
9356 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
9357
9358         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
9359
9360         From Jie Zhang  <jie.zhang@analog.com>
9361         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
9362         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
9363         mcpu=bf561-none and mcpu=bf561-0.2.
9364         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
9365         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
9366         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
9367         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
9368         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
9369         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
9370         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
9371         option.
9372         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
9373         (cputype_selected): Remove.
9374         (bfin_handle_option): Don't use cputype_selected.
9375         (override_options): When no mcpu option, enable all workarounds.
9376         Don't use bfin_workarounds.
9377         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
9378         processor type.
9379         (DEFAULT_CPU_TYPE): Don't define.
9380
9381 2008-05-16  Richard Guenther  <rguenther@suse.de>
9382
9383         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
9384         on deletion of the last stmt.
9385
9386 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
9387
9388         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
9389         V8HImode for SSE2 and V16QImode for SSE4.1.
9390
9391 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
9392
9393         * cgraph.h (compute_inline_parameters): Made public.
9394         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
9395         variable_generate_summary, function_write_summary,
9396         variable_write_summary, variable_read_summary.  Added generate_summary,
9397         write_summary, read_summary.
9398         * cgraphunit.c (cgraph_process_new_functions): Changed call from
9399         pass_ipa_inline.function_generate_summary, to
9400         compute_inline_parameters.
9401         * ipa-inline.c (compute_inline_parameters): Made public and added
9402         node parameter.
9403         (compute_inline_parameters_for_current): New function.
9404         (pass_inline_param): Now calls compute_inline_parameters_for_current.
9405         (inline_generate_summary): Removed parameter and made to loop over
9406         all cgraph nodes.
9407         (pass_ipa_inline): Updated for new IPA_PASS structure.
9408         * passes.c (execute_ipa_summary_passes): Now is called once per
9409         pass rather than once per node*pass.
9410
9411 2008-05-15  Anatoly Sokolov <aesok@post.ru>
9412
9413         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
9414         avr_have_mul_p, avr_asm_only_p): Remove variables.
9415         (avr_override_options): Remove initialization of removed variables.
9416         (avr_file_start):  Convert removed variables to fields of
9417         'struct base_arch_s *avr_current_arch'.
9418         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
9419         (AVR_HAVE_MUL): (Ditto.).
9420         (AVR_HAVE_MOVW): (Ditto.).
9421         (AVR_HAVE_LPMX): (Ditto.).
9422         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
9423         avr_asm_only_p): Remove declaration.
9424
9425 2008-05-15  Diego Novillo  <dnovillo@google.com>
9426
9427         * config/arm/arm.c (arm_return_in_memory): Fix return type.
9428         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
9429
9430 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
9431
9432         PR middle-end/36194
9433         * combine.c (check_conversion): Rename back to check_promoted_subreg.
9434         Don't call record_truncated_value from here.
9435         (record_truncated_value): Turn it into a for_each_rtx callback.
9436         (record_truncated_values): New function.
9437         (combine_instructions): Call note_uses with record_truncated_values.
9438         Change name of check_conversion to check_promoted_subreg.
9439
9440 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
9441
9442         * doc/sourcebuild.texi: Document support for torture tests.
9443
9444 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
9445
9446         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
9447         to alternative 4 of operand 2.
9448
9449 2008-05-15  Richard Guenther  <rguenther@suse.de>
9450
9451         * tree-pass.h (current_pass): Declare.
9452         (get_pass_for_id): Likewise.
9453         * passes.c (passes_by_id, passes_by_id_size): New globals.
9454         (set_pass_for_id): New function.
9455         (get_pass_for_id): Likewise.
9456         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
9457         (execute_function_todo): Flush per function statistics.
9458         * toplev.c (compile_file): Init statistics.
9459         (general_init): Do early statistics initialization.
9460         (finalize): Finish statistics.
9461         * statistics.h (statistics_early_init): Declare.
9462         (statistics_init): Likewise.
9463         (statistics_fini): Likewise.
9464         (statistics_fini_pass): Likewise.
9465         (statistics_counter_event): Likewise.
9466         (statistics_histogram_event): Likewise.
9467         * statistics.c: New file.
9468         * Makefile.in (OBJS-common): Add statistics.o.
9469         (statistics.o): Add dependencies.
9470         * doc/invoke.texi (-fdump-statistics): Document.
9471
9472         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
9473         (insert): Likewise.
9474         (execute_pre): Use statistics_counter_event.
9475         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
9476         (substitute_and_fold): Increment it.  Use statistics_counter_event.
9477
9478 2008-05-15  Diego Novillo  <dnovillo@google.com>
9479
9480         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
9481
9482         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
9483         * tree-ssa-alias.c (new_type_alias): Remove references to
9484         sub-variables from comment.
9485         * tree-ssa-operands.c (swap_tree_operands): Likewise.
9486
9487 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
9488
9489         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
9490         attribute to 1 only for insertps alternative.
9491
9492 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
9493
9494         * config/bfin/bfin.md (loadbytes): New pattern.
9495         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
9496         (bfin_init_builtins): Initialize it.
9497         (bdesc_1arg): Add it.
9498
9499 2008-05-15  Sa Liu  <saliu@de.ibm.com>
9500
9501         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
9502         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
9503         * testsuite/lib/target-supports.exp: Add
9504         check_effective_target_fortran_integer_16.
9505
9506 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
9507
9508         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
9509         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
9510         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
9511         (TARGET_RETURN_IN_MEMORY): Define.
9512
9513 2008-05-15  Richard Guenther  <rguenther@suse.de>
9514
9515         PR middle-end/36244
9516         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
9517         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
9518         represent unmodifiable vars.
9519
9520 2008-05-15  Richard Guenther  <rguenther@suse.de>
9521
9522         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
9523         INDIRECT_REF and TARGET_MEM_REF.
9524         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
9525         TARGET_MEM_REF.
9526
9527 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
9528             H.J. Lu  <hongjiu.lu@intel.com>
9529
9530         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
9531         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
9532         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
9533         insn alternatives.  Add missing alternatives.
9534         (*vec_concatv2di_rex64_sse4_1): Likewise.
9535         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
9536         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
9537         Require TARGET_SSE.
9538
9539 2008-05-15  Richard Guenther  <rguenther@suse.de>
9540
9541         PR tree-optimization/36009
9542         PR tree-optimization/36204
9543         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
9544         (determine_invariantness_stmt): Record the loop a store is
9545         always executed in.
9546         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
9547         dependency.
9548
9549 2008-05-15  Richard Guenther  <rguenther@suse.de>
9550
9551         PR tree-optimization/34330
9552         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
9553         through the pointer will alias the SMT.
9554
9555 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
9556
9557         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
9558
9559 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
9560
9561         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
9562
9563 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
9564             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
9565
9566         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
9567         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
9568         (vashl_optab): New optab for vector/vector shifts.
9569         (vashr_optab): Ditto.
9570         (vlshr_optab): Ditto.
9571         (vrotl_optab): Ditto.
9572         (vrotr_optab): Ditto.
9573         (optab_subtype): New enum for optab_for_tree_code call.
9574         (optab_for_tree_code): Add enum optab_subtype argument.
9575
9576         * optabs.c (optab_for_tree_code): Take an additional argument to
9577         distinguish between a vector shift by a scalar and vector shift by
9578         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
9579         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
9580         vector shift by a vector.
9581         (expand_widen_pattern_expr): Pass additional argument to
9582         optab_for_tree_code.
9583
9584         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
9585         vrotl_optab, vrotr_optab.
9586
9587         * expr.c (expand_expr_real_1): Update calls to
9588         optab_for_tree_code to distinguish between vector shifted by a
9589         scalar and vector shifted by a vector.
9590         * tree-vectorizer.c (supportable_widening_operation): Ditto.
9591         (supportable_narrowing_operation): Ditto.
9592         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
9593         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
9594         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
9595         (vect_create_epilog_for_reduction): Ditto.
9596         (vectorizable_reduction): Ditto.
9597         (vectorizable_operation): Ditto.
9598         (vect_strided_store_supported): Ditto.
9599         (vect_strided_load_supported): Ditto.
9600         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
9601         * expmed.c (expand_shift): Ditto.
9602
9603         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
9604         scalar type.
9605         (ashr@var{m}3): Ditto.
9606         (vashl@var{m}3): Document new vector/vector shift standard name.
9607         (vashr@var{m}3): Ditto.
9608         (vlshr@var{m}3): Ditto.
9609         (vrotl@var{m}3): Ditto.
9610         (vrotr@var{m}3): Ditto.
9611
9612         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
9613         (PPERM_INVERT): Ditto.
9614         (PPERM_REVERSE): Ditto.
9615         (PPERM_REV_INV): Ditto.
9616         (PPERM_ZERO): Ditto.
9617         (PPERM_ONES): Ditto.
9618         (PPERM_SIGN): Ditto.
9619         (PPERM_INV_SIGN): Ditto.
9620         (PPERM_SRC1): Ditto.
9621         (PPERM_SRC2): Ditto.
9622
9623         * config/i386/sse.md (mulv2di3): Add SSE5 support.
9624         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
9625         allows a memory operand to be the value being added, and split it
9626         to improve vectorization.
9627         (sse5_pmacsdqh_mem): Ditto.
9628         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
9629         (sse5_mulv2div2di3_high): Ditto.
9630         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
9631         (vec_pack_trunc_v4si): Ditto.
9632         (vec_pack_trunc_v2di): Ditto.
9633         (sse5_pcmov_<mode>): Remove code that tried to use use
9634         andps/andnps instead of pcmov.
9635         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
9636         pmacsdqh instructions.
9637         (vec_widen_smult_lo_v4si): Ditto.
9638
9639         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
9640         (PPERM_INVERT): Ditto.
9641         (PPERM_REVERSE): Ditto.
9642         (PPERM_REV_INV): Ditto.
9643         (PPERM_ZERO): Ditto.
9644         (PPERM_ONES): Ditto.
9645         (PPERM_SIGN): Ditto.
9646         (PPERM_INV_SIGN): Ditto.
9647         (PPERM_SRC1): Ditto.
9648         (PPERM_SRC2): Ditto.
9649         (ix86_expand_sse_movcc): Move the SSE5 test after the if
9650         true/false tests.
9651         (ix86_expand_int_vcond): If SSE5 generate all possible integer
9652         comparisons.
9653         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
9654         says ignore whether the last reference is a memory operand.
9655
9656 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
9657             Paolo Bonzini <bonzini at gnu dot org>
9658
9659         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
9660         shift patterns.
9661
9662         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
9663         (vlshr<mode>3): Rename from vlshr<mode>3.
9664         (vashr<mode>3): Rename from vashr<mode>3.
9665         (mulv4sf3): Change the names of vector shift patterns.
9666         (mulv4si3): Ditto.
9667         (negv4sf2): Ditt.
9668
9669         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
9670         shift insns.
9671
9672         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
9673         (SI_SHLHI): Ditto.
9674         (SI_SHL): Ditto.
9675         (SI_SHLI): Ditto.
9676         (SI_ROTH): Ditto.
9677         (SI_ROTHI): Ditto.
9678         (SI_ROT): Ditto.
9679         (SI_ROTI): Ditto.
9680         (SPU_RL_0): Ditto.
9681         (SPU_RL_1): Ditto.
9682         (SPU_RL_2): Ditto.
9683         (SPU_RL_3): Ditto.
9684         (SPU_RL_4): Ditto.
9685         (SPU_RL_5): Ditto.
9686         (SPU_RL_6): Ditto.
9687         (SPU_RL_7): Ditto.
9688         (SPU_SL_0): Ditto.
9689         (SPU_SL_1): Ditto.
9690         (SPU_SL_2): Ditto.
9691         (SPU_SL_3): Ditto.
9692         (SPU_SL_4): Ditto.
9693         (SPU_SL_5): Ditto.
9694         (SPU_SL_6): Ditto.
9695         (SPU_SL_7): Ditto.
9696
9697         * config/spu/spu.md (v): New iterator macro to add v for vector types.
9698         (floatunssidf2_internal): Change vector/vector shift names.
9699         (floatunsdidf2_internal): Ditto.
9700         (mulv8hi3): Ditto.
9701         (ashrdi3): Ditto.
9702         (ashrti3): Ditto.
9703         (cgt_df): Ditto.
9704         (cgt_v2df): Ditto.
9705         (dftsv): Ditto.
9706         (vashl<mode>3): Rename from ashl<mode>3.
9707         (vashr<mode>3): Rename from ashr<mode>3.
9708         (vlshr<mode>3): Rename from lshr<mode>3.
9709         (vrotl<mode>3): Rename from rotl<mode>3.
9710
9711 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
9712
9713         PR target/36224
9714         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
9715         multiply gives the wrong value when doing widening multiplies.
9716         (vec_widen_smult_lo_v4si): Ditto.
9717
9718 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
9719
9720         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
9721         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
9722         emit_library_call_value.
9723         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
9724         * tree.h (ECF_LIBCALL_BLOCK): Removed.
9725         * calls.c (initialize_argument_information, precompute_arguments,
9726         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
9727         (precompute_arguments): Removed flags parameter.
9728         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
9729
9730 2008-05-14  Richard Guenther  <rguenther@suse.de>
9731
9732         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
9733         Make sure to register the store if the use is a PHI_NODE.
9734
9735 2008-05-14  Olivier Hainque  <hainque@adacore.com>
9736
9737         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
9738         memory if the component is to be referenced in BLKmode according
9739         to get_inner_reference.
9740
9741 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
9742
9743         * calls.c (emit_library_call_value_1): Restore code clearing
9744         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
9745
9746 2008-05-14  Olivier Hainque  <hainque@adacore.com>
9747             Nicolas Roche  <roche@adacore.com>
9748
9749         * configure.ac: Add support for a "gcc_subdir" variable in
9750         config-lang.in, to denote a subdirectory where the language/GCC
9751         integration files are to be found.
9752         * configure: Regenerate.
9753
9754 2008-05-14  Ira Rosen  <irar@il.ibm.com>
9755
9756         PR tree-optimization/36098
9757         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
9758         value for the first load in the group in case of a gap.
9759         (vect_build_slp_tree): Check that there are no gaps in loads.
9760
9761 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
9762
9763         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
9764         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
9765         expand_copysign_bit, ): Change call to emit_no_conflict_block to
9766         emit_insn and remove unneeded code to construct extra args.
9767         (emit_no_conflict_block): Removed.
9768         * optabls.h: (emit_no_conflict_block): Removed.
9769         * cse.c (cse_extended_basic_block): Remove search for
9770         REG_NO_CONFLICT note.
9771         * global.c: Removed incorrect comment added in revision 117.
9772         * expr.c (convert_move): Change call to emit_no_conflict_block to
9773         emit_insn.
9774         * recog.c: Change comments so that they do not mention
9775         REG_NO_CONFLICT.
9776         * local_alloc.c (combine_regs): Removed last parameter.
9777         (no_conflict_p): Removed.
9778         (block_alloc): Removed note, no_conflict_combined_regno and set
9779         local vars. Removed all code to process REG_NO_CONFLICT blocks.
9780         (combine_regs): Removed already_dead and code to look for
9781         REG_NO_CONFLICT notes.
9782         * lower_subreg (remove_retval_note): Removed code to look for
9783         REG_NO_CONFLICT block.
9784         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
9785         (resolve_clobber): Remove code to process libcalls that have
9786         REG_NO_CONFLICT notes.
9787         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
9788         case.
9789         * combine.c (can_combine_p, distribute_notes):  Removed
9790         REG_NO_CONFLICT case.
9791         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
9792         to emit_insns.
9793         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
9794         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
9795         Ditto.
9796         * reg-notes.def (NO_CONFLICT): Removed.
9797
9798 2008-05-14  David S. Miller  <davem@davemloft.net>
9799
9800         * config/sparc/sparc.c (sparc_profile_hook): If
9801         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
9802         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
9803         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
9804
9805 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
9806
9807         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
9808
9809 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
9810
9811         PR target/36222
9812         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
9813         and op1 expansion before vector concat to have less live pseudos.
9814
9815 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
9816
9817         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
9818         ix86_expand_vector_set if supported.
9819
9820 2008-05-13  Diego Novillo  <dnovillo@google.com>
9821             Kenneth Zadeck  <zadeck@naturalbridge.com>
9822
9823         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
9824
9825         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
9826         phinodes_print_statistics, init_ssanames, fini_ssanames,
9827         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
9828         release_ssa_name, release_defs, replace_ssa_name_symbol,
9829         ssanames_print_statistics): Move ...
9830         * tree-flow.h: ... here.
9831         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
9832         Use FN instead of cfun.
9833         (make_ssa_name_fn): Rename from make_ssa_name.
9834         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
9835         * tree-flow-inline.h (make_ssa_name): Move from
9836         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
9837         * omp-low.c (expand_omp_parallel):
9838         * tree-flow-inline.h (redirect_edge_var_map_result):
9839         * tree-ssa.c (init_tree_ssa): Add argument FN.
9840         Use it instead of cfun.  Update all users.
9841
9842 2008-05-13  Tom Tromey  <tromey@redhat.com>
9843
9844         PR preprocessor/22168:
9845         * doc/cpp.texi (Top): Update menu.
9846         (Alternatives to Wrapper #ifndef): New node.
9847         (Other Directives): Document deprecation.
9848         (Obsolete Features): Remove menu.
9849         (Assertions): Merge node into Obsolete Features.
9850         (Obsolete once-only headers): Move earlier; rename to Alternatives
9851         to Wrapper #ifndef.
9852         * doc/cppopts.texi: Update.
9853         * c.opt (Wdeprecated): Enable for C and ObjC.
9854         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
9855         (C++ Dialect Options): Move -Wno-deprecated from here to...
9856         (Warning Options): ... here.
9857
9858 2008-05-13  Richard Guenther  <rguenther@suse.de>
9859
9860         PR middle-end/36227
9861         * fold-const.c (fold_sign_changed_comparison): Do not allow
9862         changes in pointer-ness.
9863
9864 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
9865
9866         PR target/24713
9867         * config/sh/sh.c (sh_expand_prologue): Don't clear
9868         RTX_FRAME_RELATED_P for push insns.
9869
9870 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
9871
9872         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
9873
9874 2008-05-12  Anatoly Sokolov <aesok@post.ru>
9875
9876         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
9877         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
9878         Use 'machine->is_leaf' instead of 'leaf_func_p'.
9879
9880 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
9881
9882         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
9883         (*vec_concatv4sf_sse): This.
9884         (*sse2_concatv2si): Renamed to ...
9885         (*vec_concatv2si_sse2): This.
9886         (*sse1_concatv2si): Renamed to ...
9887         (*vec_concatv2si_sse): This.
9888         (*vec_concatv2di_rex): Renamed to ...
9889         (*vec_concatv2di_rex64): This.
9890         (*vec_concatv2si_sse4_1): New.
9891         (*vec_concatv2di_rex64_sse4_1): Likewise.
9892
9893 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
9894
9895         PR rtl-optimization/36111
9896         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
9897         that was created for swappable operands.
9898
9899 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
9900
9901         PR ada/36001
9902         * Makefile.in: Substitute GNATMAKE and GNATBIND.
9903         * configure.ac: Add call to ACX_PROG_GNAT.
9904
9905 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
9906
9907         * optc-gen.awk: Fix comment typo.
9908
9909 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
9910
9911         * pretty-print.c (pp_integer_with_precision): Use
9912         HOST_LONG_LONG_FORMAT.
9913
9914 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
9915
9916         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
9917
9918 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
9919
9920         * config/i386/i386.c (bdesc_ptest): Removed.
9921         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
9922         (bdesc_args): Add __builtin_ia32_ptestz128,
9923         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
9924         (ix86_init_mmx_sse_builtins): Updated.
9925         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
9926         (ix86_expand_builtin): Updated.
9927
9928 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
9929
9930         * tree-cfg.c (valid_fixed_convert_types_p): New function.
9931         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
9932
9933 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
9934
9935         * value-prof.c (interesting_stringop_to_profile): Do not
9936         return early for BUILT_IN_MEMPCPY.
9937
9938 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
9939
9940         * calls.c (expand_call): Don't use callgraph to increase
9941         preferred_stack_boundary.
9942
9943         * cgraph.h (cgraph_rtl_info): Use unsigned on
9944         preferred_incoming_stack_boundary.
9945
9946         * final.c (rest_of_clean_state): Use unsigned on
9947         preferred_stack_boundary.
9948
9949 2008-05-09  Tom Tromey  <tromey@redhat.com>
9950
9951         PR preprocessor/22231:
9952         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
9953         proceeding.
9954
9955 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
9956
9957         PR tree-optimization/36129
9958         * tree-ssa-ccp.c: Include value-prof.h.
9959         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
9960         built-in function was folded to a constant.
9961         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
9962
9963 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
9964             Sebastian Pop  <sebastian.pop@amd.com>
9965
9966         * tree-scalar-evolution.c: Document instantiate_scev.
9967         (instantiate_parameters_1): Renamed instantiate_scev_1.
9968         Don't use the same loop for instantiation_loop and evolution_loop.
9969         (instantiate_scev): New.
9970         (instantiate_parameters): Moved...
9971         (resolve_mixers): Update call to instantiate_scev_1 to pass the
9972         same loop twice.  Maintains the semantics for this function.
9973         * tree-scalar-evolution.h (instantiate_scev): Declare.
9974         (instantiate_parameters): ...here.  Now static inline.
9975         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
9976         instead of resolve_mixers.
9977
9978 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
9979
9980         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
9981
9982 2008-05-09  Tomas Bily  <tbily@suse.cz>
9983
9984         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
9985         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
9986         * tree-ssa-structalias.c (get_constraint_for): Likewise.
9987         * c-common.c (c_common_truthvalue_conversion): Likewise.
9988         * tree-object-size.c (compute_object_offset): Likewise.
9989         * tree-inline.c (estimate_num_insns_1): Likewise.
9990         * varasm.c (const_hash_1, compare_constant, copy_constant)
9991         (compute_reloc_for_constant, output_addressed_constants)
9992         (initializer_constant_valid_p): Likewise.
9993         * c-omp.c (check_omp_for_incr_expr): Likewise.
9994         * gimplify.c (gimplify_expr): Likewise.
9995         * c-typeck.c (c_finish_return): Likewise.
9996         * tree-vectorizer.c (supportable_widening_operation)
9997         (supportable_narrowing_operation): Likewise.
9998         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
9999         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
10000         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
10001         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
10002         (descr_info_loc): Likewise.
10003         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
10004         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
10005         (fold_unary): Likewise.
10006         * builtins.c (get_pointer_alignment): Likewise.
10007         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
10008         (instantiate_parameters_1): Likewise.
10009         * tree.c (expr_align, stabilize_reference): Likewise.
10010         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
10011         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
10012         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
10013         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
10014         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
10015         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
10016         Likewise.
10017         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
10018         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
10019         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
10020         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
10021         (forward_propagate_comparison)
10022         (tree_ssa_forward_propagate_single_use_vars): Likewise.
10023         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
10024         * emit-rtl.c (component_ref_for_mem_expr)
10025         (set_mem_attributes_minus_bitpos): Likewise.
10026         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
10027         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
10028         Likewise.
10029         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
10030         (build_function_call, pointer_diff, build_compound_expr)
10031         (c_finish_return): Likewise.
10032         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
10033         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
10034         Likewise.
10035         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
10036         * expr.c (is_aligning_offset): Likewise.
10037         * tree-ssa-alias.c (is_escape_site): Likewise.
10038         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
10039         (check_all_va_list_escapes): Likewise.
10040         * tree-ssa-loop-ivopts.c (determine_base_object)
10041         (determine_common_wider_type): Likewise.
10042         * dojump.c (do_jump): Likewise.
10043         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
10044         * tree-gimple.c (is_gimple_cast): Likewise.
10045         * fold-const.c (decode_field_reference, )
10046         (fold_sign_changed_comparison, fold_unary, fold_comparison)
10047         (fold_binary): Likewise.
10048         * tree-ssa-alias-warnings.c (find_alias_site_helper)
10049         (already_warned_in_frontend_p): Likewise.
10050         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
10051         * tree.c (really_constant_p, get_unwidened): Likewise.
10052         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
10053         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
10054         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
10055         Likewise.
10056         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
10057         CONVERT_EXPR_P.
10058         (CONVERT_EXPR_P): Define.
10059         (CASE_CONVERT): Define.
10060
10061 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
10062
10063         PR middle-end/36117
10064         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
10065         (delete_unmarked_insns): When deleting a call, call
10066         delete_unreachable_blocks.
10067         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
10068         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
10069
10070 2008-05-08  Richard Guenther  <rguenther@suse.de>
10071
10072         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
10073         (-ftree-salias): Likewise.
10074         (salias-max-implicit-fields): Remove param documentation.
10075         (salias-max-array-elements): Likewise.
10076         * tree-pass.h (pass_create_structure_vars): Remove.
10077         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
10078         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
10079         * tree-ssa-alias.c (create_structure_vars): Remove.
10080         (gate_structure_vars): Likewise.
10081         (pass_create_structure_vars): Likewise.
10082         (gate_build_alias): Likewise.
10083         (pass_build_alias): Adjust to run always and dump the function.
10084         * common.opt (ftree-salias): Hide.
10085         * passes.c (init_optimization_passes): Remove
10086         pass_create_structure_vars, adjust comment.
10087         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
10088         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
10089         * opts.c (decode_options): Do not set flag_tree_salias.
10090         (common_handle_option): Add OPT_ftree_salias to the backward
10091         compatibility section.
10092
10093 2008-05-08  Richard Guenther  <rguenther@suse.de>
10094
10095         * tree-flow-inline.h (var_can_have_subvars): Move ...
10096         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
10097         * tree-flow.h (var_can_have_subvars): Remove.
10098         (push_fields_onto_fieldstack): Remove.
10099         (sort_fieldstack): Likewise.
10100         (struct fieldoff): Move ...
10101         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
10102         alias_set and base_for_components fields.
10103         (sort_fieldstack): Make static.
10104         (push_fields_onto_fieldstack): Likewise.  Remove code that
10105         handles anything but RECORD_TYPEs.  Remove alias_set and
10106         base_for_components handling.
10107         (create_variable_info_for): Adjust.
10108
10109 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
10110
10111         * common.opt (Wframe-larger-than=): Shorten the help message
10112         to one line.
10113         * doc/invoke.texi (Wframe-larger-than=): Add more description.
10114
10115 2008-05-08  Rafael Espindola  <espindola@google.com>
10116
10117         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
10118         trap.
10119         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
10120         trap and that both operands are gimple values.
10121         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
10122         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
10123         is a fp operation.
10124
10125 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
10126
10127         * read-rtl.c (join_c_conditions): Return the first string if the
10128         two strings are equal.
10129
10130 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
10131
10132         * gensupport.h (pred_data): Add a "num_codes" field.
10133         (add_predicate_code): Declare.
10134         * gensupport.c (add_predicate_code): New function.
10135         (std_pred_table): Add an "allows_const_p" field.
10136         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
10137         Remove the (incomplete) list of such codes from the codes field.
10138         (init_predicate_table): Use add_predicate_code.  Add all
10139         RTX_CONST_OBJs if allows_const_p is true.
10140         * genrecog.c (process_define_predicate): Use add_predicate_code.
10141
10142 2008-05-08  David Daney  <ddaney@avtrex.com>
10143             Richard Sandiford  <rsandifo@nildram.co.uk>
10144
10145         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
10146         special case of constant zero operands.
10147         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
10148         old and new values.  Special case constant zero values.
10149         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
10150         fails.
10151         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
10152         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
10153
10154 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
10155
10156         PR target/36090
10157         * simplify-rtx.c (simplify_plus_minus): Create CONST of
10158         similar RTX_CONST_OBJ before CONST_INT.
10159
10160 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
10161
10162         * stmt.c (expand_stack_restore): Change sa mode if needed.
10163
10164 2008-05-08  Richard Guenther  <rguenther@suse.de>
10165
10166         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
10167         return type to bool.
10168         (ix86_sol10_return_in_memory): Likewise.
10169         (ix86_i386elf_return_in_memory): Likewise.
10170         (ix86_i386interix_return_in_memory): Likewise.
10171         * config/i386/i386.c (ix86_return_in_memory): Likewise.
10172         (ix86_sol10_return_in_memory): Likewise.
10173         (ix86_i386elf_return_in_memory): Likewise.
10174         (ix86_i386interix_return_in_memory): Likewise.
10175
10176 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
10177
10178         PR bootstrap/36180
10179         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
10180         fndecl argument.
10181         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
10182         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
10183         declared in front.
10184
10185 2008-05-08  Richard Guenther  <rguenther@suse.de>
10186
10187         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
10188         * tree-data-ref.h (struct dr_alias): Remove subvars field.
10189         (DR_SUBVARS): Remove.
10190         * tree-dfa.c (dump_subvars_for): Remove.
10191         (debug_subvars_for): Likewise.
10192         (dump_variable): Do not dump subvars.
10193         (remove_referenced_var): Do not remove subvars.
10194         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
10195         (lookup_subvars_for_var): Remove.
10196         (get_subvars_for_var): Likewise.
10197         (get_subvars_at): Likewise.
10198         (get_first_overlapping_subvar): Likewise.
10199         (overlap_subvar): Likewise.
10200         * tree-flow.h (subvar_t): Remove.
10201         (struct var_ann_d): Remove subvars field.
10202         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
10203         argument.  Remove special handling of SFTs.
10204         (compute_tag_properties): Likewise.
10205         (set_initial_properties): Likewise.
10206         (compute_call_clobbered): Likewise.
10207         (count_mem_refs): Likewise.
10208         (compute_memory_partitions): Likewise.
10209         (compute_flow_insensitive_aliasing): Likewise.
10210         (setup_pointers_and_addressables): Likewise.
10211         (new_type_alias): Likewise.
10212         (struct used_part): Remove.
10213         (used_portions): Likewise.
10214         (struct used_part_map): Likewise.
10215         (used_part_map_eq): Likewise.
10216         (used_part_map_hash): Likewise.
10217         (free_used_part_map): Likewise.
10218         (up_lookup): Likewise.
10219         (up_insert): Likewise.
10220         (get_or_create_used_part_for): Likewise.
10221         (create_sft): Likewise.
10222         (create_overlap_variables_for): Likewise.
10223         (find_used_portions): Likewise.
10224         (create_structure_vars): Likewise.
10225         * tree.def (STRUCT_FIELD_TAG): Remove.
10226         * tree.h (MTAG_P): Adjust.
10227         (struct tree_memory_tag): Remove base_for_components and
10228         unpartitionable flags.
10229         (struct tree_struct_field_tag): Remove.
10230         (SFT_PARENT_VAR): Likewise.
10231         (SFT_OFFSET): Likewise.
10232         (SFT_SIZE): Likewise.
10233         (SFT_NONADDRESSABLE_P): Likewise.
10234         (SFT_ALIAS_SET): Likewise.
10235         (SFT_UNPARTITIONABLE_P): Likewise.
10236         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
10237         (union tree_node): Remove sft field.
10238         * alias.c (get_alias_set): Remove special handling of SFTs.
10239         * print-tree.c (print_node): Remove handling of SFTs.
10240         * tree-dump.c (dequeue_and_dump): Likewise.
10241         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
10242         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
10243         * tree-predcom.c (set_alias_info): Do not set subvars.
10244         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
10245         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
10246         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
10247         (add_vars_for_offset): Remove.
10248         (add_virtual_operand): Remove special handling of SFTs.
10249         (add_call_clobber_ops): Likewise.
10250         (add_call_read_ops): Likewise.
10251         (get_asm_expr_operands): Likewise.
10252         (get_modify_stmt_operands): Likewise.
10253         (get_expr_operands): Likewise.
10254         (add_to_addressable_set): Likewise.
10255         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
10256         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
10257         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
10258         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
10259         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
10260         (tree_node_structure): Likewise.
10261         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
10262         handling of SFTs.
10263         (find_what_p_points_to): Likewise.
10264
10265 2008-05-08  Sa Liu  <saliu@de.ibm.com>
10266
10267         * config/spu/spu.md: Fixed subti3 pattern.
10268
10269 2008-05-08  Richard Guenther  <rguenther@suse.de>
10270
10271         PR middle-end/36154
10272         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
10273         sure to create a representative for trailing arrays for PTA.
10274
10275 2008-05-08  Richard Guenther  <rguenther@suse.de>
10276
10277         PR middle-end/36172
10278         * fold-const.c (operand_equal_p): Two objects which types
10279         differ in pointerness are not equal.
10280
10281 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
10282
10283         * calls.c (compute_argument_block_size): Add argument tree fndecl.
10284         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
10285         (emit_library_call_value_1): Add new variable fndecl initialized by
10286         NULL_TREE. It should be the decl type of orgfun, but this information
10287         seems not to be available here, so it uses the default calling abi.
10288         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
10289         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
10290         by TARGET_RETURN_IN_MEMORY.
10291         * config/i386/i386-interix.h: Likewise.
10292         * config/i386/i386.h: Likewise.
10293         * config/i386/i386elf.h: Likewise.
10294         * config/i386/ptx4-i.h: Likewise.
10295         * config/i386/sol2-10.h: Likewise.
10296         * config/i386/sysv4.h: Likewise.
10297         * config/i386/vx-common.h: Likewise.
10298         * config/cris/cris.h: Removed #if 0 clause.
10299         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
10300         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
10301         argument.
10302         (ix86_sol10_return_in_memory): Likewise.
10303         (ix86_i386elf_return_in_memory): New.
10304         (ix86_i386interix_return_in_memory): New.
10305         * config/mt/mt-protos.h (mt_return_in_memory): New.
10306         * config/mt/mt.c: Likewise.
10307         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
10308         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
10309         * config/bfin/bfin.h: Likewise.
10310         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
10311         argument.
10312         * config/bfin/bfin.c: Likewise.
10313         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
10314         * config/alpha/unicosmk.h: Likewise.
10315         * config/i386/cygming.h: Likewise.
10316         * config/iq2000/iq2000.h: Likewise.
10317         * config/mips/mips.h: Likewise.
10318         * config/mn10300/mn10300.h: Likewise.
10319         * config/rs6000/rs6000.h: Likewise.
10320         * config/score/score.h: Likewise.
10321         * config/spu/spu.h: Likewise.
10322         * config/v850/v850.h: Likewise.
10323         * defaults.h: Likewise.
10324         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
10325         * expr.c (emit_block_move): Adjust use of
10326         OUTGOING_REG_PARM_STACK_SPACE.
10327         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
10328         OUTGOING_REG_PARM_STACK_SPACE.
10329         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
10330
10331 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
10332
10333         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
10334         on OMP_RETURN for OMP_FOR.
10335
10336         PR debug/35896
10337         * dwarf2out.c (dw_expand_expr, common_check): Removed.
10338         (fortran_common): New function.
10339         (gen_variable_die): Call fortran_common instead of common_check,
10340         adjust for it returning tree instead of rtx.  Formatting.
10341
10342 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
10343
10344         PR rtl/7335
10345         PR rtl/33826
10346         * see.c (see_copy_insn): Copy new pure const attributes for new call.
10347         * c-decl.c (merge_decls): Ditto.
10348         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
10349         to RTL_CONST_OR_PURE_CALL_P.
10350         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
10351         Initialized DECL_LOOPING_CONST_PURE.
10352         (process_call_operands): Set tree_side_effects properly.
10353         * tree.h (TREE_READONLY_DECL_P): Removed.
10354         (DECL_IS_PURE): Renamed to DECL_PURE_P.
10355         (DECL_LOOPING_OR_CONST_P): New macro.
10356         (struct tree_function_decl): Added looping_const_or_pure_p.
10357         (ECF_*) Renumbered.
10358         (ECF_LOOPING_OR_CONST_P): New macro.
10359         * rtlanal.c (pure_const_p): Removed.
10360         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
10361         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
10362         to RTL_CONST_CALL_P.
10363         * ipa-pure-const.c (pure_const_state_e): Added looping field.
10364         (check_decl, check_tree, check_call, scan_function): Initialize
10365         looping.
10366         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
10367         (static_execute): Set looping true for recursive functions.
10368         Undo setting state to IPA_NEITHER for recursive functions.
10369         * cse.c (cse_insn):
10370         * ifcvt.c (noce_can_store_speculate_p): Changed
10371         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
10372         RTL_CONST_OR_PURE_CALL_P.
10373         * dse.c (scan_insn): Ditto.
10374         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
10375         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
10376         RTL_CONST_OR_PURE_CALL_P.
10377         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
10378         pure_call_p to RTL_CONST_CALL_P.
10379         * gimplify.c (gimplify_call_expr): Clear side effects for
10380         non-looping pure and constant calls.
10381         * calls.c (emit_call_1): Set rtl flags from ecf flags.
10382         (flags_from_decl_or_type): Set ecf flags from decl flags.
10383         (initialize_argument_information): Turn off
10384         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
10385         Change const to pure if callee_copies is true rather than just
10386         turning off const.
10387         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
10388         way of marking pure calls.
10389         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
10390         Remove hack that was supposed to fix pr7335 and remove old
10391         way of marking pure calls.
10392         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
10393         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
10394         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
10395         RTL_CONST_OR_PURE_CALL_P.
10396         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
10397         * loop-invariant.c (find_exits, find_invariant_bb): Changed
10398         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
10399         * sched-deps.c (schedule_analyze): Ditto.
10400         * rtl.h (struct rtx_def): Use call field, unchanging field, and
10401         return_val field of calls to represent pure and const function info.
10402         (CONST_OR_PURE_CALL_P): Deleted macro.
10403         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
10404         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
10405         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
10406         TREE_READONLY.
10407         * tree-optimize.c (execute_fixup_cfg): Added test for
10408         ECF_LOOPING_CONST_OR_PURE.
10409         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
10410         DECL_PURE_P.
10411         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
10412         effects for looping pure or const calls.
10413         (verify_gimple_expr): Added verification code.
10414         * config/alpha/alpha.c (alpha_legitimize_address,
10415         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
10416         RTL_CONST_CALL_P.
10417         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
10418         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
10419         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
10420         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
10421         RTL_CONST_OR_PURE_CALL_P.
10422         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
10423         and const calls to be deleted.
10424
10425 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
10426
10427         PR target/35714
10428         * config/i386/mmx.md (mmx_subv2sf3): New expander.
10429         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
10430         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
10431         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
10432         to handle nonimmediate operands.
10433         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
10434         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
10435         to handle nonimmediate operands.
10436         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
10437         (mmx_pmulhrwv4hi3): New expander.  Use
10438         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10439         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
10440         (sse2_umulv1siv1di3): New expander.  Use
10441         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10442         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
10443         (mmx_eq<mode>3): New expander.  Use
10444         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10445         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
10446         (mmx_uavgv8qi3): New expander.  Use
10447         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10448         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
10449         (mmx_uavgv4hi3): New expander.  Use
10450         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10451
10452         * config/i386/sse.md
10453         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
10454         to handle nonimmediate operands.
10455         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
10456         to handle nonimmediate operands.
10457         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
10458         to handle nonimmediate operands.
10459         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
10460         to handle nonimmediate operands.
10461         (sse2_unpckhpd_exp): New expander.  Use
10462         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10463         (sse2_unpcklpd_exp): New expander.  Use
10464         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10465         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
10466         to handle nonimmediate operands.
10467         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
10468         to handle nonimmediate operands.
10469         (*sse2_<plusminus_insn><mode>3): Rename from
10470         sse2_<plusminus_insn><mode>3 insn pattern.
10471         (sse2_<plusminus_insn><mode>3): New expander.  Use
10472         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10473         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
10474         (sse2_umulv2siv2di3): New expander.  Use
10475         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10476         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
10477         (sse4_1_mulv2siv2di3): New expander.  Use
10478         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10479         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
10480         (sse2_pmaddwd): New expander.  Use
10481         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10482         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
10483         (sse2_eq<mode>3): New expander.  Use
10484         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10485         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
10486         (sse4_1_eqv2di3): New expander.  Use
10487         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10488         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
10489         (sse2_uavgv16qi3): New expander.  Use
10490         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10491         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
10492         (sse2_uavgv16qi3): New expander.  Use
10493         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10494         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
10495         (sse2_uavgv8hi3): New expander.  Use
10496         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10497         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
10498         (ssse3_pmulhrswv8hi3): New expander.  Use
10499         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10500         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
10501         (ssse3_pmulhrswv4hi3): New expander.  Use
10502         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10503
10504         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
10505         (<sse>_vmmul<mode>3): Ditto.
10506         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
10507         (divv2df3): Ditto.
10508         (ssse3_pmaddubsw128): Use register_operand for operand 1.
10509         (ssse3_pmaddubsw): Ditto.
10510
10511         * config/i386/i386.c (struct_builtin_description)
10512         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
10513         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
10514         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
10515         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
10516         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
10517         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
10518         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
10519         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
10520         (ix86_fixup_binary_operands): Assert that src1
10521         and src2 must have the same mode when swapped.
10522         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
10523         and ix86_binary_operator_ok.  Do not force operands in registers
10524         when optimizing.
10525
10526 2008-05-07  Jan Hubicka  <jh@suse.cz>
10527
10528         * cgraph.c (dump_cgraph_node): Update.
10529         * cgraph.h (cgraph_local_info): Break out inline summary.
10530         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
10531         hook.
10532         * ipa-inline (inline_summary): New accestor function.
10533         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
10534         cgraph_decide_inlining, compute_inline_parameters): Update.
10535         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
10536
10537 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
10538
10539         Cleanup ColdFire scheduling support and add V4 pipeline model.
10540
10541         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
10542         (define_attr cpu): Add cfv4 value.
10543         (define_attr type, define_attr type1): Merge into a single 'type'
10544         attribute.  Update all uses.
10545         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
10546         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
10547         Update all uses.
10548         (define_attr opx_mem, define_attr opy_mem): Remove.
10549         (define_attr op_mem): Clean up, update comment.
10550         (define_attr size): Use specific values instead of general int.
10551         (define_attr guess, define_attr split): Remove.  Update all uses.
10552         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
10553         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
10554         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
10555         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
10556         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
10557         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
10558         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
10559         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
10560         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
10561         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
10562         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
10563         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
10564         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
10565         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
10566         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
10567         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
10568         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
10569         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
10570         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
10571         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
10572         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
10573         Update or set attributes.
10574         (stack_tie): New fake instruction.
10575
10576         * config/m68k/m68k.h (TUNE_CFV4): New macro.
10577         (m68k_sched_attr_size): Update declaration.
10578         (m68k_sched_attr_type2): Remove.
10579         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
10580         Declare new bypass predicates.
10581
10582         * config/m68k/m68k.c (m68k_sched_issue_rate,
10583         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
10584         implementations.
10585         (TARGET_SCHED_ISSUE_RATE,
10586         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
10587         (override_options): Handle scheduling for ColdFire V4 core.
10588         (m68k_expand_prologue): Emit stack_tie.
10589         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
10590         'OP_TYPE_FPN'.  Update all uses.
10591         (sched_guess_p): Remove.
10592         (sched_address_type): Handle symbolic addresses.
10593         (sched_get_operand): New static function.
10594         (sched_operand_type): Merge into sched_attr_op_type.
10595         (sched_attr_op_type): Handle FP registers, handle quick constants,
10596         update.
10597         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
10598         (m68k_sched_attr_size): Update.  Move logic to ...
10599         (sched_get_attr_size_int): New static function.
10600         (sched_get_opxy_mem_type): New static function.
10601         (m68k_sched_attr_op_mem): Update.
10602         (m68k_sched_attr_type2): Remove.
10603         (sched_cfv4_bypass_data): New static variable.
10604         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
10605         (m68k_sched_issue_rate): Implement scheduler hook.
10606         (struct _sched_ib: enabled_p): New field.
10607         (m68k_sched_variable_issue): Update.  Handle V4.
10608         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
10609         sched_dump_class_func_t, sched_dump_split_class,
10610         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
10611         sched_dump_dfa_class, m68k_sched_dump): Remove.
10612         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
10613         hook.
10614         (m68k_sched_init_global): Remove statisctics dumping, introduce
10615         sanity check that all instructions have pipeline reservations.  Handle
10616         ColdFire V4 core.
10617         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
10618         Handle ColdFire V4 core.
10619         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
10620         New static functions.
10621         (m68k_sched_address_bypass_p): New bypass predicate.
10622         (sched_get_indexed_address_scale): New static function.
10623         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
10624
10625         * cf.md: Update comments.
10626         (define_attr type2): Remove.  Use 'type' attribute instead.
10627         Update all uses.
10628         (cf_ib): Rename to cfv123_ib.  Update all uses.
10629         (cf_oep): Rename to cfv123_oep.  Update all uses.
10630         (cf_chr): Rename to cfv123_chr.  Update all uses.
10631         (cf_mem): Rename to cfv123_mem.  Update all uses.
10632         (cf_mac): Move to more appropriate place.
10633         (cfv123_guess): New automaton and cpu_unit.
10634         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
10635         Update uses of 'size' attribute.  Handle before reload scheduling.
10636         (cfv123_guess): New dummy reservation for unhandled instructions.
10637         (cfv4_*): Pipeline description of ColdFire V4 core.
10638         (ignore): New reservation to handle 'ignore' type.
10639
10640 2008-05-07  Ian Lance Taylor  <iant@google.com>
10641
10642         PR middle-end/36013
10643         * gimplify.c (find_single_pointer_decl_1): Don't look through
10644         indirections.
10645         (find_single_pointer_decl): Adjust comments.
10646
10647 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
10648
10649         PR middle-end/36137
10650         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
10651         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
10652
10653         PR middle-end/36106
10654         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
10655         integral type rather than floating point, then VIEW_CONVERT_EXPR
10656         to the floating point type.
10657
10658 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
10659
10660         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
10661         TFmode op0 to register.
10662
10663 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
10664
10665         * c-decl.c (grokdeclarator): Comment typo.
10666
10667 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
10668
10669         * tree-flow.h: Remove prototype for computed_goto_p.
10670         * tree-cfg.c (computed_goto_p): Make static.
10671
10672 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
10673
10674         PR target/35657
10675         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
10676         (contains_aligned_value_p): This.  Handle _Decimal128.
10677         (ix86_function_arg_boundary): Only align _Decimal128 to its
10678         natural boundary and handle it properly.
10679
10680 2008-05-06  Martin Jambor  <mjambor@suse.cz>
10681
10682         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
10683         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
10684         (ipcp_method_set_orig_node): Removed.
10685         (ipcp_cval_get_cvalue_type): Removed.
10686         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
10687         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
10688         (ipcp_cval_set_cvalue_type): Removed.
10689         (ipcp_cval_get_cvalue): Removed.
10690         (ipcp_cval_set_cvalue): Removed.
10691         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
10692         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
10693         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
10694         (ipcp_cval_meet): Renamed to ipa_lattice_meet
10695         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
10696         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
10697         (ipcp_get_ith_lattice): Changed parameters.
10698         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
10699         (ipcp_lattice_from_jfunc): Changed parameters.
10700         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
10701         (ipcp_method_cval_print): Added temporary variable info.
10702         (ipcp_redirect): Removed already unused local variable caller.
10703         (ipcp_redirect): New temporary variable orig_callee_info
10704         (ipcp_redirect): Removed newly unused local variable callee.
10705         (ipcp_redirect): Removed (a bit confusing) local variable type.
10706         (ipcp_insert_stage): Added local variable info.
10707         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
10708         renamed too
10709         (ipcp_formal_create): Removed.
10710         (ipcp_method_cval_set): Removed.
10711         (ipcp_propagate_stage): Renamed lattice variables.
10712         (ipcp_method_cval_set_cvalue_type): Removed.
10713         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
10714         (ipcp_print_all_lattices): Changed printed strings to refer to
10715         lattices rather than cvals.
10716         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
10717         (ipcp_propagate_const): Changed formal parameters.
10718         (build_const_val): Changed formal parameters.
10719         (ipcp_insert_stage): Removed useless variable cvalue
10720         (build_const_val): Changed formal parameters.
10721         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
10722         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
10723         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
10724         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
10725         (ipcp_print_func_profile_counts): Changed string from "method" to
10726         "function"
10727         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
10728         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
10729         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
10730         (ipcp_structures_print): Renamed to ipcp_print_all_structures
10731         (ipcp_profile_print): Renamed to ipcp_print_profile_data
10732         (ipcp_lat_is_const): Changed parameters and made inline.
10733         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
10734         (ipcp_redirect): Renamed to ipcp_need_redirect_p
10735         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
10736         the predicate condition directly
10737         (ipcp_propagate_stage): Added local variable args. Removed local
10738         variable callee.  (Both are mere code simplifications.)
10739         (ipcp_method_dont_insert_const): Renamed to
10740         ipcp_node_not_modifiable_p.
10741         (ipcp_node_not_modifiable_p): Made inline.
10742         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
10743         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
10744         (ipcp_print_all_lattices): Removed variable cvalue
10745         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
10746         Updated comments.
10747
10748 2008-05-06  Olivier Hainque  <hainque@adacore.com>
10749
10750         * tree-sra.c (try_instantiate_multiple_fields): Early return
10751         if field has POINTER_TYPE.
10752
10753 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
10754
10755         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
10756         by using 'q' specifier for instruction.
10757         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
10758
10759 2008-05-06  Anatoly Sokolov <aesok@post.ru>
10760
10761         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
10762         Change mode of zero_extract from QImode to HImode.
10763         (sign bit tests peepholes): (Ditto.).
10764
10765 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
10766
10767         * config/i386/mmx.md: Remove double backslashes from asm templates.
10768         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
10769         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
10770         to handle nonimmediate operands.
10771         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
10772         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
10773         to handle nonimmediate operands.
10774         (*mmx_<code>v2sf3_finite): New insn pattern.
10775         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
10776         (mmx_<code>v2sf3): New expander.  Use
10777         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10778         (mmx_<plusminus_insn><mode>3): New expander.  Use
10779         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10780         (*mmx_<plusminus_insn><mode>3): New insn pattern.
10781         (mmx_add<mode>3): Removed.
10782         (mmx_ssadd<mode>3): Ditto.
10783         (mmx_usadd<mode>3): Ditto.
10784         (mmx_sub<mode>3): Ditto.
10785         (mmx_sssub<mode>3): Ditto.
10786         (mmx_ussub<mode>3): Ditto.
10787         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
10788         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
10789         to handle nonimmediate operands.
10790         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
10791         insn pattern.
10792         (mmx_smulv4hi3_highpart): New expander.  Use
10793         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10794         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
10795         insn pattern.
10796         (mmx_umulv4hi3_highpart): New expander.  Use
10797         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10798         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
10799         (mmx_<code>v4hi3): New expander.  Use
10800         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10801         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
10802         (mmx_<code>v8qi3): New expander.  Use
10803         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10804         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
10805         (mmx_<code><mode>3): New expander.  Use
10806         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10807
10808 2008-05-05  Jan Hubicka  <jh@suse.cz>
10809
10810         PR tree-optimization/36118
10811         * passes.c (pass_init_dump_file): Fix dump header.
10812
10813 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10814
10815         PR middle-end/36141
10816         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
10817         VCE for function decls.
10818
10819 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
10820
10821         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
10822
10823 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
10824
10825         * config/i386/i386.md (sat_plusminus): New.
10826         (plusminus_insn): Likewise.
10827         (plusminus_mnemonic): Likewise.
10828         (addsub): Removed.
10829         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
10830         (*<addsub><mode>3_cc_overflow): Renamed to ...
10831         (*<plusminus_insn><mode>3_cc_overflow): This.
10832         (*<addsub>si3_zext_cc_overflow): Renamed to ...
10833         (*<plusminus_insn>si3_zext_cc_overflow): This.
10834
10835         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
10836         (<plusminus_insn><mode>3): This.
10837         (*<addsub><mode>3): Renamed to ...
10838         (*<plusminus_insn><mode>3): This.
10839         (<sse>_vm<addsub><mode>3): Renamed to ...
10840         (<sse>_vm<plusminus_insn><mode>3): This.
10841         (sse3_h<addsub>v4sf3): Renamed to ...
10842         (sse3_h<plusminus_insn>v4sf3): This.
10843         (sse3_h<addsub>v2df3): Renamed to ...
10844         (sse3_h<plusminus_insn>v2df3): This.
10845         (<plusminus_insn><mode>3): New.
10846         (*<plusminus_insn><mode>3): Likewise.
10847         (sse2_<plusminus_insn><mode>3): Likewise.
10848         (add<mode>): Removed.
10849         (*add<mode>3): Likewise.
10850         (sse2_ssadd<mode>3): Likewise.
10851         (sse2_usadd<mode>3): Likewise.
10852         (sub<mode>3): Likewise.
10853         (*sub<mode>3): Likewise.
10854         (sse2_sssub<mode>3): Likewise.
10855         (sse2_ussub<mode>3): Likewise.
10856
10857 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
10858
10859         * gthr-single.h: Add in required interface elements as per gthr.h.
10860         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
10861         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
10862         Generalize UNUSED macro.
10863         (__gthread_once): Add.
10864         (__gthread_key_create): Add.
10865         (__gthread_key_delete): Add.
10866         (__gthread_getspecific): Add.
10867         (__gthread_setspecific): Add.
10868
10869 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
10870
10871         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
10872         the same size types for the indirect reference on the rhs, then
10873         create a VCE.
10874
10875 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
10876
10877         * config/i386/i386.md
10878         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
10879         one insn template instead of template series.
10880         (*xordi_1_rex64): Ditto.
10881         (*xordi_2_rex64): Ditto.
10882
10883 2008-05-05  Ira Rosen  <irar@il.ibm.com>
10884
10885         PR tree-optimization/36119
10886         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
10887         in case of SLP.
10888
10889 2008-06-04  Jan Hubicka  <jh@suse.cz>
10890
10891         tree-optimization/36100
10892         * tree-pass.h (pass_O0_always_inline): Declare.
10893         * ipa-inline.c (inline_transform): Remove dead code.
10894         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
10895         pass_O0_always_inline): New.
10896         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
10897
10898 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
10899
10900         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
10901         mnemonic in this_param move for TARGET_64BIT.
10902
10903 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
10904
10905         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
10906         (*strmovsi_rex_1): Ditto.
10907         (*strsetsi_1): Ditto.
10908         (*strsetsi_rex_1): Ditto.
10909
10910         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
10911         adddicc expanders using SWI mode iterator.
10912
10913 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
10914
10915         PR target/36121
10916         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
10917         argument handling.
10918
10919 2008-05-04  David S. Miller  <davem@davemloft.net>
10920
10921         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
10922         (sparc*-*-linux*): Use linux.h in tm_file.
10923         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
10924         compiler defaulting to 32-bit.
10925         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
10926         no longer needed.
10927         * config/sparc/linux.h: Remove definitions now obtained
10928         properly from linux.h
10929         * config/sparc/linux64.h: Likewise.
10930         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
10931         don't want this setting for 32-bit builds in a biarch compiler.
10932         * doc/install.texi: Add sparc-linux to list of targets
10933         supporting --enable-targets=all.
10934
10935 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
10936
10937         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
10938
10939 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
10940
10941         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
10942         after V4SI_FTYPE_V8HI.
10943         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
10944         case V4SI_FTYPE_V2DF.
10945
10946 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
10947
10948         * doc/invoke.texi (max-flow-memory-locations): Removed.
10949         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
10950
10951 2008-05-03  Richard Guenther  <rguenther@suse.de>
10952
10953         PR middle-end/34973
10954         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
10955
10956 2008-05-02  David S. Miller  <davem@davemloft.net>
10957
10958         * config.gcc (need_64bit_hwint): Document libcpp dependency.
10959
10960 2008-05-02  Simon Baldwin <simonb@google.com>
10961
10962         PR bootstrap/36108
10963         * c-common.h (warn_array_subscript_range): Removed.
10964         * c-common.c (warn_array_subscript_range): Ditto.
10965         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
10966         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
10967
10968 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
10969
10970         * config/i386/i386.c (ix86_special_builtin_type): New.
10971         (bdesc_special_args): Likewise.
10972         (ix86_expand_special_args_builtin): Likewise.
10973         (ix86_init_mmx_sse_builtins): Updated.
10974         (ix86_expand_builtin): Updated.
10975         (ix86_expand_store_builtin): Removed.
10976         (ix86_expand_unop_builtin): Likewise.
10977
10978         * config/i386/mm3dnow.h (__v2sf): Moved to ...
10979         * config/i386/mmintrin.h (__v2sf): Here.
10980
10981         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
10982         const __v2sf.
10983         (_mm_loadl_pi): Likewise.
10984         (_mm_storeh_pi): Replace __v2si with __v2sf.
10985         (_mm_storel_pi): Likewise.
10986
10987         * doc/extend.texi: Correct __builtin_ia32_loadhps,
10988         __builtin_ia32_loadlps, __builtin_ia32_storehps,
10989         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
10990         __builtin_ia32_loadlpd.
10991
10992 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
10993
10994         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
10995         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
10996         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
10997         (ix86_init_mmx_sse_builtins): Updated.
10998         (ix86_expand_args_builtin): Likewise.
10999         (ix86_expand_builtin): Likewise.
11000         (ix86_expand_unop1_builtin): Renamed to ...
11001         (ix86_expand_unop_vec_merge_builtin): This.
11002
11003 2008-05-01  Jan Hubicka  <jh@suse.cz>
11004
11005         PR bootstrap/36100
11006         * ipa-inline.c (inline_generate_summary): Make static.
11007         (inline_transform): Do not call inlining at -O0; make static.
11008         * passes.c (execute_todo): Add sanity check.
11009         (execute_one_ipa_transform_pass): Execute proper flags.
11010
11011 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
11012
11013         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
11014         (DECL_NONADDRESSABLE_P): Likewise.
11015         * alias.c (record_component_aliases): Fix comment.
11016
11017 2008-05-01  Simon Baldwin <simonb@google.com>
11018
11019         * c-common.h (warn_array_subscript_range): New function.
11020         * c-common.c (warn_array_subscript_range): Ditto.
11021         * tree-vrp.c (check_array_ref): Corrected code to agree with
11022         comment, ignoring only arrays of size 0 or size 1.
11023         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
11024
11025 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
11026
11027         * config/i386/i386.c (ix86_builtin_type): Replace
11028         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
11029         (bdesc_args): Updated.
11030         (ix86_init_mmx_sse_builtins): Likewise.
11031         (ix86_expand_args_builtin): Likewise.
11032
11033         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
11034         with __v1di.
11035
11036         * doc/extend.texi: Correct __builtin_ia32_palignr.
11037
11038 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
11039
11040         PR target/36095
11041         * config/i386/i386.c (bdesc_crc32): Removed.
11042         (ix86_expand_crc32): Likewise.
11043         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
11044         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
11045         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
11046         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
11047         UINT_FTYPE_UINT_UCHAR.
11048         (bdesc_args): Updated. Add crc32 builtins.
11049         (ix86_init_mmx_sse_builtins): Updated.
11050         (ix86_expand_args_builtin): Updated to support subreg.
11051
11052         * doc/extend.texi: Correct __builtin_ia32_crc32di.
11053
11054 2008-05-01  Jan Hubicka  <jh@suse.cz>
11055
11056         * tree-pass.h (opt_pass): Add IPA_PASS.
11057         (varpool_node, cgraph_node): Forward declare.
11058         (ipa_opt_pass): Define.
11059         (pass_ipa_inline): Turn into ipa_opt_pass.
11060         (pass_apply_inline): Remove.
11061         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
11062         (apply_inline): Turn into ....
11063         (inline_transform): ... this one.
11064         (inline_generate_summary): New function.
11065         (pass_apply_inline): Remove.
11066         * function.h (ipa_opt_pass): Forward declare structure; typedef;
11067         vector.
11068         (struct function): Add ipa_transforms_to_apply.
11069         * passes.c (register_one_dump_file): Work on IPA_PASS.
11070         (init_optimization_passes): Remove pass_inline_parameters and
11071         pass_apply_inline.
11072         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
11073         (execute_one_pass) ... here; apply transforms when possible.
11074         (add_ipa_transform_pass, execute_ipa_summary_asses,
11075         execute_one_ipa_transform_pass): New.
11076         (execute_ipa_pass_list): Update for IPA_PASS type.
11077
11078 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
11079
11080         * config/i386/i386.c (ix86_builtin_type): Add
11081         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
11082         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
11083         (bdesc_args): Add SSE4a builtins.
11084         (ix86_init_mmx_sse_builtins): Updated.
11085         (ix86_expand_args_builtin): Likewise.
11086         (ix86_expand_builtin): Likewise.
11087
11088 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
11089
11090         * config/i386/i386.c (ix86_builtin_type): Add
11091         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
11092         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
11093         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
11094         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
11095         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
11096         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
11097         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
11098         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
11099         and DI_FTYPE_DI_DI_INT.
11100         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
11101         (ix86_init_mmx_sse_builtins): Updated.
11102         (ix86_expand_args_builtin): Likewise.
11103         (ix86_expand_builtin): Likewise.
11104         (ix86_expand_binop_imm_builtin): Removed.
11105
11106         * doc/extend.texi: Correct __builtin_ia32_palignr128.
11107
11108 2008-04-30  Richard Guenther  <rguenther@suse.de>
11109
11110         PR tree-optimization/32921
11111         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
11112
11113 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
11114
11115         * config/arm/arm.c (arm_unwind_emit): Use
11116         crtl->all_throwers_are_sibcalls instead of
11117         cfun->all_throwers_are_sibcalls.
11118         (arm_output_fn_unwind): Likewise.
11119         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
11120         instead of cfun->uses_pic_offset_table.
11121         (frv_expand_prologue): Likewise.
11122         (frv_frame_pointer_required): Likewise.
11123         (frv_expand_fdpic_call): Likewise.
11124         (frv_emit_movsi): Likewise.
11125         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
11126         cfun->returns_pcc_struct instead of
11127         current_function_returns_pcc_struct.
11128         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
11129         instead of cfun->calls_eh_return.
11130         (m32c_pushm_popm): Likewise.
11131         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
11132         "extern" declaration.
11133
11134 2008-04-30  Richard Guenther  <rguenther@suse.de>
11135
11136         PR tree-optimization/21636
11137         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
11138         constant address.
11139         (evaluate_stmt): Print the likely value.
11140         (ccp_visit_stmt): Avoid excessive vertical spacing.
11141
11142 2008-04-30  Rafael Espindola  <espindola@google.com>
11143
11144         * builtins.c (fold_call_expr): Return realret.
11145         * tree-ssa-threadedge.c
11146         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
11147         __builtin_object_size.
11148
11149 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
11150
11151         * gcc.c (wrapper_string): New variable.
11152         (insert_wrapper): New function.
11153         (execute): New option -wrapper.
11154         * doc/invoke.texi (Overall Options): New driver option -wrapper.
11155
11156 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
11157
11158         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
11159         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
11160         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
11161         from...
11162         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
11163         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
11164         config/rs6000/e500crtres64gprctr.asm,
11165         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
11166         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
11167         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
11168         config/rs6000/e500crtsav64gprctr.asm,
11169         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
11170         config/rs6000/e500crtsavg64gprctr.asm: New files.
11171         * config/rs6000/t-ppccomm: Add build rules for new files.
11172         (LIB2FUNCS_STATIC_EXTRA): Add new files.
11173         * config/rs6000/t-netbsd: Add build rules for new files.
11174         (LIB2FUNCS_STATIC_EXTRA): New variable.
11175         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
11176         (CRTSAVRES_DEFAULT_SPEC): Likewise.
11177         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
11178
11179 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
11180
11181         * config/i386/i386.c (ix86_builtin_type): Add
11182         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
11183         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
11184         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
11185         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
11186         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
11187         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
11188         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
11189         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
11190         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
11191         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
11192         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
11193         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
11194         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
11195         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
11196         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
11197         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
11198         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
11199         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
11200         V1DI_FTYPE_V2SI_V2SI.
11201         (bdesc_2arg): Moved to ...
11202         (bdesc_args): Here.
11203         (ix86_init_mmx_sse_builtins): Updated.
11204         (ix86_expand_args_builtin): Updated.  Take a pointer
11205         to const struct builtin_description.  Handle comparison
11206         builtin functions.
11207         (ix86_expand_sse_compare): Take a new argument for swapping operands.
11208         (ix86_expand_builtin): Updated.
11209
11210         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
11211         (ssse3_pmaddubsw128): This.
11212         (ssse3_pmaddubswv4hi3): Renamed to ...
11213         (ssse3_pmaddubsw): This.
11214
11215         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
11216         (__builtin_ia32_packssdw128): Likewise.
11217         (__builtin_ia32_packuswb128): Likewise.
11218         (__builtin_ia32_pmaddubsw): Likewise.
11219         (__builtin_ia32_pmaddubsw128): Likewise.
11220
11221 2008-04-30  Richard Guenther  <rguenther@suse.de>
11222
11223         PR tree-optimization/14847
11224         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
11225         (recognize_bits_test): Use it.
11226         (recognize_single_bit_test): Likewise.
11227
11228 2008-04-30  Martin Jambor  <mjambor@suse.cz>
11229
11230         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
11231         instead of setting number of formal parameters to zero.
11232         (ipcp_init_stage): Do not set the number of actual parameters to zero
11233         either.
11234         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
11235         which are called with variable number of arguments.
11236         (ipcp_insert_stage): Explicitely skipping all nodes which are
11237         called with variable number of arguments.
11238         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
11239         number of parameters.
11240
11241         * ipa-prop.h (struct ipa_node_params): Added flag
11242         called_with_var_arguments
11243         (ipa_set_param_count): Added.  Changed sole setter to use it.
11244         (ipa_get_param_count): Added.  All readers of param_count
11245         converted to use it instead.
11246         (ipa_set_called_with_variable_arg): Added.
11247         (ipa_is_called_with_var_arguments): Added.
11248         (ipa_get_ith_param): Added.  All readers of param_decls converted
11249         to use it instead.
11250         (ipa_set_cs_argument_count): Added, sole writer to argument_count
11251         changed to use it.
11252         (ipa_get_cs_argument_count): Added, all readers of argument_count
11253         changed to cal it.
11254         (ipa_get_ith_jump_func): Added. Accessors of jump values changed
11255         to use it.
11256
11257         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
11258         (struct ipcp_lattice): Renamed cval_type to type
11259         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
11260
11261         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
11262         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
11263         (ipcp_insert_stage): Changed the type of variable cvalue to tree
11264         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
11265         (build_const_val): Changed the type of parameter cvalue to tree
11266         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
11267         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
11268
11269         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
11270         constant
11271
11272         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
11273         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
11274         (ipa_add_method): Renamed to ipa_push_func_to_list
11275         (ipa_remove_method): Renamed to ipa_pop_func_from_list
11276         (ipa_callsite_param_count): Removed.
11277         (ipa_callsite_param_count_set): Removed.
11278         (ipa_callsite_param): Removed.
11279         (ipa_callsite_callee): Removed.
11280         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
11281         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
11282         (ipa_method_formal_count): Removed.
11283         (ipa_method_formal_count_set): Removed.
11284         (ipa_method_get_tree): Removed.
11285         (ipa_method_tree_map_create): Removed.
11286         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
11287         (ipa_create_param_decls_array): Creates the array itself
11288         (ipa_create_param_decls_array): Temporary variable info instead of
11289         a few dereferences.
11290         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
11291         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
11292         (get_type): Removed.
11293         (ipa_jf_get_info_type): Removed.
11294         (ipa_node_create): Renamed to ipa_create_node_params
11295         (ipa_free): Renamed to ipa_free_all_node_params
11296         (ipa_nodes_create): Renamed to ipa_create_all_node_params
11297         (ipa_edges_create): Renamed to ipa_create_all_edge_args
11298         (ipa_edges_free): Renamed to ipa_free_all_edge_args
11299         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
11300         (ipa_free_all_node_params): Deallocation to jump_functions moved to
11301         ipa_free_all_edge_args
11302         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
11303         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
11304         (ipa_create_methodlist_node): Removed.
11305         (ipa_methodlist_method): Removed.
11306         (ipa_methodlist_method_set): Removed.
11307         (ipa_methodlist_next_method): Removed.
11308         (ipa_methodlist_next_method_set): Removed.
11309         (ipa_method_is_modified): Removed.
11310         (ipa_method_modify_create): Removed.
11311         (ipa_method_modify_init): Temporary variable info instead of a few
11312         dereferences.
11313         (ipa_detect_param_modifications): Temporary variable info instead of
11314         a few dereferences.
11315         (ipa_compute_jump_functions): Temporary variable info instead of
11316         a few dereferences.
11317         (ipa_method_modify_set): Removed.
11318         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
11319         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
11320         than craph_node as the first parameter.
11321         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
11322         (ipa_method_modify_init): Removed.
11323         (ipa_compute_jump_functions): Added a temp variable instead of
11324         repeatadly dereferencing the cgraph_edge.aux pointer
11325         (ipa_callsite_param_set_type): Removed.
11326         (ipa_compute_jump_functions): i renamed to index and moved to
11327         an inner block
11328         (ipa_callsite_param_set_info_type_formal): Removed.
11329         (ipa_callsite_param_set_info_type): Removed.
11330         (ipa_callsite_param_map_create): Removed.
11331         (ipa_callsite_tree): Removed.
11332         (ipa_callsite_caller): Removed.
11333         (ipa_pop_func_from_list): return_method removed to return_func
11334
11335         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
11336         prefixed all values with IPA_. Changed all users.
11337         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
11338         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
11339         and FORMAL_IPATYPE IPA_PASS_THROUGH.
11340         (union parameter_info): Renamed to jump_func_value.
11341         (union jump_func_value): Renamed value to constant
11342         (struct ipa_jump_func): Renamed info_type to value
11343         (struct ipa_node): Renamed to ipa_node_params
11344         (struct ipa_node_params): Renamed ipa_arg_num to param_count
11345         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
11346         (struct ipa_node_params): Renamed ipa_mod to modified_flags
11347         (struct ipa_edge): Renamed to ipa_edge_args
11348         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
11349         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
11350         (struct ipa_methodlist): Renamed to ipa_func_list
11351         (struct ipa_func_list): method_p renamed to node, next_method
11352         renamed to next
11353         (ipa_methodlist_p): Removed, switched all users to struct pointer
11354         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
11355
11356 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
11357
11358         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
11359         (rs6000_emit_epilogue): Use backchain to restore only when we
11360         have a large frame.  Make use of frame pointer to restore if we
11361         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
11362
11363 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
11364
11365         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
11366         Add mode to zero_extract.
11367         (sign bit tests peepholes): (Ditto.).
11368
11369 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
11370
11371         * config/i386/i386.c (ix86_builtins): Replace Prescott New
11372         Instructions in comments with SSE3.
11373         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
11374         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
11375         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
11376         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
11377         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
11378         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
11379         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
11380         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
11381         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
11382         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
11383         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
11384         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
11385         (bdesc_sse_args): Renamed to ...
11386         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
11387         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
11388         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
11389         IX86_BUILTIN_FABSQ.
11390         (bdesc_1arg): Moved to ...
11391         (bdesc_args): Here.
11392         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
11393         Instructions in comments with SSE3.
11394         (ix86_expand_sse_operands_builtin): Renamed to ...
11395         (ix86_expand_args_builtin): This.  Updated.
11396         (ix86_expand_unop1_builtin): Update comments.
11397         (ix86_expand_builtin): Updated.
11398
11399 2008-04-29  Richard Guenther  <rguenther@suse.de>
11400
11401         PR tree-optimization/36078
11402         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
11403         Update virtual SSA form after cleaning up the CFG.
11404
11405 2008-04-29  Richard Guenther  <rguenther@suse.de>
11406
11407         PR middle-end/15255
11408         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
11409
11410 2008-04-29  Richard Guenther  <rguenther@suse.de>
11411
11412         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
11413         (compute_may_aliases): Do not call finalize_ref_all_pointers.
11414         (compute_flow_insensitive_aliasing): Do not treat
11415         PTR_IS_REF_ALL pointers special.
11416         (get_smt_for): Likewise.
11417         (may_alias_p): Re-structure.
11418         (is_escape_site): A ref-all pointer conversion is not an escape site.
11419         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
11420         PTR_IS_REF_ALL pointers special.
11421         * tree-ssa-structalias.h (struct alias_info): Remove
11422         ref_all_symbol_mem_tag field.
11423         (PTR_IS_REF_ALL): Remove.
11424
11425 2008-04-29  Richard Guenther  <rguenther@suse.de>
11426
11427         PR middle-end/36077
11428         * fold-const.c (extract_muldiv_1): In combining division constants
11429         make sure to never overflow.
11430
11431 2008-04-29  Nick Clifton  <nickc@redhat.com>
11432
11433         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
11434
11435 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11436
11437         PR bootstrap/35169
11438         * optc-gen.awk: Work around HP-UX/IA awk bug.
11439
11440 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
11441
11442         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
11443         2008-04-25 commit.
11444
11445 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
11446
11447         PR target/36073
11448         * config/i386/i386.md
11449         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
11450         Change operand 1 predicate to nonimmediate_operand.
11451
11452 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
11453
11454         PR debug/36060
11455         * dwarf2out.c (struct die_struct): Mark as chain_circular through
11456         die_sub field.
11457         * gengtype.c (walk_type, write_func_for_structure): Handle
11458         chain_circular.
11459         * doc/gty.texi: Document chain_circular.
11460
11461 2008-04-28  Richard Guenther  <rguenther@suse.de>
11462
11463         PR tree-optimization/36066
11464         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
11465         SCEV and loop.
11466
11467 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
11468
11469         PR target/36064
11470         * config/i386/i386.md
11471         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
11472         Use match_scratch instead of match_operand for operands 3 and 4.
11473
11474 2008-04-27  Richard Guenther  <rguenther@suse.de>
11475
11476         PR tree-optimization/18754
11477         PR tree-optimization/34223
11478         * tree-pass.h (pass_complete_unrolli): Declare.
11479         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
11480         loop size before and after unconditionally of UL_NO_GROWTH in effect.
11481         Rewrite loop into loop closed SSA form if it is not already.
11482         (tree_unroll_loops_completely): Re-structure to iterate over
11483         innermost loops with intermediate CFG cleanups.
11484         Unroll outermost loops only if requested or the code does not grow
11485         doing so.
11486         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
11487         loops are available.
11488         (tree_vectorize): Instead do so here.
11489         (tree_complete_unroll): Also unroll outermost loops.
11490         (tree_complete_unroll_inner): New function.
11491         (gate_tree_complete_unroll_inner): Likewise.
11492         (pass_complete_unrolli): New pass.
11493         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
11494         uses outside of the loop.
11495         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
11496         form if it is available.
11497         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
11498         * passes.c (init_optimization_passes): Schedule complete inner
11499         loop unrolling pass before the first CCP pass after final inlining.
11500
11501 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
11502
11503         * targhooks.h (default_emutls_var_fields,
11504         default_emutls_var_init): Declare.
11505         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
11506         * target.h (struct gcc_target): Add struct emutls member.
11507         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
11508         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
11509         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
11510         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
11511         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
11512         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
11513         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
11514         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
11515         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
11516         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
11517         emit debug information.
11518         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
11519         * varasm.c: Include targhooks.h.
11520         (emutls_object_section, emutls_tmpl_section): New.
11521         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
11522         (EMUTLS_SEPARATOR): New.
11523         (prefix_name): New.
11524         (get_emutls_object_name): New.
11525         (default_emutls_var_fields): New, broken out of ...
11526         (get_emutls_object_type): ... here.  Adjust to use target hooks.
11527         (get_emutls_init_templ_addr): Adjust to use target hooks.
11528         (emutls_decl): Adjust to use target hooks.
11529         (emutls_finish): Likewise.
11530         (default_emutls_var_init): New, broken out of ...
11531         (assemble_variable): ... here.  Adjust to use target hooks.
11532         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
11533         SECCAT_EMUTLS_TMPL.
11534         * c-common.c (handle_section_attribute): Prevent overriding
11535         sections for emulated tls with special sections.
11536         * config/i386/i386.c (x86_64_elf_select_section): Add
11537         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
11538         (x86_64_elf_unique_section): Likewise.
11539         * config/vxworks.c: Include tree.h.
11540         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
11541         (vxworks_override_options): Set TLS scheme.
11542         * doc/tm.texi (Emulated TLS): New node.
11543
11544 2008-04-26  Simon Baldwin <simonb@google.com>
11545
11546         PR c/35652
11547         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
11548         with propagated string constants.
11549
11550 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
11551
11552         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
11553         constraint for operand 2 when operand 0 is memory operand.
11554         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
11555         operand 0 is memory operand.
11556         (fix_trunc<mode>_i387_with_temp): Ditto.
11557         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
11558         operand 2 when operand 1 is memory operand.
11559         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
11560         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
11561         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
11562         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
11563         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
11564         operands 2,3 and 4 when operand 1 is memory operand.
11565         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
11566         is memory operand.
11567         (fistdi2_floor_with_temp): Ditto.
11568         (fist<mode>2_floor_with_temp): Ditto.
11569         (fistdi2_ceil_with_temp): Ditto.
11570         (fist<mode>2_ceil_with_temp): Ditto.
11571         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
11572
11573 2008-04-26  David Daney  <ddaney@avtrex.com>
11574
11575         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
11576         unspec_volitile.
11577         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
11578         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
11579         UNSPEC_UPDATE_GOT_VERSION): Renumber.
11580         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
11581         (compare_and_swap_12): New insn.
11582         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
11583         * config/mips/mips.c (mips_force_binary): New function.
11584         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
11585         (mips_expand_compare_and_swap_12): New function.
11586         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
11587
11588 2008-04-25  Jan Hubicka  <jh@suse.cz>
11589
11590         PR testsuite/35843
11591         * cfgexpand.c (pass_expand): Turn into RTL pass.
11592         * passes.c (execute_one_pass): Do pass typechecking after execution.
11593         * tree-pass.h (pass_expand): Turn into RTL pass.
11594
11595         * function.h (struct rtl_data): Move here fields
11596         accesses_prior_frames, calls_eh_return, saves_all_registers,
11597         has_nonlocal_goto, has_asm_statement, is_thunk,
11598         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
11599         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
11600         arg_pointer_save_area_init from struct function; turn into bool.
11601         (struct function): Move
11602         calls_eh_return, saves_all_registers, has_nonlocal_goto,
11603         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
11604         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
11605         tail_call_emit, arg_pointer_save_area_init
11606         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
11607         (current_function_returns_struct, current_function_returns_pcc_struct,
11608         current_function_calls_setjmp, current_function_calls_alloca,
11609         current_function_accesses_prior_frames,
11610         current_function_calls_eh_return, current_function_is_thunk,
11611         current_function_stdarg, current_function_profile,
11612         current_function_limit_stack, current_function_uses_pic_offset_table,
11613         current_function_uses_const_pool, current_function_has_nonlocal_label,
11614         current_function_saves_all_registers,
11615         current_function_has_nonlocal_goto,
11616         current_function_has_asm_statement): Remove accesor macros.
11617         * ra-conflict.c (global_conflicts): Update.
11618         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
11619         (suitable_for_tail_call_opt_p): Update.
11620         * builtins.c (expand_builtin_return_addr): Update.
11621         (expand_builtin_setjmp_setup): Update.
11622         (expand_builtin_nonlocal_goto): Update.
11623         * final.c (final_start_function): Update.
11624         (profile_function): Update.
11625         (leaf_function_p): Update.
11626         (only_leaf_regs_used): Update.
11627         * df-scan.c (df_get_exit_block_use_set): Update.
11628         * dojump.c (clear_pending_stack_adjust): Update.
11629         * tree-stdarg.c (gate_optimize_stdarg): Update.
11630         * gimple-low.c (lower_function_body): Update.
11631         * global.c (compute_regsets): Update.
11632         (global_alloc): Update.
11633         * dwarf2out.c (dwarf2out_begin_prologue): Update.
11634         * expr.c (expand_assignment): Update.
11635         * dse.c (dse_step0): Update.
11636         (dse_step1): Update.
11637         * c-decl.c (store_parm_decls): Update.
11638         * local-alloc.c (combine_regs): Update.
11639         (find_free_reg): Update.
11640         * function.c (assign_parms_augmented_arg_list): Update.
11641         (assign_parm_find_data_types): Update.
11642         (assign_parms): Update.
11643         (allocate_struct_function): Update.
11644         (expand_function_start): Update.
11645         (expand_function_end): Update.
11646         (get_arg_pointer_save_area): Update.
11647         (thread_prologue_and_epilogue_insns): Update.
11648         (rest_of_match_asm_constraints): Update.
11649         * stor-layout.c (variable_size): Update.
11650         * gcse.c (gcse_main): Update.
11651         (bypass_jumps): Update.
11652         * gimplify.c (gimplify_function_tree): Update.
11653         * calls.c (emit_call_1): Update.
11654         (expand_call): Update.
11655         * bt-load.c (compute_defs_uses_and_gen): Update.
11656         * except.c (sjlj_assign_call_site_values): Update.
11657         (sjlj_emit_function_enter): Update.
11658         (can_throw_external): Update.
11659         (set_nothrow_function_flags): Update.
11660         (expand_builtin_unwind_init): Update.
11661         (expand_eh_return): Update.
11662         (convert_to_eh_region_ranges): Update.
11663         (output_function_exception_table): Update.
11664         * emit-rtl.c (gen_tmp_stack_mem): Update.
11665         * cfgexpand.c (expand_used_vars): Update.
11666         (tree_expand_cfg): Update.
11667         * cfgcleanup.c (rest_of_handle_jump): Update.
11668         * explow.c (allocate_dynamic_stack_space): Update.
11669         * varasm.c (assemble_start_function): Update.
11670         (force_const_mem): Update.
11671         (mark_constant_pool): Update.
11672         * tree-optimize.c (tree_rest_of_compilation): Update.
11673         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
11674         * tree-cfg.c (notice_special_calls): Update.
11675         (is_ctrl_altering_stmt): Update.
11676         (tree_can_make_abnormal_goto): Update.
11677         (tree_purge_dead_abnormal_call_edges): Update.
11678         * config/alpha/predicates.md: Update.
11679         * config/alpha/alpha.c (alpha_sa_mask): Update.
11680         (alpha_sa_size): Update.
11681         (alpha_does_function_need_gp): Update.
11682         (alpha_expand_prologue): Update.
11683         (alpha_start_function): Update.
11684         (alpha_output_function_end_prologue): Update.
11685         (alpha_expand_epilogue): Update.
11686         * config/frv/frv.c (frv_stack_info): Update.
11687         (frv_expand_epilogue): Update.
11688         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
11689         (s390_register_info): Update.
11690         (s390_frame_info): Update.
11691         (s390_init_frame_layout): Update.
11692         (s390_can_eliminate): Update.
11693         (save_gprs): Update.
11694         * config/spu/spu.c (spu_split_immediate): Update.
11695         (need_to_save_reg): Update.
11696         (spu_expand_prologue): Update.
11697         (spu_expand_epilogue): Update.
11698         * config/sparc/sparc.md: Update.
11699         * config/sparc/sparc.c (eligible_for_return_delay): Update.
11700         (sparc_tls_got): Update.
11701         (legitimize_pic_address): Update.
11702         (sparc_emit_call_insn): Update.
11703         (sparc_expand_prologue): Update.
11704         (output_return): Update.
11705         (print_operand): Update.
11706         (sparc_function_ok_for_sibcall): Update.
11707         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
11708         * config/m32r/m32r.md: Update.
11709         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
11710         (m32r_compute_frame_size): Update.
11711         (m32r_expand_prologue): Update.
11712         (m32r_expand_epilogue): Update.
11713         (m32r_legitimize_pic_address): Update.
11714         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
11715         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
11716         * config/i386/i386.c (ix86_frame_pointer_required): Update.
11717         (gen_push): Update.
11718         (ix86_save_reg): Update.
11719         (ix86_compute_frame_layout): Update.
11720         (ix86_expand_prologue): Update.
11721         (ix86_expand_epilogue): Update.
11722         * config/sh/sh.c (output_stack_adjust): Update.
11723         (calc_live_regs): Update.
11724         (sh5_schedule_saves): Update.
11725         (sh_expand_prologue): Update.
11726         (sh_expand_epilogue): Update.
11727         (sh_setup_incoming_varargs): Update.
11728         (sh_allocate_initial_value): Update.
11729         (sh_get_pr_initial_val): Update.
11730         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
11731         * config/sh/sh.md (label:): Update.
11732         * config/avr/avr.c (out_movhi_mr_r): Update.
11733         * config/crx/crx.h (enum): Update.
11734         * config/xtensa/xtensa.h (along): Update.
11735         * config/stormy16/stormy16.c Update.
11736         (xstormy16_compute_stack_layout): Update.
11737         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
11738         (fr30_expand_prologue): Update.
11739         * config/cris/cris.c (cris_conditional_register_usage): Update.
11740         (cris_reg_saved_in_regsave_area): Update.
11741         (cris_initial_frame_pointer_offset): Update.
11742         (cris_simple_epilogue): Update.
11743         (cris_expand_prologue): Update.
11744         (cris_expand_epilogue): Update.
11745         (cris_expand_pic_call_address): Update.
11746         (cris_asm_output_symbol_ref): Update.
11747         (cris_asm_output_label_ref): Update.
11748         * config/cris/cris.md Update.
11749         * config/iq2000/iq2000.c (compute_frame_size): Update.
11750         (iq2000_expand_epilogue): Update.
11751         * config/mt/mt.h (save_direction): Update.
11752         * config/mn10300/mn10300.c (mn10300_function_value): Update.
11753         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
11754         (ia64_secondary_reload_class): Update.
11755         * config/m68k/m68k.c (m68k_save_reg): Update.
11756         (m68k_expand_prologue): Update.
11757         (m68k_expand_epilogue): Update.
11758         (legitimize_pic_address): Update.
11759         * config/rs6000/rs6000.c (rs6000_got_register): Update.
11760         (first_reg_to_save): Update.
11761         (first_altivec_reg_to_save): Update.
11762         (compute_vrsave_mask): Update.
11763         (compute_save_world_info): Update.
11764         (rs6000_stack_info): Update.
11765         (spe_func_has_64bit_regs_p): Update.
11766         (rs6000_ra_ever_killed): Update.
11767         (rs6000_emit_eh_reg_restore): Update.
11768         (rs6000_emit_allocate_stack): Update.
11769         (rs6000_emit_prologue): Update.
11770         (rs6000_emit_epilogue): Update.
11771         (rs6000_output_function_epilogue): Update.
11772         (output_profile_hook): Update.
11773         (rs6000_elf_declare_function_name): Update.
11774         * config/rs6000/rs6000.h (rs6000_args): Update.
11775         * config/rs6000/rs6000.md: Update.
11776         * config/mcore/mcore.c (mcore_expand_prolog): Update.
11777         * config/arc/arc.c (arc_output_function_epilogue): Update.
11778         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
11779         * config/darwin.c (machopic_function_base_name): Update.
11780         * config/score/score3.c (score3_compute_frame_size): Update.
11781         (rpush): Update.
11782         (rpop): Update.
11783         (score3_epilogue): Update.
11784         * config/score/score7.c (score7_compute_frame_size): Update.
11785         (score7_prologue): Update.
11786         (score7_epilogue): Update.
11787         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
11788         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
11789         * config/arm/arm.c (use_return_insn): Update.
11790         (require_pic_register): Update.
11791         (arm_load_pic_register): Update.
11792         (arm_compute_save_reg0_reg12_mask): Update.
11793         (arm_compute_save_reg_mask): Update.
11794         (thumb1_compute_save_reg_mask): Update.
11795         (output_return_instruction): Update.
11796         (arm_output_function_prologue): Update.
11797         (arm_output_epilogue): Update.
11798         (arm_get_frame_offsets): Update.
11799         (arm_expand_prologue): Update.
11800         (thumb_pushpop): Update.
11801         (thumb_exit): Update.
11802         (thumb1_expand_prologue): Update.
11803         (thumb1_expand_epilogue): Update.
11804         (arm_unwind_emit): Update.
11805         (arm_output_fn_unwind): Update.
11806         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
11807         * config/arm/arm.md: Update.
11808         * config/pa/pa.md: Update.
11809         * config/pa/pa.c (legitimize_pic_address): Update.
11810         (compute_frame_size): Update.
11811         (hppa_expand_prologue): Update.
11812         (hppa_expand_epilogue): Update.
11813         (borx_reg_operand): Update.
11814         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
11815         (HARD_REGNO_RENAME_OK): Update.
11816         * config/mips/mips.c (mips_global_pointer): Update.
11817         (mips_save_reg_p): Update.
11818         (mips_compute_frame_info): Update.
11819         (mips_frame_pointer_required): Update.
11820         (mips_expand_prologue): Update.
11821         (mips_expand_epilogue): Update.
11822         (mips_can_use_return_insn): Update.
11823         (mips_reorg_process_insns): Update.
11824         * config/v850/v850.c (compute_register_save_size): Update.
11825         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
11826         * config/mmix/mmix.c (along): Update.
11827         (mmix_expand_epilogue): Update.
11828         * config/bfin/bfin.c (legitimize_pic_address): Update.
11829         (must_save_p): Update.
11830         (stack_frame_needed_p): Update.
11831         (add_to_reg): Update.
11832         (bfin_expand_prologue): Update.
11833         * stmt.c (expand_asm_operands): Update.
11834         * reload1.c (reload): Update.
11835         (init_elim_table): Update.
11836
11837 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
11838
11839         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
11840
11841 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
11842
11843         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
11844         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
11845         (mov<mode>): Removed.
11846         (*movv4sf_internal): Likewise.
11847         (*movv2df_internal): Likewise.
11848
11849 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
11850
11851         * config.gcc (crx-*-elf): Remove deprecation.
11852
11853 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
11854
11855         * config/i386/cygming-crtend.c (register_frame_ctor): Register
11856         __gcc_deregister_frame with atexit.
11857         (deregister_frame_dtor): Remove.
11858
11859 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
11860             Nathan Sidwell  <nathan@codesourcery.com>
11861
11862         * config/rs6000/rs6000.opt (mspe): Remove Var property.
11863         (misel): Likewise.
11864         * config/rs6000/rs6000.h (rs6000_spe): Declare.
11865         (rs6000_isel): Likewise.
11866         * config/rs6000/rs6000.c (rs6000_spe): New variable.
11867         (rs6000_isel): New variable.
11868         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
11869
11870 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
11871
11872         PR c++/35758
11873         * c-common.c (handle_vector_size_attribute): Call
11874         lang_hooks.types.reconstruct_complex_type instead of
11875         reconstruct_complex_type.
11876         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
11877         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
11878         * langhooks.h (struct lang_hooks_for_types): Add
11879         reconstruct_complex_type hook.
11880         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
11881         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
11882
11883 2008-04-24  Richard Guenther  <rguenther@suse.de>
11884
11885         * c-common.h (check_builtin_function_arguments): Declare.
11886         * c-common.c (validate_nargs): New function.
11887         (check_builtin_function_arguments): Likewise.
11888         * c-typeck.c (build_function_call): Call
11889         check_builtin_function_arguments.
11890         * builtins.c (fold_builtin_classify): Remove error reporting code.
11891         (fold_builtin_unordered_cmp): Likewise.
11892         (fold_builtin_1): Likewise.
11893         (fold_builtin_n): Likewise.
11894
11895 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
11896
11897         PR tree-optimization/36008
11898         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
11899         the original op1, rather than delta by step.
11900
11901 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
11902             Sebastian Pop  <sebastian.pop@amd.com>
11903
11904         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
11905         eliminate_local_variables_stmt, eliminate_local_variables,
11906         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
11907         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
11908         of code delimited by two edges in the CFG.
11909         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
11910         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
11911         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
11912         the case of parallelisation of reductions.
11913         (expr_invariant_in_region_p): New.
11914
11915         * tree-flow.h (gather_blocks_in_sese_region): Declared.
11916         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
11917
11918 2008-04-24  Ira Rosen  <irar@il.ibm.com>
11919             Richard Guenther  <rguenther@suse.de>
11920
11921         PR tree-optimization/36034
11922         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
11923         incapable of dealing with loads with gaps.
11924
11925 2008-04-24  Rafael Espindola  <espindola@google.com>
11926
11927         * tree-flow.h (vrp_evaluate_conditional): Change signature.
11928         * tree-ssa-propagate.c (fold_predicate_in): Update call to
11929         vrp_evaluate_conditional.
11930         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
11931         (vrp_evaluate_conditional): Split the cond argument.
11932         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
11933         (simplify_stmt_for_jump_threading): Update call to
11934         vrp_evaluate_conditional.
11935
11936 2008-04-24  Ira Rosen  <irar@il.ibm.com>
11937
11938         PR tree-optimization/35982
11939         * tree-vect-analyze.c (vect_check_interleaving): Check that the
11940         interleaved data-refs are of the same type.
11941
11942 2008-04-24  Danny Smith  <dannysmith@users.net>
11943
11944         * c-format.c (check_format_info_main): Use strncmp rather than a
11945         magic prefix to handle multichar length specs.
11946         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
11947         Don't prefix "I64" and "I32" with '\0'.
11948
11949 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
11950
11951         PR target/36015
11952         * config/i386/i386.c (init_cumulative_args): Don't pass anything
11953         in registers for -m32 only if stdarg_p (fntype).
11954
11955 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
11956
11957         PR rtl-optimization/36006
11958         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
11959         temp to op0 in order to avoid invalid rtx sharing.
11960
11961 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
11962
11963         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
11964         check TREE_INVARIANT.
11965         * tree-gimple.c (is_gimple_address): New.
11966         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
11967         * tree-gimple.h (is_gimple_address): New.
11968         * tree.h (decl_address_invariant_p): New.
11969         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
11970         (build_string): Likewise.
11971         (decl_address_invariant_p): New, from is_gimple_invariant_address.
11972         (tree_invariant_p_1): Likewise.
11973         (save_expr): Use it.
11974         (tree_invariant_p): New.
11975         (skip_simple_arithmetic): Use it.
11976         (stabilize_reference_1): Use it.
11977         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
11978         simplify.
11979         (build1_stat): Drop code to compute TREE_INVARIANT.
11980         (build2_stat): Drop code to compute TREE_INVARIANT.
11981         (build3_stat): Drop code to compute TREE_INVARIANT.
11982         (build4_stat): Drop code to compute TREE_INVARIANT.
11983         (build5_stat): Drop code to compute TREE_INVARIANT.
11984         (build7_stat): Drop code to compute TREE_INVARIANT.
11985         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
11986         * tree.h (struct tree_base): Remove invariant_flag.
11987         (TREE_INVARIANT): Remove.
11988         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
11989         (fold_builtin_expect): Check TREE_CONSTANT.
11990         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
11991         * c-tree.h (c_expr_to_decl): Drop third parameter.
11992         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
11993         (build_c_cast): Don't set TREE_INVARIANT.
11994         (pop_init_level): Don't set TREE_INVARIANT.
11995         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
11996         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
11997         TREE_CONSTANT.
11998         (gimplify_init_constructor): Don't set TREE_INVARIANT.
11999         (gimplify_addr_expr): Adjust comment.
12000         * tree-mudflap.c (mf_build_string):
12001         * print-tree.c (print_node): Don't print TREE_INVARIANT.
12002         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
12003         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
12004         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
12005         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
12006         * langhooks.h (struct lang_hooks): Drop third parameter from
12007         expr_to_decl.
12008
12009 2008-04-23  Richard Guenther  <rguenther@suse.de>
12010
12011         PR tree-optimization/27799
12012         PR tree-optimization/32921
12013         PR tree-optimization/32624
12014         * tree-ssa-structalias.c (merge_smts_into): Only merge the
12015         SMTs aliases and the tag itself into the solution.
12016         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
12017         merge the points-to solution back into the SMT aliases.
12018         (may_alias_p): Use alias_set_subset_of instead of
12019         aliases_conflict_p.  A pointer which points to
12020         memory with alias set zero may access any variable.
12021
12022 2008-04-23  Richard Guenther  <rguenther@suse.de>
12023
12024         * alias.c (alias_set_subset_of): Correctly handle asking
12025         if zero is a subset of an alias set with zero child.
12026         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
12027         (compute_flow_insensitive_aliasing): Correctly walk all
12028         pointers.  Do not unnecessarily union sets.
12029
12030 2008-04-23  Richard Guenther  <rguenther@suse.de>
12031
12032         PR middle-end/36021
12033         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
12034
12035 2008-04-22  Tomas Bily  <tbily@suse.cz>
12036
12037         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
12038         unreachable case.
12039         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
12040         NON_LVALUE_EXPR.
12041         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
12042         * tree-ssa-structalias.c (get_constraint_for): Likewise.
12043         * tree-inline.c (estimate_num_insns_1): Likewise.
12044         * varasm.c (const_hash_1, compare_constant, copy_constant)
12045         (compute_reloc_for_constant, output_addressed_constants): Likewise.
12046         * emit-rtl.c (component_ref_for_mem_expr)
12047         (set_mem_attributes_minus_bitpos): Likewise.
12048         * expr.c (highest_pow2_factor, expand_expr_real_1, )
12049         (is_aligning_offset): Likewise.
12050         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
12051         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
12052         * dojump.c (do_jump): Likewise.
12053         * builtins.c (get_pointer_alignment, get_memory_rtx)
12054         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
12055         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
12056
12057 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
12058
12059         PR rtl-optimization/36017
12060         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
12061         expanding the library call.
12062
12063 2008-04-22  Ian Lance Taylor  <iant@google.com>
12064
12065         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
12066         than size_in_bytes.
12067
12068 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
12069
12070         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
12071         of LR/CTR moves for Power6.
12072
12073 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
12074
12075         PR middle-end/36003
12076         * passes.c (init_optimization_passes): Remove
12077         pass_fast_rtl_byte_dce.
12078
12079 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
12080
12081         PR target/29096
12082         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
12083         builtin functions to generate faster code.
12084         (_mm_cvtpu16_ps): Ditto.
12085         (_mm_cvtpi32x2_ps): Ditto.
12086
12087 2008-04-22  Nick Clifton  <nickc@redhat.com>
12088
12089         * common.opt (ftree-loop-distribution): Add Optimization
12090         attribute.
12091
12092         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
12093         (frv_expand_builtin_va_start): Likewise.
12094
12095         * config/arm/arm.c (thumb_find_work_register): Fix location of
12096         argument register count.
12097
12098 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
12099
12100         Support scheduling for ColdFire V1 and V3 microarchitecture.
12101         Improve scheduling of multiplication instructions.
12102
12103         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
12104         (mac): New instruction attribute.
12105         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
12106         (m68k_sched_mac): New variable.
12107         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
12108         Handle cfv1 and cfv3.
12109         (max_insn_size): New static variable.
12110         (struct _sched_ib): New type.
12111         (sched_ib): New static variable.
12112         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
12113         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
12114         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
12115         Update.
12116         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
12117         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
12118         new variables.  Update.
12119         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
12120         Add modeling of cfv3 instruction buffer.  Update.
12121         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
12122         * config/m68k/m68k.h (TUNE_CFV3): New macro.
12123         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
12124         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
12125         a particular reservation applies to.
12126         (type2): Reorganize attribute values.  Rename alu to alu_reg,
12127         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
12128         to mul_l and mul_w.
12129         (cf_ib_*): Simplify description of instruction buffer.
12130         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
12131         (cf_mem): Split into cf_mem1 and cf_mem2.
12132         (cf_v2_move_??): Rename to cfv12_alu_??.
12133         (cf_v2_move_l_??): Rename to cfv12_omove_??.
12134         (cf_v2_mul_??): Remove reservations.
12135         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
12136         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
12137         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
12138         appropriate place.
12139         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
12140         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
12141         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
12142         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
12143         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
12144         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
12145         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
12146         expansions of the above reservations for instructions of sizes
12147         1, 2 and 3 words.
12148
12149 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
12150
12151         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
12152
12153 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
12154
12155         * coverage.c: Include tree-pass.h.
12156         (coverage_counter_alloc): Print da_file_name to the dump file.
12157
12158 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
12159
12160         * sbitmap.c (sbitmap_range_empty_p): New function.
12161         * sbitmap.h (sbitmap_range_empty_p): New function.
12162         * bitmap.h: Now includes obstack.h.
12163
12164 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
12165             Kenneth Zadeck  <zadeck@naturalbridge.com>
12166
12167         * dbgcnt.def (ra_byte_scan): Added.
12168         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
12169         when the last hit happens for a counter.
12170         * timevar.def (TV_DF_BYTE_LR): New variable.
12171         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
12172         * passes.c (pass_fast_rtl_byte_dce): New pass.
12173         * fwprop.c (update_df): Added mode to call df_ref_create.
12174         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
12175         DF_REF_EXTRACT_OFFSET.
12176         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
12177         DF_BYTE_LR_OUT, df_byte_lr): New macro.
12178         (df_mm): New enum.
12179         (df_ref_extract): Added mode field.
12180         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
12181         DF_REF_EXTRACT_OFFSET.
12182         (DF_REF_EXTRACT_MODE): New macro.
12183         (df_byte_lr_bb_info): New structure.
12184         (df_print_byte_regset, df_compute_accessed_bytes,
12185         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
12186         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
12187         df_byte_lr_simulate_uses,
12188         df_byte_lr_simulate_artificial_refs_at_top,
12189         df_byte_lr_simulate_artificial_refs_at_end,
12190         df_compute_accessed_bytes): New function.
12191         (df_ref_create): Add parameter.
12192         (df_byte_lr_get_bb_info): New inline function.
12193         * df-scan.c (df_ref_record, df_uses_record,
12194         df_ref_create_structure): Added mode parameter.
12195         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
12196         df_defs_record, df_uses_record, df_get_conditional_uses,
12197         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
12198         df_entry_block_defs_collect, df_exit_block_uses_collect):
12199         Added mode parameter to calls to df_ref_record, df_uses_record,
12200         df_ref_create_structure.
12201         (df_ref_equal_p, df_ref_compare): Added test for modes.
12202         (df_ref_create_structure): Added code to set mode.  Renamed
12203         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
12204         DF_REF_EXTRACT_OFFSET.
12205         * df-core.c (df_print_byte_regset): New function.
12206         * df-byte-scan.c: New file.
12207         * df-problems.c (df_rd_transfer_function): Removed unnecessary
12208         calls to BITMAP_FREE.
12209         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
12210         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
12211         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
12212         df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
12213         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
12214         df_byte_lr_local_compute, df_byte_lr_init,
12215         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
12216         df_byte_lr_transfer_function, df_byte_lr_free,
12217         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
12218         df_byte_lr_add_problem, df_byte_lr_simulate_defs,
12219         df_byte_lr_simulate_uses,
12220         df_byte_lr_simulate_artificial_refs_at_top,
12221         df_byte_lr_simulate_artificial_refs_at_end): New function.
12222         * dce.c (byte_dce_process_block): New function.
12223         (dce_process_block): au is now passed in rather than computed
12224         locally.  Changed loops that look at artificial defs to not look
12225         for conditional or partial ones, because there never are any.
12226         (fast_dce): Now is able to drive byte_dce_process_block or
12227         dce_process_block depending on the kind of dce being done.
12228         (rest_of_handle_fast_dce): Add parameter to fast_dce.
12229         (rest_of_handle_fast_byte_dce): New function.
12230         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
12231         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
12232
12233 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
12234
12235         PR fortran/35019
12236         * gcc.h: Added fortran options that take arguments to
12237         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
12238         macros.
12239
12240 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
12241
12242         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
12243         scalarization if on the LHS and not a full access.
12244
12245 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12246
12247         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
12248
12249 2008-04-18  Rafael Espindola  <espindola@google.com>
12250
12251         * tree-vrp.c (find_case_label_index): Fix the binary search.
12252         (find_case_label_range): New.
12253         (vrp_visit_switch_stmt): Use find_case_label_range.
12254         (simplify_switch_using_ranges): Use find_case_label_range.
12255
12256 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
12257
12258         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
12259         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
12260
12261 2008-04-18  Tom Tromey  <tromey@redhat.com>
12262
12263         PR libcpp/15500:
12264         * doc/cpp.texi (Implementation-defined behavior): Mention
12265         -finput-charset.
12266
12267 2008-04-18  Ian Lance Taylor  <iant@google.com>
12268
12269         * fold-const.c (pointer_may_wrap_p): New static function.
12270         (fold_comparison): Add another test for pointer overflow.  Use
12271         pointer_may_wrap_p to disable some false positives.
12272
12273 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
12274
12275         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
12276         (fname_as_string): Match updated cpp_interpret_string prototype.
12277         (fix_string_type): Support char16_t* and char32_t*.
12278         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
12279         derivative) nodes.  Register as builtin if C++0x.
12280         (c_parse_error): Support CPP_CHAR{16,32}.
12281         * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
12282         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
12283         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
12284         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
12285         CTI_CHAR32_ARRAY_TYPE>: New elements.
12286         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
12287         char32_type_node, signed_char32_type_node, char16_array_type_node,
12288         char32_array_type_node): New defines.
12289         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
12290         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
12291         (lex_string): Support CPP_STRING{16,32}, match updated
12292         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
12293         (lex_charconst): Support CPP_CHAR{16,32}.
12294         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
12295         and CPP_STRING{16,32}.
12296
12297 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
12298
12299         PR bootstrap/35457
12300         * aclocal.m4: Regenerate.
12301         * configure: Regenerate.
12302
12303 2008-04-18  Jan Hubicka  <jh@suse.cz>
12304
12305         * except.c (dw2_size_of_call_site_table,
12306         sjlj_size_of_call_site_table): Use vector API for call_site_record.
12307
12308         * cgraphbuild.c (build_cgraph_edges): Update.
12309         * tree-pass.h: Update comment.
12310         * final.c (leaf_function_p): Update.
12311         (leaf_renumber_regs): Update.
12312         (rest_of_clean_state): Update.
12313         * omp-low.c (expand_omp_parallel): Update.
12314         * ipa-reference.c (analyze_function): Update.
12315         * reorg.c (find_end_label): Update.
12316         (optimize_skip): Update.
12317         (fill_simple_delay_slots): Update.
12318         (fill_simple_delay_slots): Update.
12319         (make_return_insns): Update.
12320         (dbr_schedule): Update.
12321         * gimple-low.c (record_vars_into): Update.
12322         * cfgbuild.c (make_edges): Update.
12323         * function.c (assign_stack_local): Update.
12324         (assign_parm_adjust_stack_rtl): Update.
12325         (locate_and_pad_parm): Update.
12326         (allocate_struct_function): Do not initialize stack_alignment_needed
12327         and preferred_stack_boundary here.
12328         (stack_protect_prologue): Update.
12329         (stack_protect_epilogue): Update.
12330         (expand_function_start): Initialize stack_alignment_needed,
12331         preferred_stack_boundary and max_jumptable_ents.
12332         (expand_function_end): Update.
12333         (free_after_compilation): Do not NULLify epilogue_delay_list.
12334         * function.h (struct rtl_data): Add stack_protect_guard,
12335         stack_alignment_needed,
12336         preferred_stack_boundary, epilogue_delay_list.
12337         (struct function): Remove value_histograms, stack_alignment_needed,
12338         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
12339         last_label_uid,
12340         unexpanded_var_list, stack_protect_guard.
12341         (current_function_epilogue_delay_list): Remove.
12342         * ipa-type-escape.c (analyze_function): Update.
12343         * gimplify.c (pop_gimplify_context): Update comment.
12344         * calls.c (expand_call): Update.
12345         (emit_library_call_value_1): Update.
12346         * except.c (set_nothrow_function_flags): Update.
12347         * cfgexpand.c (get_decl_align_unit): Update.
12348         (create_stack_guard): Update.
12349         (estimated_stack_frame_size): Update.
12350         (expand_used_vars): Update.
12351         (tree_expand_cfg): Free histogram earliers, init expansion variables.
12352         * explow.c (allocate_dynamic_stack_space): Update.
12353         * tree-ssa-live.c (remove_unused_locals): Update.
12354         * varasm.c (mark_constant_pool): Update.
12355         * tree-inline.c (remap_decls): Update.
12356         (initialize_cfun): Update.
12357         (declare_return_variable): Update.
12358         (inline_forbidden_p): Update.
12359         (expand_call_inline): Update.
12360         (declare_inline_vars): Update.
12361         (tree_function_versioning): Update.
12362         * tree-flow.h (value_histograms): New.
12363         (VALUE_HISTOGRAMS): New macro.
12364         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
12365         last_label_uid.
12366         * tree-cfg.c (set_bb_for_stmt): Update.
12367         (replace_by_duplicate_decl): Update.
12368         (move_block_to_fn): Update.
12369         (new_label_mapper): Update.
12370         (dump_function_to_file): Update.
12371         * ipa-struct-reorg.c (build_data_structure): Update.
12372         * cfgrtl.c (print_rtl_with_bb): Update.
12373         * reload1.c (reload): Update.
12374         (reload): Update.
12375         * config/i386/i386.c (setup_incoming_varargs_64,
12376         ix86_compute_frame_layout): Update.
12377         * config/arc/arc.c (arc_output_function_epilogue): Update.
12378
12379 2008-04-18  Marius Strobl <marius@FreeBSD.org>
12380
12381         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
12382         for FreeBSD as well.
12383         * gthr-posix95.h: Likewise.
12384
12385 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
12386
12387         PR rtl-optimization/35838
12388         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
12389         out the byte offset of the first subreg.
12390
12391 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
12392
12393         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
12394         to split_ti instead of three separate calls with single member arrays.
12395         (subti3 splitter): Ditto.
12396         (adddi3 splitter): Ditto with split_di.
12397         (subdi3 splitter): Ditto.
12398         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
12399         two separate calls with single member arrays.  Swap match_dup
12400         operands 1 and 2 to better fit into the array.
12401         (negdi2 splitter): Ditto with split_di.
12402         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
12403         two separate calls with single member arrays.  Swap match_dup operands
12404         6 and 7 to better fit into the array.
12405
12406 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
12407
12408         * config/i386/i386.c (sse_builtin_type): New.
12409         (bdesc_sse_args): Likewise.
12410         (bdesc_sse_3arg): Removed.
12411         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
12412         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
12413         IX86_BUILTIN_ROUNDPS.
12414         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
12415         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
12416         IX86_BUILTIN_ROUNDPS.
12417         (ix86_expand_sse_4_operands_builtin): Removed.
12418         (ix86_expand_sse_operands_builtin): New.
12419         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
12420         and CODE_FOR_sse4_1_roundps.
12421         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
12422         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
12423
12424 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
12425
12426         PR target/35907
12427         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
12428         regs before frame pop when needed.  If use_backchain_to_restore_sp
12429         then load backchain into a temp reg to restore vr and vrsave.  Add
12430         code to restore vr after frame pop if possible.
12431
12432 2008-04-17  Richard Guenther  <rguenther@suse.de>
12433
12434         * tree-vn.c (expressions_equal_p): Do not check type
12435         equality or compatibility before calling operand_equal_p.
12436         * fold-const.c (operand_equal_p): Check equivalence of
12437         integer constants before bailing out due to signedness or
12438         precision differences.
12439         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
12440         spurious differences in type qualification.  Ignore types
12441         for COMPONENT_REFs at all.
12442
12443 2008-04-17  Christian Bruel  <christian.bruel@st.com>
12444
12445         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
12446         msw_skip comparison.
12447
12448 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
12449
12450         PR c/35739
12451         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
12452         reg type.
12453
12454         PR tree-optimization/35899
12455         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
12456         rather than TREE_OPERAND.
12457
12458 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
12459
12460         PR target/35944
12461         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
12462         temporary registers.  Change operand predicate to general_operand.
12463         (remainderxf3): Ditto.
12464
12465 2008-04-16  Richard Guenther  <rguenther@suse.de>
12466
12467         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
12468         * tree-affine.c (aff_combination_expand): Look through some
12469         conversions.
12470
12471 2008-04-15  Doug Kwan  <dougkwan@google.com>
12472
12473         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
12474         for hex printing.
12475         * tree-pretty-print.c (dump_generic_node): Ditto.
12476         * final.c (output_addr_const): Ditto.
12477         * dwarf2out.c (output_cfi): Ditto.
12478         * c-pretty-print.c (pp_c_integer_constant): Ditto.
12479         * print-rtl.c (print_rtx): Ditto.
12480         * print-tree.c (print_node_brief, print_node): Ditto.
12481         * c-common.c (match_case_to_enum_1): Ditto.
12482         * sched-vis.c (print_value): Ditto.
12483         * config/i386/i386.c (print_operand): Cast to long unsigned int
12484         for hex printing.
12485
12486 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
12487         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
12488         MS Windows VirtualProtect function.
12489
12490 2008-04-15  Jan Hubicka  <jh@suse.cz>
12491
12492         * gengtype.c (write_root): Param_is argument is OK.
12493         * expr.c (expand_expr_real_1): Update call of get_exception_*.
12494         * function.h: Include varray.h
12495         (rtl_eh): New stucture based on except.c one.
12496         (call_site_record): New forward declaration and vector type.
12497         * calls.c (emit_call_1): Do not call
12498         note_current_region_may_contain_throw.
12499         * except.c (eh_status): Remove cur_region, try_region since they are
12500         unused.
12501         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
12502         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
12503         sjlj_fc, sjlj_exit_after to rth_eh in function.h.
12504         Remove call_site_data_used, call_site_data_size.
12505         Turn call_site_record into vector in function.h.
12506         (note_current_region_may_contain_throw): Remove.
12507         (get_exception_pointer, get_exception_filter): Do not take struct
12508         function argument; update.
12509         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
12510         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
12511         build_post_landing_pads, dw2_build_landing_pads,
12512         sjlj_assign_call_site_values, sjlj_mark_call_sites,
12513         sjlj_emit_function_enter, sjlj_emit_function_enter,
12514         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
12515         sjlj_build_landing_pads, finish_eh_generation,
12516         remove_exception_handler_label, remove_eh_handler,
12517         maybe_remove_eh_handler, add_reachable_handler,
12518         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
12519         add_action_record, collect_one_action_chain, add_call_site,
12520         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
12521         sjlj_output_call_site_table, output_function_exception_table,
12522         * except.h (note_current_region_may_contain_throw): Remove
12523         (get_exception_pointer, get_exception_filter): Do not take struct
12524         function argument.
12525         * Makefile.in (GTFILES): Put varargs before struct function.
12526
12527 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
12528
12529         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
12530         punt for STRING_CST.
12531         (get_constraint_for): Deal with STRING_CST here instead.
12532
12533 2008-04-15  Richard Guenther  <rguenther@suse.de>
12534
12535         * tree-ssa-propagate.c (substitute_and_fold): Substitute
12536         statements in a basic-block with a backward walk.  Do not
12537         substitute into dead statements but instead remove those.
12538
12539 2008-04-15  Richard Guenther  <rguenther@suse.de>
12540
12541         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
12542         to zero, thus disable creation of SFTs.
12543
12544 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
12545
12546         * tree-predcom.c (suitable_reference_p): Return false if the
12547         reference can throw.
12548
12549 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
12550
12551         PR c/35751
12552         * c-decl.c (finish_decl): If extern or static var has variable
12553         size, set TREE_TYPE (decl) to error_mark_node.
12554
12555 2008-04-15  Rafael Espindola  <espindola@google.com>
12556
12557         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
12558         variable arg1.
12559
12560 2008-04-15  Richard Guenther  <rguenther@suse.de>
12561
12562         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
12563         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
12564         (visit_reference_op_load): Do walk vuse-vdef chains on
12565         vn_reference_lookup.
12566         (visit_reference_op_store): But do not here.
12567         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
12568         vn_reference_lookup.
12569         (vn_lookup_with_vuses): But do so here.
12570
12571 2008-04-14  Ian Lance Taylor  <iant@google.com>
12572
12573         * fold-const.c (fold_overflow_warning): Remove assertion.
12574
12575 2008-04-15  Ben Elliston  <bje@au.ibm.com>
12576
12577         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
12578         temp1 local variables.
12579
12580 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
12581
12582         PR target/35661
12583         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
12584         ".text.unlikely" section as executable.
12585
12586 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
12587
12588         * config/ia64/ia64.c (rtx_needs_barrier): Handle
12589         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
12590         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
12591         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
12592         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
12593         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
12594         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
12595
12596 2008-04-14  Ian Lance Taylor  <iant@google.com>
12597
12598         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
12599         * fold-const.c (fold_comparison): If appropriate, test
12600         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
12601         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
12602         reassociating a pointer type.
12603         * doc/invoke.texi (Optimize Options): Document that
12604         -fstrict-overflow applies to pointer wraparound.
12605
12606 2008-04-13  Jan Hubicka  <jh@suse.cz>
12607
12608         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
12609
12610 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
12611
12612         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
12613         we are going to "save the world".
12614
12615 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
12616
12617         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
12618         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
12619         operand 0 constraint, not "=".
12620
12621 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
12622
12623         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
12624
12625 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
12626
12627         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
12628         of size of positions_needed * CHAR_BIT.
12629
12630 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
12631
12632         PR middle-end/35897
12633         * dse.c (store_info): Change positions_needed to unsigned
12634         HOST_WIDE_INT.
12635         (lowpart_bitmask): New.
12636         (record_store): Cast to unsigned HOST_WIDE_INT for
12637         positions_needed.  Assert width <= size of positions_needed *
12638         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
12639         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
12640         lowpart_bitmask to set mask.
12641
12642 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
12643
12644         * config/bfin/constraints.md: New file.
12645         * config/bfin/bfin.md: Include it.
12646         (adddi3): Use satisfies_constraint functions instead of the old macros.
12647         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
12648         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
12649         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
12650         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
12651         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
12652         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
12653         EXTRA_CONSTRAINT): Delete.
12654         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
12655         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
12656         of the old macros.
12657         * config/bfin/bfin.c: Include "tm-constrs.h".
12658         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
12659         Use satisfies_constraint functions instead of the old macros.
12660         * doc/md.texi (Blackfin Constraints): Update file name reference.
12661
12662 2008-04-11  Richard Guenther  <rguenther@suse.de>
12663
12664         PR tree-optimization/35869
12665         * tree-vrp.c (execute_vrp): Move switch statement update after
12666         jump threading.  Schedule another cfg cleanup run.
12667
12668 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
12669
12670         PR c/35744
12671         * attribs.c (decl_attributes): Return early on errorneous node.
12672
12673 2008-04-10  Oleg Ryjkov  <olegr@google.com>
12674
12675         * tree.h (struct tree_base): Added a new flag default_def_flag.
12676         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
12677
12678 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
12679
12680         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
12681
12682 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12683
12684         PR target/35768
12685         * pa.md: Define mode iterator P.  Define mode attribute dwc.
12686         (dcacheflush): Update pattern to use iterator P and attribute dwc.
12687         (icacheflush): Likewise.
12688         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
12689         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
12690
12691 2008-04-11  Ben Elliston  <bje@au.ibm.com>
12692
12693         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
12694
12695 2008-04-10  Rafael Espindola  <espindola@google.com>
12696
12697         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
12698         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
12699         (extract_range_from_expr): The same.
12700
12701 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
12702
12703         * config/mips/mips.md (GPR2): New mode iterator.
12704         (seq): Add comment.
12705         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
12706         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
12707         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
12708         Rewrite these to take two modes, the mode of comparison and the
12709         mode of the destination.
12710         * config/mips/mips.c (mips_expand_scc): Instead of having
12711         paradoxical subreg as destination, expand "narrowing" scc if mode
12712         of comparison is SI and target is requested in DI mode.
12713         (mips_emit_int_order_test): Update comment.  Make mode of
12714         comparison match CMP0 rather than TARGET.  When creating inverse
12715         target use mode of TARGET.
12716
12717 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
12718
12719         * gcov-dump.c (tag_summary): Only print summaries for the first
12720         GCOV_COUNTERS_SUMMABLE counters.
12721
12722 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
12723
12724         * config/i386/i386.md (absneg): New code iterator.
12725         (absnegprefix): New code attribute.
12726         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
12727         patterns using absneg code iterator.
12728         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
12729         using absneg code iterator.
12730         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
12731         *neg<mode>2 patterns using absneg code iterator.
12732         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
12733         *negextendsfdf2 patterns using absneg code iterator.
12734         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
12735         *negextendsfxf2 patterns using absneg code iterator.
12736         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
12737         *negextendsfdf2 patterns using absneg code iterator.
12738         * config/i386/sse.md (<code><mode>2): Macroize expander from
12739         abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
12740
12741 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
12742
12743         * config/s390/s390.h: Remove the remains of the recent search
12744         & replace action of current_function_outgoing_args_size.
12745
12746 2008-04-10  Ira Rosen  <irar@il.ibm.com>
12747
12748         PR tree-optimization/35821
12749         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
12750         NEW_STMT_LIST is not NULL.
12751
12752 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
12753
12754         PR libstdc++/35597
12755         * toplev.c (process_options): Remove -ffunction-sections debugging
12756         warning.
12757
12758 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
12759
12760         PR middle-end/PR28690
12761         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
12762         than gen_rtx_fmt_ee to perform more canonicalizations.
12763
12764 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12765
12766         PR driver/35665
12767         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
12768
12769 2008-04-09  Richard Guenther  <rguenther@suse.de>
12770
12771         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
12772         (dump_function_to_file): Dump function arguments with types.
12773
12774 2008-04-08  Richard Guenther  <rguenther@suse.de>
12775
12776         * fold-const.c (fold_widened_comparison): Do not allow
12777         sign-changes that change the result.
12778
12779 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
12780
12781         PR target/35839
12782         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
12783         kinds of indirect references.
12784
12785 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
12786
12787         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
12788         GNU Fortran language string.
12789
12790 2008-04-08  Rafael Espindola  <espindola@google.com>
12791
12792         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
12793         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
12794         * tree.h (tree_call_nonnegative_warnv_p): New.
12795
12796 2008-04-08  Jan Hubicka  <jh@suse.cz>
12797
12798         * function.c (free_after_compilation): Clear out regno_reg_rtx
12799         pointer.
12800
12801 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
12802
12803         Revert
12804         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
12805
12806         PR middle-end/PR28690
12807         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
12808         same precedence as REG_POINTER and MEM_POINTER operands.
12809
12810 2008-04-08  Richard Guenther  <rguenther@suse.de>
12811
12812         PR middle-end/35834
12813         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
12814         for adding index to base.
12815
12816 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
12817
12818         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
12819         (MINGW_ENABLE_EXECUTE_STACK): New.
12820         (IN_LIBGCC2): For libgcc include windows.h file for
12821         function declarations.
12822
12823 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
12824
12825         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
12826         and tem2 if tem1 is not a REG or MULT.
12827
12828 2008-04-08  Jan Hubicka  <jh@suse.cz>
12829
12830         * function.h (incomming_args): Break out of struct function.
12831         (function_subsections): Break out of struct function.
12832         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
12833         return_rtx and hard_reg_initial_vals from struct function.
12834         Kill inl_max_label_num.
12835         (current_function_pops_args, current_function_args_info,
12836         current_function_args_size, current_function_args_size,
12837         current_function_pretend_args_size,
12838         current_function_outgoing_args_size,
12839         current_function_internal_arg_pointer, current_function_return_rtx):
12840         Kill compatibility accestor macros.
12841         * builtins.c (expand_builtin_apply_args_1): Update.
12842         (expand_builtin_next_arg): Update.
12843         * df-scan.c (df_get_call_refs): Update.
12844         * dbxout.c (dbxout_function_end): Update.
12845         * dwarf2out.c (dwarf2out_switch_text_section): Update.
12846         (output_line_info): Update.
12847         (secname_for_decl): Update.
12848         (dwarf2out_var_location): Update.
12849         * function.c (free_after_compilation): Update.
12850         (assign_parm_find_stack_rtl): Update.
12851         (assign_parms): Update.
12852         (expand_dummy_function_end): Update.
12853         (expand_function_end): Update.
12854         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
12855         (expand_call): Update.
12856         (emit_library_call_value_1): Update.
12857         (store_one_arg): Update.
12858         * varasm.c (initialize_cold_section_name): Update.
12859         (unlikely_text_section): Update.
12860         (unlikely_text_section_p): Update.
12861         (assemble_start_function): Update.
12862         (assemble_end_function): Update.
12863         (default_section_type_flags): Update.
12864         (switch_to_section): Update.
12865         * integrate.c (set_decl_abstract_flags): Update.
12866         (get_hard_reg_initial_val): Update.
12867         (has_hard_reg_initial_val): Update.
12868         (allocate_initial_values): Update.
12869         * resource.c (init_resource_info): Update.
12870         * config/alpha/alpha.c (NUM_ARGS): Update.
12871         (direct_return): Update.
12872         (alpha_va_start): Update.
12873         (alpha_sa_size): Update.
12874         (alpha_initial_elimination_offset): Update.
12875         (alpha_expand_prologue): Update.
12876         (alpha_start_function): Update.
12877         (alpha_expand_epilogue): Update.
12878         (unicosmk_initial_elimination_offset):
12879         * config/alpha/alpha.md (call expander): Update.
12880         * config/s390/s390.c (s390_register_info): Update.
12881         (s390_register_info): Update.
12882         (s390_frame_info): Update.
12883         (s390_initial_elimination_offset): Update.
12884         (s390_build_builtin_va_list): Update.
12885         (s390_va_start): Update.
12886         * config/spu/spu.c (direct_return): Update.
12887         (spu_expand_prologue): Update.
12888         (spu_initial_elimination_offset): Update.
12889         (spu_build_builtin_va_list): Update.
12890         (spu_va_start): Update.
12891         * config/sparc/sparc.c (sparc_init_modes): Update.
12892         (sparc_compute_frame_size): Update.
12893         (function_value): Update.
12894         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
12895         * config/i386/i386.md (return expander): Update.
12896         * config/i386/i386.c (ix86_va_start): Update.
12897         (ix86_can_use_return_insn_p): Update.
12898         (ix86_compute_frame_layout): Update.
12899         (ix86_expand_epilogue): Update.
12900         * config/sh/sh.c (output_stack_adjust): Update.
12901         (calc_live_regs): Update.
12902         (sh_expand_prologue): Update.
12903         (sh_builtin_saveregs): Update.
12904         (sh_va_start): Update.
12905         (initial_elimination_offset): Update.
12906         (sh_allocate_initial_value): Update.
12907         (sh_function_ok_for_sibcall): Update.
12908         (sh_get_pr_initial_val): Update.
12909         * config/sh/sh.md (return expander): Update.
12910         * config/avr/avr.c (frame_pointer_required_p): UPdate.
12911         * config/crx/crx.c (crx_compute_frame): UPdate.
12912         (crx_initial_elimination_offset): UPdate.
12913         * config/xtensa/xtensa.c (compute_frame_size): Update
12914         (xtensa_builtin_saveregs): Update.
12915         (xtensa_va_start): Update.
12916         (order_regs_for_local_alloc): Update.
12917         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
12918         (xstormy16_expand_builtin_va_start): Update.
12919         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
12920         * config/m68hc11/m68hc11.md (return expanders): Update.
12921         * config/m68hc11/m68hc11.c (expand_prologue): Update.
12922         (expand_epilogue): Update.
12923         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
12924         (cris_simple_epilogue): Update.
12925         (cris_expand_prologue): Update.
12926         (cris_expand_epilogue): Update.
12927         * config/iq2000/iq2000.c (iq2000_va_start): Update.
12928         (compute_frame_size): Update.
12929         * config/mt/mt.c (mt_compute_frame_size): Update.
12930         * config/mn10300/mn10300.c (expand_prologue): Update.
12931         (expand_epilogue): Update.
12932         (initial_offset): Update.
12933         (mn10300_builtin_saveregs):
12934         * config/mn10300/mn10300.md (return expander): Update.
12935         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
12936         (ia64_initial_elimination_offset): Update.
12937         (ia64_initial_elimination_offset): Update.
12938         (ia64_expand_prologue): Update.
12939         * config/m68k/m68k.md (return expander): Update.
12940         * config/rs6000/rs6000.c (rs6000_va_start): Update.
12941         (rs6000_stack_info): Update.
12942         * config/mcore/mcore.c (layout_mcore_frame): Update.
12943         (mcore_expand_prolog): Update.
12944         * config/arc/arc.c (arc_compute_frame_size): Update.
12945         * config/score/score3.c (score3_compute_frame_size): Update.
12946         * config/score/score7.c (score7_compute_frame_size): Update.
12947         * config/arm/arm.c (use_return_insn): Update.
12948         (thumb_find_work_register): Update.
12949         (arm_compute_save_reg_mask): Update.
12950         (arm_output_function_prologue): Update.
12951         (arm_output_epilogue): Update.
12952         (arm_size_return_regs): Update.
12953         (arm_get_frame_offsets): Update.
12954         (arm_expand_prologue): Update.
12955         (thumb_exit): Update.
12956         (thumb_unexpanded_epilogue): Update.
12957         (thumb1_output_function_prologue): Update.
12958         * config/pa/pa.md (return expander): Update.
12959         * config/pa/pa.c (compute_frame_size): Update.
12960         (hppa_builtin_saveregs): Update.
12961         * config/mips/mips.c (mips_va_start): Update.
12962         (mips16_build_function_stub): Update.
12963         (mips_compute_frame_info): Update.
12964         (mips_restore_gp): Update.
12965         (mips_output_function_prologue): Update.
12966         (mips_expand_prologue): Update.
12967         * config/v850/v850.c (compute_frame_size): Update.
12968         (expand_prologue): * config/mmix/mmix.c (along): update.
12969         (mmix_initial_elimination_offset): update.
12970         (mmix_reorg): update.
12971         (mmix_use_simple_return): update.
12972         (mmix_expand_prologue): update.
12973         (mmix_expand_epilogue): Update.
12974         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
12975         (emit_link_insn): Update.
12976
12977 2008-04-08  Anatoly Sokolov <aesok@post.ru>
12978
12979         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
12980         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
12981         instructions.
12982         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
12983         atmega103 device.
12984
12985 2008-04-07  Jan Hubicka  <jh@suse.cz>
12986
12987         * function.h (rtl): Rename to x_rtl.
12988         (crtl): New define.
12989         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
12990         frame_offset, stack_check_probe_note, arg_pointer_save_area,
12991         used_temp_slots avail_temp_slots, temp_slot_level,
12992         nonlocal_goto_handler_labels): Update accesstors.
12993         (rtl): New global variable.
12994         (struct function): Move some fileds to rtl_data.
12995         (get_arg_pointer_save_area): Update prototype.
12996         * builtins.c (expand_builtin_setjmp_receiver): Update call of
12997         get_arg_pointer_save_area.
12998         * expr.c (init_expr): Update
12999         * function.c (get_frame_size): Update
13000         (assign_stack_local): Update
13001         (expand_function_end): Update.
13002         (get_art_pointer_save_area): Update
13003         * function.h
13004         * emit-rtl.c (rtl): Declare.
13005         (regno_reg_rtx): Declare.
13006         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
13007         Update.
13008         (gen_reg_rtx): Update.
13009         * varasm.c (n_deferred_constatns): Update accestor.
13010         (init_varasm_status): Do not allocate varasm_status.
13011         (force_const_mem, get_pool_size, output_constant_pool): Update.
13012         * stmt.c (force_label_rtx): Do not use x_ prefixes.
13013         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
13014         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
13015         * sparc/sparc.h (INIT_EXPANDERS): Update.
13016         * ia64/ia64.h (INIT_EXPANDERS): Update.
13017
13018 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
13019
13020         * reload.c (push_secondary_reload): Add missing break to for loop.
13021
13022 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
13023
13024         PR middle-end/PR28690
13025         * rtlanal.c: Update copyright years.
13026         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
13027         as REG_POINTER and MEM_POINTER operands.
13028         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
13029         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
13030         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
13031         * gcse.c: Update copyright years.
13032         (pre_delete): Call gen_reg_rtx_and_attrs.
13033         (hoist_code): Likewise.
13034         (build_store_vectors): Likewise.
13035         (delete_store): Likewise.
13036         * loop-invariant.c (move_invariant_reg): Likewise.
13037         Update copyright years.
13038
13039 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
13040
13041         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
13042         control string instead of quoted.
13043
13044 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
13045
13046         * doc/rtl.texi: Rewrite of subreg section.
13047
13048 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
13049
13050         PR/35842
13051         * config/i386/i386.c (legitimize_pic_address): Add treating
13052         of dllimport SYM_REF's.
13053         (legitimize_dllimport_symbol): Add prototype.
13054
13055 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
13056
13057         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
13058         reference in constructor with non self-referential type.
13059
13060 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
13061
13062         Removal of Return with Depressed Stack Pointer support
13063         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
13064         (ECF_SP_DEPRESSED): Likewise.
13065         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
13066         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
13067         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
13068         (expand_call): Do not test ECF_SP_DEPRESSED.
13069         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
13070         * function.c (keep_stack_depressed): Delete.
13071         (handle_epilogue_set): Likewise.
13072         (update_epilogue_consts): Likewise.
13073         (emit_equiv_load): Likewise.
13074         (thread_prologue_and_epilogue_insns): Remove support for Return with
13075         Depressed Stack Pointer.
13076         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
13077
13078 2008-04-06  Richard Guenther  <rguenther@suse.de>
13079
13080         PR tree-optimization/35400
13081         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
13082         information from SSA_NAMEs.
13083
13084 2008-04-06  Anatoly Sokolov <aesok@post.ru>
13085
13086         * config/avr/avr.h (avr_mega_p): Remove declaration.
13087         (AVR_MEGA): Remove macro.
13088         * config/avr/avr.c (avr_mega_p): Remove variable.
13089         (avr_override_options): Remove inicializion of avr_mega_p.
13090         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
13091         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
13092         (avr_jump_mode): (Ditto.).
13093         (avr_output_progmem_section_asm_op): (Ditto.).
13094         (avr_asm_init_sections): (Ditto.).
13095         (avr_asm_init_sections): (Ditto.).
13096         (avr_rtx_costs): (Ditto.).
13097         * config/avr/avr.md: (Ditto.).
13098         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
13099         '__AVR_MEGA__'.
13100
13101 2008-04-06  Richard Guenther  <rguenther@suse.de>
13102
13103         PR tree-optimization/35842
13104         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
13105         is_gimple_invariant_address.
13106
13107 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13108
13109         * gcc.c (default_compilers): Sync Fortran extensions list with
13110         that in fortran/lang-specs.h.
13111         * doc/invoke.texi: Likewise.
13112         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
13113         * dwarf2out.c (gen_compile_unit_die): Likewise.
13114
13115 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
13116
13117         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
13118
13119 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
13120
13121         PR target/12329
13122         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
13123         attribute is used for nested functions.
13124
13125 2008-04-05  Jan Hubicka  <jh@suse.cz>
13126
13127         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
13128
13129         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
13130         letter argument.
13131         (dump_files): Update.
13132         (enable_rtl_dump_file): Do not accept letter argument.
13133         * tree-pass.h (dump_file_info): Remove letter argument.
13134         * toplev.c (decode_d_option): Update -da handling.
13135         * toplev.h (enable_rtl_dump_file): Update prototype.
13136         * passes.c (register_one_dump_file): Do not accept IPA argument; work
13137         it out based on pass type.
13138         (register_dump_files_1): Likewise.
13139         (init_optimization_passes): Update register_one_dump_file calls.
13140         (execute_one_pass): Sanity check that IPA passes are called at IPA
13141         level and RTL passes at RTL level.
13142         (execute_pass_list): IPA pass can not be after or subpass of
13143         GIMPLE/RTL pass.
13144         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
13145         disallov RTL subpasses of IPA subpasses.
13146
13147 2008-04-05  Ben Elliston  <bje@au.ibm.com>
13148
13149         * tree-cfg.c (need_fake_edge_p): Return false for calls to
13150         builtins that return exactly once and do not throw. Cache call to
13151         call_expr_flags.
13152
13153 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
13154
13155         PR rtl-optimization/34916
13156         PR middle-end/35519
13157         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
13158         between instruction pairs.
13159
13160 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
13161
13162         * doc/invoke.texi: Document -mbitops for SH.
13163         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
13164         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
13165         * config/sh/sh.c (print_operand): Add %t operand code.
13166         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
13167         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
13168         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
13169         (extendqihi2): Likewise.
13170         (movqi_i): Likewise.
13171         (insv): Use bset, bclr and bst instructions for SH2A if possible.
13172         (extv): Use bld instruction for SH2A if possible.
13173         (extzv): Likewise.
13174         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
13175         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
13176         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
13177         (bset.b, bclr.b): Define peepholes.
13178         * config/sh/sh.opt (mbitops): New option.
13179
13180 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
13181
13182         PR target/35620
13183         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
13184         and view convert expression.
13185
13186 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
13187
13188         PR target/35364
13189         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
13190
13191 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
13192
13193         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
13194
13195         * config/i386/cpuid.h (bit_AES): New.
13196         (bit_PCLMUL): Likewise.
13197
13198         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
13199         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
13200         SSE2 if AES or PCLMUL is enabled.
13201         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
13202         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
13203         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
13204         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
13205         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
13206         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
13207         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
13208         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
13209         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
13210         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
13211         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
13212         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
13213         __builtin_ia32_aeskeygenassist128 and
13214         __builtin_ia32_pclmulqdq128.
13215         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
13216         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
13217         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
13218
13219         * config/i386/i386.h (TARGET_AES): New.
13220         (TARGET_PCLMUL): Likewise.
13221         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
13222
13223         * config/i386/i386.md (UNSPEC_AESENC): New.
13224         (UNSPEC_AESENCLAST): Likewise.
13225         (UNSPEC_AESDEC): Likewise.
13226         (UNSPEC_AESDECLAST): Likewise.
13227         (UNSPEC_AESIMC): Likewise.
13228         (UNSPEC_AESKEYGENASSIST): Likewise.
13229         (UNSPEC_PCLMUL): Likewise.
13230
13231         * config/i386/i386.opt (maes): New.
13232         (mpclmul): Likewise.
13233
13234         * config/i386/sse.md (aesenc): New pattern.
13235         (aesenclast): Likewise.
13236         (aesdec): Likewise.
13237         (aesdeclast): Likewise.
13238         (aesimc): Likewise.
13239         (aeskeygenassist): Likewise.
13240         (pclmulqdq): Likewise.
13241
13242         * config/i386/wmmintrin.h: New.
13243
13244         * doc/extend.texi: Document AES and PCLMUL built-in function.
13245
13246         * doc/invoke.texi: Document -maes and -mpclmul.
13247
13248 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
13249
13250         * function.c (free_after_parsing): Replace with
13251         cxx_push_function_context from C++ front-end.
13252         (allocate_struct_function): Don't call langhook.
13253         * langhooks.h (struct lang_hooks_for_functions): Delete.
13254         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
13255         member "function".
13256         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
13257         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
13258         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
13259         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
13260         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
13261         remove LANG_HOOKS_FUNCTION_INITIALIZER.
13262         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
13263
13264         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
13265         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
13266
13267 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
13268
13269         PR c/35440
13270         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
13271         for all types.
13272
13273 2008-04-04  Richard Guenther  <rguenther@suse.de>
13274
13275         PR middle-end/35823
13276         * fold-const.c (optimize_minmax_comparison): Use the correct
13277         type for the constant in the simplified comparison.
13278
13279 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
13280
13281         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
13282         Pass L2 size as "--param l2-cache-size" to the compiler.
13283         (decode_l2_cache): New function to decode L2 cache parameters using
13284         0x8000006 extended cpuid function.
13285         (detect_caches_amd): Determine parameters of L2 cache using
13286         decode_l2_caches function.
13287         (decode_caches_intel): Decode L2 cache parameters.
13288         (detect_caches_intel): Determine L2 cache parameters using
13289         decode_caches_intel and decode_l2_caches functions.
13290
13291 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
13292
13293         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
13294         secondary input reload for subword loads from the constant pool.
13295
13296 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
13297
13298         PR target/35713
13299         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
13300           constants of the appropriate size for runtime calculations.
13301
13302         PR c/35712
13303         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
13304           decimal-float literal constant zero.
13305
13306 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
13307
13308         PR c/35738
13309         * c-parser.c (c_parser_omp_atomic): Call
13310         default_function_array_conversion on the RHS.
13311
13312         PR middle-end/35818
13313         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
13314         call is_variable_sized if decl has incomplete type.
13315
13316 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
13317
13318         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
13319
13320 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
13321
13322         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
13323         iterators.
13324         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
13325         (sgt<u>): Merge sgt and sgtu into new expander.
13326         (sgt, sgtu): Remove expanders.
13327         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
13328         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
13329         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
13330         *sgtu_<mode>_mips16 into new pattern.
13331         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
13332         (sge<u>): Merge sge and sgeu into new expander.
13333         (sge, sgeu): Remove expanders.
13334         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
13335         new pattern.
13336         (*sge_<mode>, second *sge_<mode>): Remove patterns.
13337         (slt<u>): Merge slt and sltu into new expander.
13338         (slt, sltu): Remove expanders.
13339         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
13340         (*slt_<mode>, *sltu_<mode>): Remove patterns.
13341         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
13342         *sltu_<mode>_mips16 into new pattern.
13343         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
13344         (sle<u>): Merge sle and sleu into new expander.
13345         (sle, sleu): Remove expanders.
13346         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
13347         (*sle_<mode>, *sleu_<mode>): Remove patterns.
13348         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
13349         *sleu_<mode>_mips16 into new pattern.
13350         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
13351
13352 2008-04-03  Jan Hubicka  <jh@suse.cz>
13353
13354         PR tree-optimization/35795
13355         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
13356         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
13357         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
13358         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
13359         * score/score3.c (score3_output_mi_thunk): Likewise.
13360         * score/score7.c (score7_output_mi_thunk): Likewise.
13361         * mips/mips.c (mips_output_mi_thunk): Likewise.
13362
13363 2008-04-03  Richard Guenther  <rguenther@suse.de>
13364
13365         * tree-vrp.c (extract_range_from_unary_expr): Handle all
13366         conversions.  Simplify code.
13367
13368 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
13369
13370         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
13371
13372 2008-04-03  Tom Tromey  <tromey@redhat.com>
13373             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13374
13375         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
13376         * config/bfin/t-bfin-linux (generated_files): Add
13377         linux-sysroot-suffix.h.
13378         * doc/install.texi (Prerequisites): Require make 3.80.
13379         * doc/sourcebuild.texi (Front End Directory): Document new
13380         variable.
13381         * Makefile.in (generated_files): New variable.
13382         (ALL_HOST_OBJS): New variable.
13383         ($(ALL_HOST_OBJS)): New target.
13384
13385 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
13386
13387         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
13388         (remap_block): Call id->transform_lang_insert_block instead
13389         of langhook.
13390         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
13391         Set id.transform_lang_insert_block to NULL.
13392         (clone_body): Move to cp/optimize.c
13393         * tree-inline.h (struct copy_body_data): Change
13394         transform_lang_insert_block to function pointer.
13395         (copy_generic_body, copy_decl_no_change): Export.
13396         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
13397         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
13398         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
13399
13400         * c-tree.h (insert_block): Kill.
13401         * c-decl.c (insert_block): Kill.
13402
13403 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
13404
13405         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
13406         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
13407         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
13408         argument.
13409         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
13410         argument, call {push,pop}_function_context from here.
13411         * c-parser.c: Use c_{push,pop}_function_context.
13412
13413         * function.c (push_function_context_to): Move meat ...
13414         (push_function_context): ... here.  Simplify.
13415         * function.c (pop_function_context_from): Move meat ...
13416         (pop_function_context): ... here.  Simplify.
13417         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
13418         leave_nested).
13419         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
13420         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
13421         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
13422         * tree.h (push_function_context_to, pop_function_context_from): Remove.
13423
13424 2008-04-03  Ben Elliston  <bje@au.ibm.com>
13425
13426         * expmed.c (extract_force_align_mem_bit_field): Remove.
13427
13428 2008-04-03  Richard Guenther  <rguenther@suse.de>
13429
13430         PR middle-end/35800
13431         * expr.h (try_casesi): Adjust prototype.
13432         * expr.c (try_casesi): Take fallback label as extra parameter.
13433         Use that for gen_casesi if default_label is NULL.
13434         * stmt.c (expand_case): Pass fallback label to try_casesi,
13435         make sure to fill gaps with a fallback label if default_label
13436         is not present.
13437
13438 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
13439
13440         PR target/35801
13441         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
13442
13443 2008-04-03  Ben Elliston  <bje@au.ibm.com>
13444
13445         * expmed.c (extract_split_bit_field): Remove if (0) code.
13446         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
13447         (do_ds_constraint): Likewise.
13448
13449 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
13450
13451         * doc/cppopts.texi (-dU): Document.
13452         * c-common.h (flag_dump_macros): Update comment.
13453         * c-opts.c (handle_OPT_d): Handle -dU.
13454         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
13455         dump_queued_macros, cb_used_define, cb_used_undef): New.
13456         (init_pp_output): Handle -dU.
13457         (cb_line_change): Call dump_queued_macros.
13458         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
13459
13460 2008-04-02  Anatoly Sokolov <aesok@post.ru>
13461
13462         * config/avr/predicates.md (io_address_operand): New predicate.
13463         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
13464         * config/avr/avr.c (avr_io_address_p): Remove function.
13465         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
13466         'avr_io_address_p' function.
13467         (out_movhi_r_mr): (Ditto.).
13468         (out_movqi_mr_r): (Ditto.).
13469         (out_movhi_mr_r): (Ditto.).
13470         (avr_address_cost): (Ditto.).
13471
13472 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
13473
13474         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
13475         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
13476         in 32bit mode when XMM registers are available to avoid store
13477         forwarding stalls.
13478         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
13479         corresponding post-reload splitters.
13480
13481 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
13482
13483         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
13484         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
13485         __builtin_ia32_roundss.
13486         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
13487         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
13488         __builtin_ia32_roundss.
13489         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
13490         IX86_BUILTIN_SHUFPD here.
13491
13492 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
13493
13494         * config/i386/i386.md (plogic): New.
13495         (plogicprefix): Likewise.
13496
13497         * config/i386/mmx.md (mmx_<code><mode>3): New.
13498         (mmx_and<mode>3): Removed.
13499         (mmx_ior<mode>3): Likewise.
13500         (mmx_xor<mode>3): Likewise.
13501
13502         * config/i386/sse.md (<code><mode>3): New.
13503         (*<code><mode>3): Likewise.
13504         (*<code><mode>3): Likewise.
13505         (<code><mode>3): Likewise.
13506         (*sse_<code><mode>3): Likewise.
13507         (*sse2_<code><mode>3): Likewise.
13508         (<code>tf3): Likewise.
13509         (*<code>tf3): Likewise.
13510         (and<mode>3): Likewise.
13511         (*and<mode>3): Likewise.
13512         (ior<mode>3): Removed.
13513         (*ior<mode>3): Likewise.
13514         (xor<mode>3): Likewise.
13515         (*xor<mode>3): Likewise.
13516         (*and<mode>3): Likewise.
13517         (*ior<mode>3): Likewise.
13518         (*xor<mode>3): Likewise.
13519         (and<mode>3): Likewise.
13520         (*sse_and<mode>3): Likewise.
13521         (*sse2_and<mode>3): Likewise.
13522         (andtf3): Likewise.
13523         (*andtf3): Likewise.
13524         (ior<mode>3): Likewise.
13525         (*sse_ior<mode>3): Likewise.
13526         (*sse2_ior<mode>3): Likewise.
13527         (iortf3): Likewise.
13528         (*iortf3): Likewise.
13529         (xor<mode>3): Likewise.
13530         (*sse_xor<mode>3): Likewise.
13531         (*sse2_xor<mode>3): Likewise.
13532         (xortf3): Likewise.
13533         (*xortf3): Likewise.
13534
13535 2008-04-02  Richard Guenther  <rguenther@suse.de>
13536
13537         PR tree-optimization/14495
13538         PR tree-optimization/34793
13539         * tree-vrp.c (struct switch_update): New structure.
13540         (to_remove_edges, to_update_switch_stmts): New VECs.
13541         (simplify_switch_using_ranges): New function.  Remove not taken
13542         case labels and edges.
13543         (simplify_stmt_using_ranges): Call it.
13544         (identify_jump_threads): Mark edges we have queued for removal
13545         so we don't thread them.
13546         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
13547         case label vector.
13548         * tree-cfg.c (group_case_labels): Deal with missing default label.
13549         (tree_verify_flow_info): Allow missing default label.
13550         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
13551         (emit_case_nodes): Likewise.
13552         (expand_case): Do not rely on the default label to be present.
13553         * expr.c (try_casesi): Deal with NULL default_label.
13554         (do_tablejump): Likewise.
13555
13556 2008-04-02  Richard Guenther  <rguenther@suse.de>
13557
13558         PR tree-optimization/14495
13559         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
13560         SWITCH_EXPR here ...
13561         (vrp_visit_switch_stmt): ... but here (new function).
13562         (find_case_label_index): New helper function.
13563         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
13564
13565 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
13566
13567         * fwprop.c: Fix ISO-C99ism.
13568
13569 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
13570
13571         PR bootstrap/35752
13572         * Makefile.in (objdir): Set it here.
13573         * configure.ac: Not here.  Find dynamic linker characteristics.
13574         * exec-tool.in: Use them.
13575         * aclocal.m4: Regenerate.
13576         * configure: Regenerate.
13577
13578 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
13579
13580         * expr.c (expand_var): Delete it.
13581         * expr.h (expand_var): Delete prototype.
13582         * function.c (expand_function_start): Use expand_decl instead.
13583         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
13584         langhook.
13585
13586 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
13587
13588         PR rtl-optimization/35542
13589         * fwprop.c (forward_propagate_and_simplify): Replace
13590         loc_reg_mentioned_in_p with reg_mentioned_p.
13591
13592 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
13593
13594         PR rtl-optimization/35281
13595         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
13596         (propagate_rtx_1): Handle PR_HANDLE_MEM.
13597         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
13598         (varying_mem_p): Move above propagate_rtx.
13599         (all_uses_available_at): Do not check MEMs.
13600
13601 2008-04-02  Rafael Espindola  <espindola@google.com>
13602
13603         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
13604         (register_edge_assert_for_2): Split the cond argument.
13605         (register_edge_assert_for_1): Adjust for the change in
13606         register_edge_assert_for_2.
13607         (register_edge_assert_for): Split the cond argument.
13608         (find_switch_asserts): Adjust for the change in
13609         register_edge_assert_for.
13610
13611 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
13612
13613         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
13614         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
13615         offsets for 64-bit mingw.
13616         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
13617         abi for x86_64-pc-mingw.
13618
13619 2008-04-02  Richard Guenther  <rguenther@suse.de>
13620
13621         * tree-vrp.c (extract_range_from_assert): Make sure to not
13622         produce range min/max with TREE_OVERFOW set.
13623         If merging a anti-range and a range keep the anti-range if
13624         the range covers all values of the type.
13625         (register_edge_assert_for_2): Only allow sign-changing
13626         conversions in detecting canonical range checks.  Also
13627         register an assert for the unsigned name if useful.
13628
13629         PR tree-optimization/35787
13630         * tree-vrp.c (vrp_val_max): New function.
13631         (vrp_val_min): Likewise.
13632         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
13633         (vrp_val_is_min): Likewise.
13634         (supports_overflow_infinity): Use vrp_val_{min,max}.
13635         (negative_overflow_infinity): Likewise.
13636         (positive_overflow_infinity): Likewise.
13637         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
13638         (is_positive_overflow_infinity): Likewise.
13639         (is_overflow_infinity): Likewise.
13640         (avoid_overflow_infinity): Use vrp_val_{min,max} and
13641         vrp_val_is_{min,max}.
13642         (set_and_canonicalize_value_range): Canonicalize anti-ranges
13643         to ranges if possible.  Avoid empty ranges.
13644
13645 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13646
13647         PR middle-end/35705
13648         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
13649         the expression is a function address.
13650
13651 2008-04-01  George Helffrich  <george@gcc.gnu.org>
13652
13653         PR fortran/35154, fortran/23057
13654         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
13655         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
13656         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
13657         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
13658         in common.
13659         (dbxout_syms): Check for COMMON-based symbol and wrap in
13660         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
13661         in bracket for efficiency.
13662
13663         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
13664         using DW_TAG_common_block + member offset.
13665         (add_pubname_string): New function.
13666         (dw_expand_expr): New function to find block name and offset for
13667         COMMON var.
13668         (common_check): New function to check whether symbol in Fortran COMMON.
13669         (gen_variable_die): If COMMON, use DW_TAG_common_block.
13670
13671 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
13672
13673         PR c/35436
13674         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
13675
13676 2008-04-02  Ben Elliston  <bje@au.ibm.com>
13677
13678         * config/v850/v850.md (casesi): Remove if (0) code.
13679         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
13680         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
13681
13682 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
13683
13684         * config/i386/i386.md (rex64suffix): New mode attribute.
13685         (floathi<mode>2): Disable expander for SSE math.
13686         (*floathi<mode>2_1): New insn insn_and_split pattern.
13687         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
13688         corresponding post-reload splitters.
13689         (*floathi<mode>2_i387): New macroized insn pattern.
13690         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
13691         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
13692         insn_and_split pattern.
13693         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
13694         New macroized instruction patterns and corresponding post-reload
13695         splitters.
13696         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
13697         and corresponding post-reload splitters.
13698         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
13699         New macroized instruction patterns.
13700         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
13701         macroized instruction patterns and corresponding post-reload splitters.
13702         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
13703         corresponding post-reload splitters.
13704         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
13705         New macroized instruction patterns.
13706         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
13707         corresponding post-reload splitters.
13708         (*floatsi<mode>2_i387): New macroized instruction patterns.
13709
13710 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
13711
13712         * config/i386/i386.md (smaxmin): New.
13713         (umaxmin): Likewise.
13714         (maxminiprefix): Likewise.
13715         (maxminfprefix): Likewise.
13716         (<code><mode>3): Likewise.
13717         (smin<mode>3): Removed.
13718         (smax<mode>3): Likewise.
13719
13720         * config/i386/mmx.md (mmx_<code>v2sf3): New.
13721         (mmx_<code>v4hi3): Likewise.
13722         (mmx_<code>v8qi3): Likewise.
13723         (mmx_smaxv2sf3): Removed.
13724         (mmx_sminv2sf3): Likewise.
13725         (mmx_umaxv8qi3): Likewise.
13726         (mmx_smaxv4hi3): Likewise.
13727         (mmx_uminv8qi3): Likewise.
13728         (mmx_sminv4hi3): Likewise.
13729
13730         * config/i386/sse.md (<addsub><mode>3): New.
13731         (*<addsub><mode>3): Likewise.
13732         (<sse>_vm<addsub><mode>3): Likewise.
13733         (<maxmin><mode>3): Likewise.
13734         (*<maxmin><mode>3_finite): Likewise.
13735         (*<maxmin><mode>3): Likewise.
13736         (<sse>_vm<maxmin><mode>3): Likewise.
13737         (sse3_h<addsub>v4sf3): Likewise.
13738         (sse3_h<addsub>v2df3): Likewise.
13739         (<maxmin>v16qi3): Likewise.
13740         (*<maxmin>v16qi3): Likewise.
13741         (<maxmin>v8hi3): Likewise.
13742         (*<maxmin>v8hi3): Likewise.
13743         (*sse4_1_<maxmin><mode>3): Likewise.
13744         (*sse4_1_<maxmin><mode>3): Likewise.
13745         (add<mode>3): Removed.
13746         (*add<mode>3): Likewise.
13747         (<sse>_vmadd<mode>3): Likewise.
13748         (sub<mode>3): Likewise.
13749         (*sub<mode>3): Likewise.
13750         (<sse>_vmsub<mode>3): Likewise.
13751         (smin<mode>3): Likewise.
13752         (*smin<mode>3_finite): Likewise.
13753         (*smin<mode>3): Likewise.
13754         (<sse>_vmsmin<mode>3): Likewise.
13755         (smax<mode>3): Likewise.
13756         (*smax<mode>3_finite): Likewise.
13757         (*smax<mode>3): Likewise.
13758         (<sse>_vmsmax<mode>3): Likewise.
13759         (sse3_haddv4sf3): Likewise.
13760         (sse3_haddv2df3): Likewise.
13761         (sse3_hsubv4sf3): Likewise.
13762         (sse3_hsubv2df3): Likewise.
13763         (umaxv16qi3): Likewise.
13764         (*umaxv16qi3): Likewise.
13765         (smaxv8hi3): Likewise.
13766         (*smaxv8hi3): Likewise.
13767         (*sse4_1_smax<mode>3): Likewise.
13768         (*sse4_1_umax<mode>3): Likewise.
13769         (uminv16qi3): Likewise.
13770         (*uminv16qi3): Likewise.
13771         (sminv8hi3): Likewise.
13772         (*sminv8hi3): Likewise.
13773         (*sse4_1_smin<mode>3): Likewise.
13774         (*sse4_1_umin<mode>3): Likewise.
13775
13776 2008-04-01  Rafael Espindola  <espindola@google.com>
13777
13778         * tree-cfg.c (verify_expr): remove in_phi.
13779         (verify_stmt): Don't call walk_tree with verify_expr. Use
13780         is_gimple_min_invariant instead of is_gimple_val.
13781
13782 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
13783
13784         * doc/include/gpl_v3.texi: Update for manpage generation.
13785         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
13786         gpl.texi.
13787         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
13788         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
13789         gpl_v3.texi instead of gpl.texi.
13790         (gpl.pod): New.
13791
13792 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
13793
13794         PR pch/13675
13795         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
13796
13797 2008-04-01  Rafael Espindola  <espindola@google.com>
13798
13799         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
13800         (extract_code_and_val_from_cond): Use
13801         extract_code_and_val_from_cond_with_ops.
13802
13803 2008-04-01  Jan Hubicka  <jh@suse.cz>
13804
13805         * function.c (free_after_compilation): Free epilogue_delay_list.
13806         (prepare_function_start): Assert that previous compilation was freed.
13807
13808 2008-04-01  Jan Hubicka  <jh@suse.cz>
13809             Jim Wilson  <wilson@tuliptree.org>
13810             Andreas Tobler <andreast@gcc.gnu.org>
13811
13812         PR middle-end/35781
13813         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
13814         rtl.emit instead cfun->emit.
13815         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
13816         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
13817
13818 2008-04-01  Ben Elliston  <bje@au.ibm.com>
13819
13820         * doc/c-tree.texi (Function Basics): Fix grammatical error.
13821
13822 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
13823
13824         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
13825         New options
13826         (fprofile-use): Add var flag_profile_use
13827         * coverage.c (coverage_begin_output): Do not open a gcno file for
13828         output only if -ftest-coverage is set.
13829         Do not add getpwd() to gcda file path.
13830         (build_gcov_info): Check the new flag
13831         flag_profile_datafile_relative_path.
13832         (coverage_init): Use profile_data_prefix.
13833         Read profile counter only if flag_profile_use is set.
13834         * opts.c (common_handle_option): New option fprofile-use=,
13835         fprofile-dir=, fprofile-generate=.
13836         * toplev.c (profile_data_prefix): New variable definition.
13837         * toplev.h (profile_data_prefix): New declaration.
13838         * doc/invoke.tex (Option Summary, Optimization Options):
13839         Add new options.
13840
13841 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
13842
13843         * varasm.c (output_constant_pool_1): In LABEL_REF check,
13844         use tmp consistently.
13845
13846         PR target/35695
13847         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
13848         * config/ia64/ia64.c (rtx_needs_barrier): Handle
13849         UNSPEC_FR_RECIP_APPROX_RES.
13850         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
13851
13852 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
13853
13854         PR c/35750
13855         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
13856
13857 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13858
13859         PR middle-end/30186
13860         * fold-const.c (fold_indirect_ref_1): Support accessing non first
13861         element of the vector via a pointer.
13862
13863 2008-03-31  Ian Lance Taylor  <iant@google.com>
13864
13865         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
13866
13867 2008-03-31  Jan Hubicka  <jh@suse.cz>
13868
13869         * builtins.c (expand_builtin_setjmp_receiver): Update call of
13870         get_arg_pointer_save_area.
13871         * expr.c (init_expr): Just clear out rtl.expr.
13872         * function.c (free_after_compilation): Clear out whole RTL structure.
13873         (get_func_frame_size): Merge into ...
13874         (get_frame_size): ... this one.
13875         (assign_stack_local_1): Merge into ...
13876         (assign_stack_local): ... this one.
13877         (expand_function_end): Update call of get_arg_pointer_save_area.
13878         (get_art_pointer_save_area): Remove cfun argument.
13879         * function.h (emit_status): regno_pointer_align does not need length
13880         attribute. Move x_regno_reg_rtx to ...
13881         (regno_reg_rtx): ... new global array.
13882         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
13883         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
13884         apply_args_value, forced_labels, stack_pointer_delta):
13885         Update accestors.
13886         (struct varasm_status): Move here from varasm.c
13887         (struct rtl_data): New. Move here some fields from struct function.
13888         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
13889         frame_offset, stack_check_probe_note, arg_pointer_save_area,
13890         used_temp_slots avail_temp_slots, temp_slot_level,
13891         nonlocal_goto_handler_labels): Update accesstors.
13892         (rtl): New global variable.
13893         (struct function): Move some fileds to rtl_data.
13894         (get_arg_pointer_save_area): Update prototype.
13895         * emit-rtl.c (rtl): Declare.
13896         (regno_reg_rtx): Declare.
13897         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
13898         Update.
13899         (gen_reg_rtx): Update.
13900         (init_virtual_regs): Do not tate emit_status argument.
13901         (init_emit): Do not allocate emit.
13902         * varasm.c (varasm_statuc): Move to function.h.
13903         (n_deferred_constatns): Update accestor.
13904         (init_varasm_status): Do not allocate varasm_status.
13905         (force_const_mem, get_pool_size, output_constant_pool): Update.
13906         * stmt.c (force_label_rtx): Do not use x_ prefixes.
13907         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
13908
13909 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
13910
13911         PR rtl-optimization/35729
13912         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
13913         references.
13914
13915 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
13916
13917         PR target/32000
13918         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
13919         load/store if memory is unaligned.
13920         (*movti_rex64): Likewise.
13921
13922         * config/i386/predicates.md (misaligned_operand): New.
13923
13924 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
13925
13926         PR tree-opt/35431
13927         * tree-ssa-phiopt.c (conditional_replacement): Return early for
13928         complex types.
13929
13930 2008-03-31  Jan Beulich  <jbeulich@novell.com>
13931
13932         * config/ia64/constraints.md: Add 'j' constraint.
13933         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
13934         (movdi_internal): Likewise.
13935
13936 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
13937
13938         PR c/35748
13939         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
13940
13941 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
13942
13943         PR target/35757
13944         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
13945         proper error message for the third argument on blendpd and
13946         blendps.
13947
13948         * config/i386/sse.md (blendbits): New.
13949         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
13950
13951 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
13952
13953         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
13954
13955 2008-03-30  Richard Guenther  <rguenther@suse.de>
13956
13957         PR middle-end/31023
13958         * fold-const.c (fold_sign_changed_comparison): Do leave
13959         conversions to base-types alone.
13960
13961 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13962
13963         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
13964         the link register if one altivec register is be saved.
13965
13966 2008-03-30  Ben Elliston  <bje@au.ibm.com>
13967
13968         * final.c (final_scan_insn): Remove if (0) code.
13969
13970 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
13971
13972         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
13973
13974 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
13975
13976         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
13977         of V4SFmode to ix86_binary_operator_ok.
13978
13979 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
13980
13981         * config/i386/i386.c (override_options): Initialize
13982         ix86_veclib_handler to ix86_veclibabi_svml when
13983         -mveclibabi=svml is used.
13984         (ix86_veclibabi_svml): New function for SVML ABI style
13985         vectorization support.
13986         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
13987
13988 2008-03-28  Rafael Espindola  <espindola@google.com>
13989
13990         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
13991         (tree_binary_nonnegative_warnv_p): Make it public.
13992         (tree_single_nonnegative_warnv_p): Make it public.
13993         (tree_invalid_nonnegative_warnv_p): Make it public.
13994         (tree_unary_nonzero_warnv_p): Make it public.
13995         (tree_binary_nonzero_warnv_p): Make it public
13996         (tree_single_nonzero_warnv_p): Make it public.
13997         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
13998         (extract_range_from_binary_expr): Split the expr argument.
13999         (extract_range_from_unary_expr): Split the expr argument.
14000         (extract_range_from_comparison): Split the expr argument.
14001         (extract_range_from_expr): Use the new aux functions.
14002         (vrp_evaluate_conditional_warnv): Use
14003         vrp_evaluate_conditional_warnv_with_ops.
14004         * tree.h (tree_unary_nonzero_warnv_p): Declare.
14005         (tree_binary_nonzero_warnv_p): Declare.
14006         (tree_single_nonzero_warnv_p): Declare.
14007         (tree_expr_nonzero_warnv_p): Declare.
14008         (tree_unary_nonnegative_warnv_p): Declare.
14009         (tree_binary_nonnegative_warnv_p): Declare.
14010         (tree_single_nonnegative_warnv_p): Declare.
14011         (tree_invalid_nonnegative_warnv_p): Declare.
14012
14013 2008-03-28  Richard Guenther  <rguenther@suse.de>
14014
14015         PR tree-optimization/30317
14016         PR tree-optimization/30911
14017         PR tree-optimization/34793
14018         * tree-vrp.c (set_and_canonicalize_value_range): New function.
14019         (struct assert_locus_d): New member EXPR.
14020         (register_new_assert_for): Add EXPR parameter to support
14021         ASSERT_EXPR <name, expr OP limit>.
14022         (register_edge_assert_for_1): Adjust callers.
14023         (find_assert_locations): Likewise.
14024         (process_assert_insertions_for): Build condition from expression.
14025         (extract_range_from_assert): Handle ASSERT_EXPRs
14026         of the form ASSERT_EXPR <name, expr OP limit>.
14027         (register_edge_assert_for_2): New helper registering
14028         asserts for comparisons.  Recognize range tests of the form
14029         (unsigned)i - CST1 OP CST2.
14030         (register_edge_assert_for_1): Use it.
14031         (register_edge_assert_for): Likewise.
14032         (needs_overflow_infinity): Integer sub-types
14033         do not need overflow infinities.
14034         (vrp_val_is_max): The extreme values of integer sub-types
14035         are those of the base type.
14036         (vrp_val_is_min): Likewise.
14037         * tree.def (ASSERT_EXPR): Document extra allowed conditional
14038         expressions.
14039
14040 2008-03-28  Nick Clifton  <nickc@redhat.com>
14041
14042         PR target/31110
14043         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
14044         Return GENERAL_REGS for stack adjustment reloads.
14045
14046 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14047
14048         PR target/31334
14049         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
14050         const_vector when all the vectors are constant.
14051
14052 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
14053
14054         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
14055         comparisons.
14056         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
14057         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
14058         (scc_sf): New.
14059         (s<code>_sf): Use new scc_sf attribute for opcode names.
14060
14061 2008-03-27  Tom Tromey  <tromey@redhat.com>
14062
14063         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
14064         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
14065         config/spu/t-spu-elf, config/i386/t-interix,
14066         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
14067         config/i386/x-darwin, config/i386/x-mingw32,
14068         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
14069         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
14070         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
14071         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
14072         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
14073         config/rs6000/x-darwin, config/rs6000/t-rs6000,
14074         config/score/t-score-elf, config/arm/t-strongarm-pe,
14075         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
14076         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
14077         Revert automatic dependency patch.
14078
14079 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14080
14081         PR target/35657
14082         * config/i386/i386.c (ix86_function_arg_boundary): Align
14083         decimal floating point to its natural boundary.
14084
14085 2008-03-27  Richard Guenther  <rguenther@suse.de>
14086
14087         PR middle-end/35716
14088         * fold-const.c (fold_comparison): Restrict distinct decl
14089         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
14090         solely rely on operand_equal_p.
14091
14092 2008-03-27  Richard Guenther  <rguenther@suse.de>
14093
14094         PR c/32511
14095         * c-common.c (handle_weak_attribute): Reject combination of
14096         weak and inline.
14097
14098 2008-03-27  Richard Guenther  <rguenther@suse.de>
14099
14100         PR tree-optimization/32810
14101         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
14102         conversions from DECL_INITIAL.
14103         (fold_const_aggregate_ref): Likewise from constructor elements.
14104
14105 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
14106
14107         * tree-affine.h (aff_combination_expand): Declare.
14108         (get_inner_reference_aff): Likewise.
14109         * tree-affine.c (aff_combination_expand): Split out from
14110         tree_to_aff_combination_expand.
14111         (get_inner_reference_aff): New function.
14112         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
14113         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
14114         (struct lim_aux_data): sm_done field removed.
14115         (mem_ref_loc_p, mem_ref_locs_p): New types.
14116         (struct mem_ref): Added id, stored, accesses_in_loop,
14117         indep_loop, dep_loop, indep_ref, dep_ref fields.
14118         Removed is_stored, locs and next fields.
14119         (memory_accesses): New variable.
14120         (movement_possibility): Do not allow moving statements
14121         that store to memory.
14122         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
14123         New functions.
14124         (determine_max_movement): For statements with memory references,
14125         find the outermost loop in that the reference is independent.
14126         (move_computations_stmt): Mark the virtual operands for renaming.
14127         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
14128         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
14129         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
14130         add_vop_ref_mapping, create_vop_ref_mapping_loop,
14131         create_vop_ref_mapping, analyze_memory_references,
14132         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
14133         get_all_locs_in_loop, ref_always_accessed_p,
14134         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
14135         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
14136         store_motion_loop, store_motion): New functions.
14137         (struct vop_to_refs_elt): New type.
14138         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
14139         memref_hash, memref_eq, hoist_memory_references): Rewritten.
14140         (schedule_sm): Replaced by...
14141         (execute_sm): ... this.
14142         (determine_lsm_ref, hoist_memory_references,
14143         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
14144         find_more_ref_vops, free_mem_ref, free_mem_refs,
14145         determine_lsm_loop, determine_lsm): Removed.
14146         (tree_ssa_lim_finalize): Free data structures used by store motion.
14147         (tree_ssa_lim): Call analyze_memory_references.  Use
14148         store_motion instead of determine_lsm.
14149
14150 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
14151
14152         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
14153         rename tmake_file to m68hc11/t-m68hc11.
14154         (mcore): Set inhibit_libc to true.
14155         * config.host (alpha*-dec-*vms*): Set extra_programs.
14156         (interix3*): Don't use host_xmake_file.
14157         * configure.ac: Let config.gcc override inhibit_libc.
14158         * configure: Regenerate.
14159
14160         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
14161         * config/t-openbsd-thread: Remove commented out lines.
14162
14163         * config/x-interix: Remove.
14164
14165         * config/m68hc11/t-m68hc11-gas: Rename to...
14166         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
14167
14168         * config/mcore/t-mcore: Remove T_CFLAGS.
14169         * config/mcore/t-mcore-pe: Likewise.
14170
14171 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
14172
14173         * configure.ac: Replace custom __GNU_SOURCE test with
14174         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
14175         * aclocal.m4: Regenerate.
14176         * configure: Regenerate.
14177         * config.in: Regenerate.
14178
14179 2008-03-27  Richard Guenther  <rguenther@suse.de>
14180
14181         * fold-const.c (target.h): Include.
14182         (fold_comparison): Fold comparison of addresses of decls
14183         that bind locally or of constants.  Consolidate address folding code.
14184         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
14185         results from fold_binary_to_constant.
14186         (compare_values_warnv): Likewise.
14187
14188 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
14189
14190         PR middle-end/35429
14191         * fold-const.c (fold_truthop): Check for integeral types when folding
14192         a == 0 && b == 0 and a != 0 || b != 0 .
14193
14194 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
14195
14196         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
14197
14198 2008-03-26  Andreas Schwab  <schwab@suse.de>
14199
14200         * doc/invoke.texi: Fix use of @item vs. @itemx.
14201
14202 2008-03-26  Tom Tromey  <tromey@redhat.com>
14203
14204         * Makefile.in (build/gensupport.o, build/print-rtl.o,
14205         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
14206         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
14207         build/gencodes.o, build/genconditions.o, build/genconfig.o,
14208         build/genconstants.o, build/genemit.o, build/genextract.o,
14209         build/genflags.o, build/genmddeps.o, build/genopinit.o,
14210         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
14211         options.h.
14212
14213 2008-03-26  Richard Guenther  <rguenther@suse.de>
14214
14215         Revert
14216         2008-03-26  Richard Guenther  <rguenther@suse.de>
14217
14218         * fold-const.c (target.h): Include.
14219         (fold_comparison): Fold comparison of addresses of two decls
14220         that bind locally.  Consolidate address folding code.
14221
14222 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14223
14224         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
14225         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
14226         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
14227         dconstsqrt2, dconstthird, dconste and/or dconst10.
14228         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
14229         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
14230         dconstsqrt2, dconste): Delete.
14231         (init_emit_once): Likewise.  Simplify initializing dconstm1.
14232         Constify variable.
14233         * real.c (get_real_const): New.
14234         * real.h (dconst3, dconst10, dconstm2, dconstthird,
14235         dconstsqrt2, dconste): Delete.
14236         (real_value_const, get_real_const): New.
14237
14238 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
14239
14240         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
14241
14242         * config/i386/i386.c (ix86_function_arg_boundary): Check
14243         BIGGEST_ALIGNMENT instead of 128.
14244         (setup_incoming_varargs_64): Likewise.
14245
14246 2008-03-26  Tom Tromey  <tromey@redhat.com>
14247
14248         * Makefile.in (DEPFILES): Add missing '/'.
14249
14250 2008-03-26  Richard Guenther  <rguenther@suse.de>
14251
14252         * fold-const.c (target.h): Include.
14253         (fold_comparison): Fold comparison of addresses of two decls
14254         that bind locally.  Consolidate address folding code.
14255
14256 2008-03-26  Nick Clifton  <nickc@redhat.com>
14257
14258         PR target/31232
14259         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
14260         not allow INT+INT as a legitimate addressing mode.
14261
14262 2008-03-26  Richard Guenther  <rguenther@suse.de>
14263
14264         * tree-flow.h (widen_bitfield): Remove declaration.
14265         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
14266         (widen_bitfield): Remove function.
14267         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
14268         code.
14269
14270 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14271
14272         PR target/31558
14273         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
14274         error_mark_node's.
14275
14276 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
14277
14278         PR rtl-optimization/35232
14279         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
14280         (forget_old_reloads_1, forget_marked_reloads): Don't clear
14281         reg_reloaded_call_part_clobbered here.
14282         (reload_regs_reach_end_p): New function.
14283         (reload_reg_rtx_for_input): New variable.
14284         (reload_reg_rtx_for_output): Likewise.
14285         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
14286         when reassigning a pseudo register.  Load reloadreg from
14287         reload_reg_rtx_for_input, moving the mode and register
14288         calculation to...
14289         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
14290         instead of the original when deciding whether an input reload
14291         would be a no-op or whether an output reload can be deleted.
14292         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
14293         when setting up new_spill_reg_store.  Load it from
14294         reload_reg_rtx_for_output, moving the mode and register
14295         calculation to...
14296         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
14297         instead of the original when deciding whether an output reload
14298         would be a no-op.  Do the same when modifying insn notes.
14299         Use rtx_equal_p instead of == to compare the registers.
14300         (inherit_piecemeal_p): Take a mode and two register numbers
14301         as argument.
14302         (emit_reload_insns): Clear new_spill_reg_store for every hard
14303         register in the reload register.  Remove spill registers
14304         from reg_reloaded_valid before considering whether to record
14305         inheritance information for them.  Use reload_reg_rtx_for_output
14306         instead of reg_rtx when recording output reloads.  Use
14307         reload_reg_rtx_for_input instead of reg_rtx when recording
14308         input reloads.  Set or clear reg_reloaded_call_part_clobbered
14309         at the same time as setting reg_reloaded_valid.
14310         (delete_output_reload): Add a new_reload_reg parameter and use it
14311         instead of rld[j].reg_rtx.
14312         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
14313         calls accordingly.
14314
14315 2008-03-25  Tom Tromey  <tromey@redhat.com>
14316
14317         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
14318         (build/genattr.o): Likewise.
14319         (build/genattrtab.o): Likewise.
14320         (build/gencodes.o): Likewise.
14321         (build/genconfig.o): Likewise.
14322         (build/genconstants.o): Likewise.
14323         (build/genemit.o): Likewise.
14324         (build/genextract.o): Likewise.
14325         (build/genflags.o): Likewise.
14326
14327 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
14328
14329         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
14330         instead of size_int for integer types.
14331         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
14332         to match type of MINUS_EXPR.
14333
14334 2008-03-25  Tom Tromey  <tromey@redhat.com>
14335
14336         * configure: Rebuilt.
14337         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
14338         Makefile.
14339
14340 2008-03-25  Tom Tromey  <tromey@redhat.com>
14341
14342         * config/x-solaris (host-solaris.o): Update.
14343         * config/x-linux (host-linux.o): Update.
14344         * config/x-hpux (host-hpux.o): Update.
14345         * config/x-darwin (host-darwin.o): Update.
14346         * config/v850/t-v850e (v850-c.o): Update.
14347         * config/v850/t-v850 (v850-c.o): Update.
14348         * config/t-vxworks (vxworks.o): Update.
14349         * config/t-sol2 (sol2-c.o, sol2.o): Update.
14350         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
14351         * config/spu/t-spu-elf (spu-c.o): Update.
14352         (spu.o): Remove.
14353         * config/sh/t-symbian (sh-c.o): Update.
14354         (symbian.o): Update.
14355         * config/sh/t-sh (sh-c.o): Update.
14356         * config/score/t-score-elf (score7.o, score3.o): Update.
14357         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
14358         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
14359         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
14360         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
14361         (rs6000.o): Remove.
14362         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
14363         * config/m32c/t-m32c (m32c-pragma.o): Update.
14364         * config/ia64/t-ia64 (ia64-c.o): Update.
14365         * config/i386/x-mingw32 (host-mingw32.o): Update.
14366         * config/i386/x-i386 (driver-i386.o): Update.
14367         * config/i386/x-darwin (host-i386-darwin.o): Update.
14368         * config/i386/x-cygwin (host-cygwin.o): Update.
14369         * config/i386/t-nwld (nwld.o): Update.
14370         * config/i386/t-netware (netware.o): Update.
14371         * config/i386/t-interix (winnt.o): Update.
14372         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
14373         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
14374         msformat-c.o): Update.
14375         * config/bfin/t-bfin-linux (generated_files): Add
14376         linux-sysroot-suffix.h.
14377         * config/arm/t-wince-pe (pe.o): Update.
14378         * config/arm/t-strongarm-pe (pe.o): Update.
14379         * config/arm/t-pe (pe.o): Update.
14380         * config/arm/t-arm (arm-c.o): Update.
14381         * doc/install.texi (Prerequisites): Require make 3.80.
14382         * Makefile.in: Remove .o targets.
14383         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
14384         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
14385         (simple_generated_h, simple_generated_c): Move earlier.
14386         (generated_files): New variable.
14387         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
14388         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
14389         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
14390         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
14391         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
14392         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
14393         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
14394         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
14395         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
14396         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
14397         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
14398         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
14399         (.c.o): Remove.
14400         (COMPILE.base, COMPILE): New variables.
14401         (%.o): New pattern rule.
14402         (ALL_HOST_OBJS): New variable.
14403         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
14404         (dummy-checksum.o, cc1-checksum.o): Remove.
14405         (DRIVER_SHLIB): New variable.
14406         (DRIVER_DEFINES): Use it.
14407         (gencondmd.c): Move out of build/.
14408         (s-conditions): Update.
14409         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
14410         (ALL_BUILD_OBJS): Likewise.
14411         (build/%.o): Use BUILDCOMPILE.
14412         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
14413         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
14414         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
14415         build/gencheck.o, build/gencodes.o, build/genconditions.o,
14416         build/genconfig.o, build/genconstants.o, build/genemit.o,
14417         build/genextract.o, build/genflags.o, build/genmddeps.o,
14418         build/genopinit.o, build/genoutput.o, build/genpeep.o,
14419         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
14420         build/gen-protos.o, build/scan.o, build/fix-header.o,
14421         build/scan-decls.o): Simplify.
14422         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
14423         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
14424         prefix.o, toplev.o): Reduce to variable setting.
14425         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
14426         ($(out_object_file), gcc-options.o): New targets.
14427         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
14428         * configure: Rebuilt.
14429         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
14430         * doc/sourcebuild.texi (Front End Directory): Document new variable.
14431
14432 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
14433
14434         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
14435         complain when we hit an error, return ERROR_MARK_NODE.
14436
14437 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
14438
14439         * config/sh/constraints.md (Pso, Psz): New constraints.
14440         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
14441         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
14442
14443 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
14444
14445         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
14446         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
14447
14448 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
14449
14450         * config/sh/sh.md (prefetch): Add condition for SH2A target.
14451         (prefetch_sh2a): New.
14452
14453 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
14454             Naveen.H.S  <naveen.hs@kpitcummins.com>
14455
14456         * config/sh/constraints.md (I28): New constraint.
14457         * config/sh/sh.c (broken_move): Add support for movi20s.
14458         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
14459
14460 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
14461             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
14462             Naveen.H.S  <naveen.hs@kpitcummins.com>
14463
14464         * config/sh/sh.c (SH_ATTRIBUTES): Define.
14465         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
14466         (print_operand): Handle resbank in %@ operand code.
14467         (sh_encode_section_info): New.
14468         (push_regs): Add conditions for resbank.
14469         (sh_expand_epilogue): Likewise.
14470         (sh_insert_attributes): Likewise.
14471         (sh_attribute_table): Likewise.
14472         (sh_handle_resbank_handler_attribute): New.
14473         (sh2a_handle_function_vector_handler_attribute): New.
14474         (sh2a_is_function_vector_call): New.
14475         (sh2a_get_function_vector_number): New.
14476         (sh2a_function_vector_p): New.
14477         (sh_cfun_resbank_handler_p): New.
14478         * config/sh/sh.md (calli): Emit jsr/n if possible.
14479         (calli_tbr_rel): New.
14480         (calli_pcrel): Emit jsr/n if possible.
14481         (return_i): Emit rts/n if possible.
14482         (call_valuei_tbr_rel): New.
14483         (call_valuei_pcrel): Add condition for SH2A target.
14484         (call_value): Likewise.
14485         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
14486         (sh2a_get_function_vector_number): Likewise.
14487         (sh2a_is_function_vector_call): Likewise.
14488         * doc/extend.texi: Document TBR relative addressing of SH2A.
14489         (resbank): Add description for SH2A.
14490
14491 2008-03-24  Richard Guenther  <rguenther@suse.de>
14492
14493         PR c/22371
14494         * gimplify.c (gimplify_modify_expr): For frontend type-correct
14495         pointer assignments change conversions according to middle-end rules.
14496         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
14497         * configure.ac: Include type checking in yes.
14498         * configure: Regenerate.
14499
14500 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14501
14502         * diagnostic.c (diagnostic_count_diagnostic): Delete.
14503         (diagnostic_report_diagnostic): Update. Handle ICEs here.
14504
14505 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
14506
14507         * gthr-vxworks.h (UNUSED): Define.
14508
14509 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
14510
14511         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
14512
14513 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
14514
14515         * doc/extend.texi (Function Attributes): Add missing comma in the
14516         example of the "alloc_size" attribute.
14517
14518 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
14519
14520         Revert:
14521         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
14522
14523         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
14524         32bit host.
14525
14526         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
14527
14528         PR target/35496
14529         * stor-layout.c (update_alignment_for_field): Set minimum alignment
14530         of the underlying type of a MS bitfield layout to the natural
14531         alignment of the type.
14532
14533         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
14534
14535         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
14536         to their natural alignment to avoid store forwarding stalls.
14537
14538 2008-03-22  Richard Guenther  <rguenther@suse.de>
14539
14540         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
14541         For PHI nodes verify the address is invariant.
14542         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
14543         (get_symbol_constant_value): Use is_gimple_min_invariant.
14544         (maybe_fold_stmt_indirect): Likewise.
14545
14546 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
14547
14548         PR rtl-optimization/33927
14549         * Makefile.in (dse.o): Depend on $(TM_P_H).
14550         * expr.h (extract_low_bits): Declare.
14551         * expmed.c (extract_low_bits): New function.
14552         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
14553         * dse.c: Include tm_p.h.
14554         (find_shift_sequence): Remove the read_reg argument and return the
14555         read value.  Emit the instructions instead of returning them.
14556         Iterate on new_mode rather than calculating it each time.
14557         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
14558         source to NEW_MODE and extract_low_bits to convert the shifted
14559         value to READ_MODE.
14560         (replace_read): Allow the load and store to have different mode
14561         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
14562         or extraction instructions before trying the replacement.  Update
14563         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
14564
14565 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
14566
14567         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
14568         to their natural alignment to avoid store forwarding stalls.
14569
14570 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14571
14572         PR target/27946
14573         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
14574         encouraging but not allowing gprs for input;
14575         change the input constraint to !f#r.
14576         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
14577         gprs for output;
14578         change the output constraint to !f#r.
14579
14580 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
14581
14582         PR target/13958
14583         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
14584         corresponding post-reload splitters.
14585         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
14586         when x87 FP math is selected.
14587         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
14588         New function prototype.
14589         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
14590         unreachable function to ease macroization of insn patterns.
14591
14592 2008-03-21  Martin Jambor  <mjambor@suse.cz>
14593
14594         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
14595         reference dumps if ddr is NULL or dependence is unknown.
14596
14597 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14598
14599         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
14600         unsigned extension into account.
14601         (ATOMIC_COMPARE_AND_SWAP): Likewise.
14602         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
14603         Do computations on a scratch register.
14604
14605 2008-03-21  Richard Guenther  <rguenther@suse.de>
14606
14607         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
14608         Use is_gimple_min_invariant instead of TREE_INVARIANT.
14609         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
14610         * tree-ssa-dom.c (record_equality): Likewise.
14611         * tree-inline.c (copy_body_r): Likewise.
14612         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
14613         TREE_INVARIANT.
14614
14615 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14616
14617         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
14618         as 'delete_unused' argument.
14619
14620 2008-03-20  Richard Guenther  <rguenther@suse.de>
14621
14622         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
14623         special casing of constant qualifiers.
14624         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
14625         care about them in general.
14626         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
14627         regardless of their type.
14628         (fold_stmt_r): Forcefully fold *& if we end up with that.
14629
14630 2008-03-20  Paul Brook  <paul@codesourcery.com>
14631
14632         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
14633         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
14634         linker flags.
14635         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
14636         definition.
14637         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
14638         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
14639
14640 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
14641
14642         * common.opt (Wmudflap): New option.
14643         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
14644         (mx_register_decls): Likewise.
14645         (mudflap_finish_file): Likewise.
14646         * doc/invoke.texi: Document -Wno-mudflap.
14647
14648 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
14649
14650         * c-format.c (replace_format_name_to_system_name): New.
14651         (cmp_attribs): New.
14652         (convert_format_name_to_system_name): New.
14653         (decode_format_attr): Add use of convert_format_name_to_system_name.
14654         (format_types_orig): Add gnu_ prefix to names.
14655         (check_format_info_main): Special treating of \0 escaped names for
14656         supporting multi-character format specifiers as I32, I64.
14657         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
14658         (gnu_target_overrides_format_attributes): New.
14659         * c-format.h: Add structure target_ovr_attr to hold
14660         system specific formatter names.
14661         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
14662         msformat-c.o file to c_target_objs and cxx_target_objs.
14663         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
14664         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
14665         (TARGET_N_FORMAT_TYPES): New.
14666         * config/i386/msformat-c.c: New.
14667         * config/i386/t-cygming: Add build rule for msformat-c.o.
14668         * doc/extend.texi: Add new format names gnu_* and ms_* and
14669         further details.
14670         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
14671
14672 2008-03-20  Ira Rosen  <irar@il.ibm.com>
14673
14674         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
14675         optimizations turned on under -O3.
14676         (ftree-vectorize): Add that the flag is turned on with -O3.
14677
14678 2008-03-20  Ben Elliston  <bje@au.ibm.com>
14679
14680         * regmove.c (try_auto_increment): Fix spelling error in comment.
14681         * final.c (final_scan_insn): Likewise.
14682
14683 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
14684
14685         PR target/14552
14686         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
14687         allocator preferences for "y" and "r" class registers.
14688         ("*mov<mode>_internal"): Ditto.
14689         ("*movv2sf_internal_rex64"): Ditto.
14690         ("*movv2sf_internal"): Ditto.
14691
14692 2008-03-19  Michael Matz  <matz@suse.de>
14693
14694         PR middle-end/35616
14695         * calls.c (expand_call): Check overlap of arguments with call
14696         address for sibcalls.
14697
14698 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
14699
14700         PR target/35496
14701         * stor-layout.c (update_alignment_for_field): Set minimum alignment
14702         of the underlying type of a MS bitfield layout to the natural
14703         alignment of the type.
14704
14705 2008-03-19  Jan Hubicka  <jh@suse.cz>
14706
14707         PR other/35094
14708         * toplev.c (decode_d_option): Handle all CPP flags.
14709         * tree-vrp.c: Update tree_pass descriptors.
14710         * regrename.c: Update tree_pass descriptors.
14711         * fwprop.c: Update tree_pass descriptors.
14712         * doc/invoke.texi: Remove documentation of dropped -d? flags.
14713         * tree-into-ssa.c: Update tree_pass descriptors.
14714         * tree-dump.c: Update tree_pass descriptors.
14715         * tree-complex.c: Update tree_pass descriptors.
14716         * tree-dump.h: Update tree_pass descriptors.
14717         * see.c: Update tree_pass descriptors.
14718         * cgraphbuild.c: Update tree_pass descriptors.
14719         * tracer.c: Update tree_pass descriptors.
14720         * tree-loop-distribution.c: Update tree_pass descriptors.
14721         * cgraph.c: Update tree_pass descriptors.
14722         * postreload-gcse.c: Update tree_pass descriptors.
14723         * postreload.c: Update tree_pass descriptors.
14724         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
14725         * tree-tailcall.c: Update tree_pass descriptors.
14726         * tree-pass.h (tree_opt_pass): Rename to ...
14727         (opt_pass) ... this one; add "type" field and remove letter field.
14728         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
14729         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
14730         all_lowering_passes): Update declaration.
14731         * ipa-cp.c: Update tree_pass descriptors.
14732         * final.c: Update tree_pass descriptors.
14733         * omp-low.c: Update tree_pass descriptors.
14734         * tree-ssa-dse.c: Update tree_pass descriptors.
14735         * ipa-reference.c: Update tree_pass descriptors.
14736         * tree-ssa-uncprop.c: Update tree_pass descriptors.
14737         * auto-inc-dec.c: Update tree_pass descriptors.
14738         * reorg.c: Update tree_pass descriptors.
14739         * cgraphunit.c: Update tree_pass descriptors.
14740         * tree-ssa-copyrename.c: Update tree_pass descriptors.
14741         * tree-ssa-ccp.c: Update tree_pass descriptors.
14742         * df-core.c: Update tree_pass descriptors.
14743         * mode-switching.c: Update tree_pass descriptors.
14744         * tree-nomudflap.c: Update tree_pass descriptors.
14745         * modulo-sched.c: Update tree_pass descriptors.
14746         * ipa-pure-const.c: Update tree_pass descriptors.
14747         * cse.c: Update tree_pass descriptors.
14748         * web.c: Update tree_pass descriptors.
14749         * tree-stdarg.c: Update tree_pass descriptors.
14750         * tree-ssa-math-opts.c: Update tree_pass descriptors.
14751         * tree-ssa-dom.c: Update tree_pass descriptors.
14752         * tree-nrv.c: Update tree_pass descriptors.
14753         * tree-ssa-alias.c: Update tree_pass descriptors.
14754         * loop-init.c: Update tree_pass descriptors.
14755         * gimple-low.c: Update tree_pass descriptors.
14756         * ipa-inline.c: Update tree_pass descriptors.
14757         * tree-ssa-sink.c: Update tree_pass descriptors.
14758         * global.c: Update tree_pass descriptors.
14759         * ifcvt.c: Update tree_pass descriptors.
14760         * jump.c: Update tree_pass descriptors.
14761         * predict.c: Update tree_pass descriptors.
14762         * tree-ssa-loop.c: Update tree_pass descriptors.
14763         * recog.c: Update tree_pass descriptors.
14764         * dse.c: Update tree_pass descriptors.
14765         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
14766         * tree-eh.c: Update tree_pass descriptors.
14767         * regmove.c: Update tree_pass descriptors.
14768         * local-alloc.c
14769         * function.c: Update tree_pass descriptors.
14770         * tree-vectorizer.c: Update tree_pass descriptors.
14771         * gcse.c: Update tree_pass descriptors.
14772         * ipa-type-escape.c: Update tree_pass descriptors.
14773         * tree-if-conv.c: Update tree_pass descriptors.
14774         * init-regs.c: Update tree_pass descriptors.
14775         * ipa.c: Update tree_pass descriptors.
14776         * tree-ssa-phiopt.c: Update tree_pass descriptors.
14777         * rtl-factoring.c: Update tree_pass descriptors.
14778         * lower-subreg.c: Update tree_pass descriptors.
14779         * bt-load.c: Update tree_pass descriptors.
14780         * tree-dfa.c: Update tree_pass descriptors.
14781         * except.c: Update tree_pass descriptors.
14782         * emit-rtl.c: Update tree_pass descriptors.
14783         * cfgexpand.c: Update tree_pass descriptors.
14784         * tree-cfgcleanup.c: Update tree_pass descriptors.
14785         * cfgcleanup.c: Update tree_pass descriptors.
14786         * tree-ssa-pre.c: Update tree_pass descriptors.
14787         * tree-sra.c: Update tree_pass descriptors.
14788         * tree-mudflap.c: Update tree_pass descriptors.
14789         * tree-ssa-copy.c: Update tree_pass descriptors.
14790         * cfglayout.c: Update tree_pass descriptors.
14791         * tree-ssa-forwprop.c: Update tree_pass descriptors.
14792         * tree-ssa-dce.c: Update tree_pass descriptors.
14793         * tree-ssa.c: Update tree_pass descriptors.
14794         * regclass.c: Update tree_pass descriptors.
14795         * integrate.c: Update tree_pass descriptors.
14796         * tree-optimize.c: Update tree_pass descriptors.
14797         * tree-ssa-phiprop.c: Update tree_pass descriptors.
14798         * tree-object-size.c: Update tree_pass descriptors.
14799         * combine.c: Update tree_pass descriptors.
14800         * tree-outof-ssa.c: Update tree_pass descriptors.
14801         * bb-reorder.c: Update tree_pass descriptors.
14802         * stack-ptr-mod.c: Update tree_pass descriptors.
14803         * var-tracking.c: Update tree_pass descriptors.
14804         * tree-profile.c: Update tree_pass descriptors.
14805         * tree-vect-generic.c: Update tree_pass descriptors.
14806         * reg-stack.c: Update tree_pass descriptors.
14807         * sched-rgn.c: Update tree_pass descriptors.
14808         * tree-ssa-structalias.c: Update tree_pass descriptors.
14809         * tree-cfg.c: Update tree_pass descriptors.
14810         * passes.c (current_pass): Update declaration.
14811         (finish_optimization_passes): Update.
14812         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
14813         (register_one_dump_file, register_dump_files_1, next_pass_1):
14814         Update arguments.
14815         (init_optimization_passes): Update handling of new types.
14816         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
14817         * ipa-struct-reorg.c: Update tree_pass descriptors.
14818         * tree-ssa-reassoc.c: Update tree_pass descriptors.
14819         * combine-stack-adj.c: Update tree_pass descriptors.
14820         * cfgrtl.c: Update tree_pass descriptors.
14821         * dce.c: Update tree_pass descriptors.
14822         * tree-ssanames.c: Update tree_pass descriptors.
14823
14824 2008-03-19  Richard Guenther  <rguenther@suse.de>
14825
14826         PR middle-end/35609
14827         * tree-ssa.c (walk_data): New structure.
14828         (warn_uninitialized_var): If not always_executed warn with "maybe"
14829         instead of "is".
14830         (execute_early_warn_uninitialized): Compute post-dominators.
14831         Initialize always_executed before processing each basic block.
14832
14833 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
14834
14835         PR target/35504
14836         * config/i386/i386.c (x86_this_parameter): Calculate correct location
14837         of "this" pointer when "regparm = N" or "fastcall" is in effect.
14838
14839 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14840
14841         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
14842
14843 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
14844
14845         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
14846         is true.
14847         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
14848         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
14849         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
14850         target after ignore has been set, and move there also the commputation
14851         of subtarget and original_target.
14852         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
14853         (LANG_HOOKS_INITIALIZER): Remove it.
14854         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
14855
14856 2008-03-18  Richard Guenther  <rguenther@suse.de>
14857
14858         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
14859         found an expression with constants, note that in the VN for the lhs.
14860         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
14861         fold them to constants if possible.  Run cleanup_cfg if done so.
14862         (execute_pre): Return todo.
14863         (do_pre): Likewise.
14864         (execute_fre): Likewise.
14865         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
14866         of constants.
14867         (get_prop_source_stmt): Look through pointer conversions.
14868
14869 2008-03-18  Jan Hubicka  <jh@suse.cz>
14870
14871         * tree-pretty-print.c: Include predict.h.
14872         (dump_generic_node): Dump predictor.
14873         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
14874         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
14875         * gimple-low.c (lower_stmt): Likewise.
14876         * expr.c (expand_expr_real): Likewise.
14877         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
14878         them.
14879         (build_predict_expr, build_predict_expr): New.
14880         * predict.h (predictor_name, build_predict_expr): Update.
14881         * c-typeck.c (c_finish_bc_stmt): Add prediction.
14882         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
14883         * predict.def (PRED_CONTINUE): Update hitrate.
14884         * tree.def (PREDICT_EXPR): Define.
14885         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
14886         do not handle BIND_EXPR.
14887         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
14888         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
14889         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
14890         operands.
14891
14892 2008-03-18  Michael Matz  <matz@suse.de>
14893
14894         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
14895
14896 2008-03-18  Richard Guenther  <rguenther@suse.de>
14897
14898         * tree-gimple.h (is_gimple_invariant_address): Declare.
14899         (is_gimple_constant): Likewise.
14900         * tree-gimple.c (is_gimple_constant): New function.
14901         (is_gimple_invariant_address): Likewise.
14902         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
14903         and is_gimple_invariant_address.
14904         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
14905         previous change.
14906         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
14907         an addressable base.
14908
14909 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
14910
14911         PR middle-end/35611
14912         * gimplify.c (gimplify_expr): Gimplify second operand of
14913         OMP_ATOMIC_LOAD.
14914
14915 2008-03-17  Richard Guenther  <rguenther@suse.de>
14916
14917         PR tree-optimization/19637
14918         * fold-const.c (fold_unary): Remove restrictions of removing
14919         intermediate pointer-conversions (P2)(P1)P0.
14920         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
14921         conversion to void pointer.
14922         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
14923
14924 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
14925
14926         PR debug/31510
14927         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
14928         emulated thread local variables.
14929
14930 2008-03-16  Richard Guenther  <rguenther@suse.de>
14931
14932         PR middle-end/35607
14933         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
14934         expand TREE_INVARIANT operations that are not gimple invariant.
14935
14936 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
14937
14938         * doc/extend.texi (Alignment): Say that the ABI controls
14939         the __alignof__ for non-strict-alignment targets rather
14940         than being a recommendation.
14941
14942 2008-03-15  Paul Brook  <paul@codesourcery.com>
14943
14944         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
14945         annotations.
14946         (arm_output_fn_unwind): Mark functions that can not be unwound.
14947
14948 2008-03-15  Paul Brook  <paul@codesourcery.com>
14949
14950         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
14951         extension instructions.
14952
14953 2008-03-15  Richard Guenther  <rguenther@suse.de>
14954
14955         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
14956         and fold constant aggregate refs.
14957         (fold_const_aggregate_ref): Handle string constants
14958         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
14959         (evaluate_stmt): Simplify now that ccp_fold folds constant
14960         aggregate refs.
14961
14962 2008-03-15  Paul Brook  <paul@codesourcery.com>
14963
14964         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
14965         (extzv): Use gen_extzv_t2.
14966         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
14967
14968 2008-03-15  Richard Guenther  <rguenther@suse.de>
14969
14970         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
14971         (fold_const_aggregate_ref): Likewise.
14972         (get_value): Return NULL if we don't have any values.
14973         (ccp_finalize): Set const_val to NULL after freeing it.
14974         * tree-flow.h (get_symbol_constant_value): Declare.
14975         (fold_const_aggregate_ref): Likewise.
14976         * tree-ssa-sccvn.c (try_to_simplify): Use them.
14977
14978 2008-03-15  Richard Guenther  <rguenther@suse.de>
14979
14980         PR middle-end/35593
14981         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
14982         to not produce negative array indices if not allowed.  Add
14983         parameter to indicate that.
14984         (maybe_fold_offset_to_component_ref): Allow negative array
14985         indices only for the first member of a structure.
14986         (maybe_fold_offset_to_reference): Allow negative array indices.
14987         (maybe_fold_stmt_addition): Likewise.
14988
14989 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
14990             Anatoly Sokolov <aesok@post.ru>
14991
14992         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
14993         (avr_arch): Add ARCH_AVR6.
14994         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
14995         (initial_elimination_offset): Initialize and use 'avr_pc_size'
14996         instead of fixed value 2.
14997         (print_operand_address): Use gs() asm specifier instead of pm().
14998         (avr_assemble_integer): (Ditto.).
14999         (avr_output_addr_vec_elt): (Ditto.).
15000         (print_operand): Handle "!" code.
15001         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
15002         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
15003         (AVR_HAVE_EIJMP_EICALL): Define.
15004         (AVR_3_BYTE_PC): Redefine.
15005         (AVR_2_BYTE_PC): (Ditto.).
15006         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
15007         (LINK_SPEC): Add atmega2560 and atmega2561.
15008         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
15009         (crtm2561.o).
15010         * config/avr/avr.md (call_insn): Use eicall instead of icall
15011         for 3 byte PC devices.
15012         (call_value_insn): (Ditto.).
15013         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
15014         (indirect_jump): Use only for for 2 byte PC devices.
15015         (*tablejump): (Ditto.).
15016         (*indirect_jump_avr6): Add insn.
15017         (*tablejump_rjmp): Don't use for 3 byte PC devices.
15018         * config/avr/libgcc.S (__prologue_saves__): Use eijmp
15019         instead of ijmp for 3 byte PC devices.
15020         (__tablejump2__): (Ditto.).
15021         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
15022         (MULITLIB_DIRNAMES): (Ditto.).
15023         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
15024
15025 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
15026
15027         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
15028         "sse2_umulsidi3".  Use V1DI mode for operand 0.
15029         ("mmx_psadbw"): Use V1DI mode for operand 0.
15030         * config/i386/i386-modes.def (V1SI): New vector mode.
15031         * config/i386/i386.c (struct builtin_description)
15032         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
15033         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
15034         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
15035         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
15036         v1di_ftype_v8qi_v8qi type.
15037         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
15038
15039         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
15040         __builtin_ia32_pmuludq]: Fix the mode of return value.
15041
15042 2008-03-15  Richard Guenther  <rguenther@suse.de>
15043
15044         PR middle-end/35595
15045         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
15046         being a PHI_NODE.
15047
15048 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
15049
15050         * doc/invoke.texi (Option Summary, Xtensa Options): Document
15051         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
15052         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
15053         unless TARGET_SERIALIZE_VOLATILE is enabled.
15054         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
15055         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
15056         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
15057
15058 2008-03-14  Richard Guenther  <rguenther@suse.de>
15059
15060         PR tree-optimization/34172
15061         * tree-flow.h (refs_may_alias_p): Declare.
15062         (get_single_def_stmt): Likewise.
15063         (get_single_def_stmt_from_phi): Likewise.
15064         (get_single_def_stmt_with_phi): Likewise.
15065         * tree-dfa.c (refs_may_alias_p): New function.
15066         (get_single_def_stmt): Likewise.
15067         (get_single_def_stmt_from_phi): Likewise.
15068         (get_single_def_stmt_with_phi): Likewise.
15069         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
15070         (vn_reference_lookup_1): New helper function.
15071         (vn_reference_lookup): Walk the virtual use-def chain to
15072         continue searching for a match if the def does not alias the
15073         reference we are looking for.
15074
15075 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
15076
15077         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
15078         archive and Perzl.  Update The Written Word listing.
15079
15080 2008-03-14  Richard Guenther  <rguenther@suse.de>
15081
15082         PR tree-optimization/34043
15083         PR tree-optimization/33989
15084         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
15085         when doing FRE.
15086         (bitmap_find_leader): Use extra argument to verify dominance
15087         relationship inside a basic-block.
15088         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
15089         (find_leader_in_sets): Adjust.
15090         (create_component_ref_by_pieces): Take extra argument for
15091         dominance check, handle lookup failures.
15092         (find_or_generate_expression): Likewise.
15093         (create_expression_by_pieces): Likewise.
15094         (insert_into_preds_of_block): Adjust.
15095         (create_value_expr_from): If asked for, verify all operands
15096         are in the blocks AVAIL_OUT set.
15097         (make_values_for_stmt): Check for SSA_NAMEs that are life
15098         over an abnormal edge.
15099         (compute_avail): Remove such check.
15100         (do_SCCVN_insertion): New function.
15101         (eliminate): If we do not find a leader suitable for replacement
15102         insert a replacement expression from SCCVN if available.
15103         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
15104         (struct vn_ssa_aux): Add needs_insertion flag.
15105         * tree-ssa-sccvn.c (may_insert): New global flag.
15106         (copy_reference_ops_from_ref): Value-number union member access
15107         based on its size, not type and member if insertion is allowed.
15108         (visit_reference_op_load): For a weak match from union type
15109         punning lookup a view-converted value and insert a SSA_NAME
15110         for that value if that is not found.
15111         (visit_use): Make dumps shorter.  Do not disallow value numbering
15112         SSA_NAMEs that are life over an abnormal edge to constants.
15113         (free_scc_vn): Release inserted SSA_NAMEs.
15114         (run_scc_vn): New flag to specify whether insertion is allowed.
15115         Process SSA_NAMEs in forward order.
15116         * tree-ssa-loop-im.c (for_each_index): Handle invariant
15117         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
15118         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
15119         pointer type to/from integral types that do not change the
15120         precision to regular conversions.
15121
15122 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
15123
15124         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
15125         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
15126         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
15127         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
15128         input arguments and the mode of return value.  Built-in functions
15129         that operate on whole 64-bit MMX register now use V1DI mode.
15130
15131 2008-03-13  Alon Dayan  <alond@il.ibm.com>
15132             Olga Golovanevsky  <olga@il.ibm.com>
15133
15134         PR tree-optimization/35041
15135         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
15136         to locate the right position in a statement.
15137
15138 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
15139
15140         PR target/34000
15141         PR target/35553
15142         * config/i386/xmmintrin.h:  Change all static inline functions to
15143         extern inline and add __gnu_inline__ attribute.
15144         * config/i386/bmintrin.h: Ditto.
15145         * config/i386/smmintrin.h: Ditto.
15146         * config/i386/tmmintrin.h: Ditto.
15147         * config/i386/mmintrin-common.h: Ditto.
15148         * config/i386/ammintrin.h: Ditto.
15149         * config/i386/emmintrin.h: Ditto.
15150         * config/i386/pmmintrin.h: Ditto.
15151         * config/i386/mmintrin.h: Ditto.
15152         * config/i386/mm3dnow.h: Ditto.
15153
15154 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
15155
15156         PR middle-end/35185
15157         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
15158         (lower_omp_2): New function.
15159         (lower_omp_1, lower_omp): Rewritten.
15160
15161 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
15162
15163         PR 35054
15164         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
15165         with the phrase "Microsoft Windows compilers".
15166         (Push/Pop Macro Pragmas): New subsection. Document
15167         #pragma push_macro and pragma pop_macro.
15168
15169 2008-03-12  Paul Brook  <paul@codesourcery.com>
15170
15171         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
15172
15173 2008-03-12  Paul Brook  <paul@codesourcery.com>
15174
15175         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
15176         (thumb2_alusi3_short): Exclude PLUS and MINUS.
15177         (thumb2_addsi_shortim): Rename ...
15178         (thumb2_addsi_short): ... to this.  Allow register operands.
15179         (thumb2_subsi_short): New pattern.
15180         (thumb2_one_cmplsi2_short,
15181         thumb2_negsi2_short): New patterns and peepholes.
15182
15183 2008-03-12  Paul Brook  <paul@codesourcery.com>
15184
15185         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
15186
15187 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
15188
15189         * config/i386/i386.md (int_cond): New code iterator.
15190         (fp_cond): Ditto.
15191         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
15192         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
15193         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
15194         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
15195         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
15196         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
15197         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
15198         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
15199
15200 2008-03-12  Paul Brook  <paul@codesourcery.com>
15201
15202         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
15203         instead of {arm,thumb}_compute_save_reg_mask.
15204         (output_return_instruction): Ditto.
15205         (thumb_unexpanded_epilogue): Ditto.
15206         (thumb1_expand_prologue): Ditto.
15207         (thumb1_output_function_prologue): Ditto.
15208         (arm_set_return_address): Ditto.
15209         (thumb_set_return_address): Ditto.
15210         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
15211         regs to achieve stack alignment.
15212         (thumb1_compute_save_reg_mask): Fix compiler warning.
15213         (arm_output_epilogue): Use offsets->saved_regs_mask.
15214         Adjust stack pointer by poping call clobered registers.
15215         (arm_expand_prologue): Use offsets->saved_regs_mask.
15216         Adjust stack pointer by pushing extra registers.
15217         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
15218
15219 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
15220
15221         PR tree-opt/35422
15222         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
15223         conversion to the operands of a multiplication.
15224
15225 2008-03-12  Richard Guenther  <rguenther@suse.de>
15226
15227         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
15228         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
15229         * timevar.def (TV_TREE_PHIPROP): Add.
15230         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
15231         pass description.  Use TV_TREE_PHIPROP.
15232         * tree-ssa-forwprop.c: Remove phiprop code.
15233
15234 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
15235
15236         PR middle-end/35549
15237         * omp-low.c (maybe_lookup_decl): Constify first argument.
15238         (use_pointer_for_field): Change last argument from bool to
15239         omp_context *.  Disallow shared copy-in/out in nested
15240         parallel if decl is shared in outer parallel too.
15241         (build_outer_var_ref, scan_sharing_clauses,
15242         lower_rec_input_clauses, lower_copyprivate_clauses,
15243         lower_send_clauses, lower_send_shared_vars): Adjust callers.
15244
15245 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
15246             Ira Rosen  <irar@il.ibm.com>
15247
15248         * tree-vectorizer.c (free_stmt_vec_info): New function.
15249         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
15250         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
15251         * tree-vectorizer.h (free_stmt_vec_info): Declare.
15252         * tree-vect-transform.c (vectorizable_conversion): Free
15253         vec_oprnds0 if it was allocated.
15254         (vect_permute_store_chain): Remove unused VECs.
15255         (vectorizable_store): Free VECs that are allocated in the..
15256         function.
15257         (vect_transform_strided_load, vectorizable_load): Likewise.
15258         (vect_remove_stores): Simplify the code.
15259         (vect_transform_loop): Move code to vect_remove_stores().
15260         Call vect_remove_stores() and free_stmt_vec_info().
15261
15262 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15263
15264         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
15265         TARGET_HPUX.  Revise comment.
15266         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
15267         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
15268         Use sr4 variant of `be' instruction when not generating PIC code.
15269         (attr_length_call): Adjust for above change.
15270
15271 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15272
15273         * ipa-reference.c (static_execute): Remove module_statics_const and
15274         associated setting code.
15275
15276 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
15277
15278         PR target/35540
15279         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
15280         predicate for operand 1.
15281         (paritysi2_cmp): Use register_operand predicate for operand 2.
15282         Use earlyclobber modifier for operand 1.  Remove support for
15283         memory operands.
15284         (paritydi2_cmp): Use register_operand predicate for operand 3.
15285         Use earlyclobber modifier for operand 1.  Remove support for
15286         memory operands.
15287
15288 2008-03-11  Paul Brook  <paul@codesourcery.com>
15289             Vladimir Prus  <vladimir@codesourcery.com>
15290
15291         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
15292         (arm_compute_save_reg0_reg12_mask): Always
15293         check if register 11 must be saved.  Always safe hard frame pointer
15294         when frame_pointer_needeed.
15295         (arm_compute_save_reg_mask): Save IP and PC
15296         only with apcs frames.
15297         (arm_output_epilogue): Adjust Thumb2 codepath to
15298         be also invoked and work for ARM non-apcs frames.
15299         (arm_expand_prologue): Don't bother saving IP
15300         for non-apcs frame, since it's not clobbered by
15301         prologue code.  Implement non-apcs frame
15302         layout.
15303
15304 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
15305
15306         PR rtl-optimization/35281
15307         * expr.c (convert_move): Use a new pseudo for the intermediate
15308         from_mode->word_mode result.
15309
15310 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
15311
15312         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
15313         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
15314         * toplev.c (compile_file): Don't call it.
15315
15316 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
15317
15318         PR middle-end/35526
15319         * expr.c (store_expr): Call emit_block_move if the mode
15320         of "temp" RTX is BLKmode.
15321
15322 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15323             Richard Guenther  <rguenther@suse.de>
15324
15325         PR tree-optimization/31358
15326         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
15327         the step with a NULL_TREE.
15328         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
15329         to sizetype if type is a pointer type.
15330         (add_candidate_1): Don't convert the base and step to
15331         the generic type if the orginal type is a pointer type.
15332         (add_iv_value_candidates): Use sizetype for the step
15333         if type is a pointer type.
15334         (cand_value_at): Likewise.
15335         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
15336         for pointer types.
15337         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
15338         Don't convert the tem affine to the type.
15339         (add_elt_to_tree): Use sizetype for the step if a pointer.
15340         Use POINTER_PLUS_EXPR for pointers.
15341         (aff_combination_to_tree): Use sizetype for the step if a
15342         pointer.
15343
15344 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
15345
15346         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
15347         Remove commutativity hint.
15348
15349 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
15350
15351         PR c/35438
15352         PR c/35439
15353         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
15354         errorneous type.  Check that v is a VAR_DECL.
15355
15356         PR middle-end/35099
15357         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
15358
15359 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
15360
15361         PR tree-optimization/35494
15362         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
15363         may be overriden at link and run time.
15364
15365 2008-03-10  Richard Guenther  <rguenther@suse.de>
15366
15367         PR tree-optimization/34677
15368         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
15369         (poolify_tree): Likewise.
15370         (modify_expr_template): Likewise.
15371         (poolify_modify_stmt): Likewise.
15372         (insert_fake_stores): Handle all component-ref style stores
15373         in addition to INDIRECT_REF.  Also handle complex types.
15374         Do not poolify the inserted load.
15375         (realify_fake_stores): Do not rebuild the tree but only
15376         make it a SSA_NAME copy.
15377         (init_pre): Remove initialzation of modify_expr_template.
15378         Do not allocate modify_expr_node_pool.
15379         (fini_pre): Do not free modify_expr_node_pool.
15380
15381 2008-03-10  Paul Brook  <paul@codesourcery.com>
15382
15383         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
15384         to avoid conflicts.
15385
15386 2008-03-10  Paul Brook  <paul@codesourcery.com>
15387             Mark Shinwell  <shinwell@codesourcery.com>
15388
15389         * config/arm/cortex-r4.md: New.
15390         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
15391         insn attributes.
15392         * config/arm/arm.md: Include cortex-r4.md.
15393         (insn): Add smmls, sdiv and udiv values.
15394         (generic_sched): Don't use generic scheduling for Cortex-R4.
15395         (arm_issue_rate): New function.
15396         (TARGET_SCHED_ISSUE_RATE): Define.
15397
15398 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
15399
15400         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
15401
15402 2008-03-10  Richard Guenther  <rguenther@suse.de>
15403
15404         * tree-ssa-pre.c (get_sccvn_value): Simplify.
15405         (compute_avail): Do not add stmt uses to AVAIL_OUT.
15406
15407 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
15408
15409         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
15410         Set default to true.
15411
15412 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15413
15414         * c.opt (Wsynth): Deprecate.
15415         * doc/invoke.texi (Option Summary, Warning Options): Document
15416         -Wno-format-contains-nul.
15417
15418 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
15419
15420         PR target/35496
15421         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
15422         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
15423
15424 2008-03-09  Ira Rosen  <irar@il.ibm.com>
15425
15426         * config/rs6000/rs6000.c (builtin_description): Rename vector
15427         left shift operations.
15428         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
15429         (altivec_vsl<VI_char>): Rename to ...
15430         (ashl<mode>3): ... new name.
15431         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
15432         gen_ashlv4si3.
15433         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
15434
15435 2008-03-08  Richard Guenther  <rguenther@suse.de>
15436
15437         * coverage.h (tree_coverage_counter_addr): Declare.
15438         * coverage.c (tree_coverage_counter_addr): New function.
15439         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
15440         before using again.
15441         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
15442         (tree_gen_one_value_profiler): Likewise.
15443         (tree_gen_ic_profiler): Likewise.
15444         (tree_gen_average_profiler): Likewise.
15445         (tree_gen_ior_profiler): Likewise.
15446
15447 2008-03-08  Richard Guenther  <rguenther@suse.de>
15448
15449         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
15450         (vn_binary_op_insert): Likewise.
15451         (vn_unary_op_lookup): Likewise.
15452         (vn_unary_op_insert): Likewise.
15453         (vn_nary_op_lookup): Declare.
15454         (vn_nary_op_insert): Likewise.
15455         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
15456         and binary hashes, use a single obstack for unary_op_pool
15457         and binary_op_pool.
15458         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
15459         a single struct vn_nary_op_s.  Store tree code length and
15460         a variable number of operands.
15461         (struct vn_reference_op_struct): Remove unused op2.
15462         (vn_reference_op_eq): Do not compare op2.
15463         (vn_reference_op_compute_hash): Do not compute hash of op2.
15464         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
15465         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
15466         with vn_nary_op_compute_hash.
15467         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
15468         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
15469         vn_nary_op_lookup.
15470         (vn_unary_op_insert, vn_binary_op_insert): Replace with
15471         vn_nary_op_insert.
15472         (visit_unary_op): Call nary functions.
15473         (visit_binary_op): Likewise.
15474         (process_scc): Adjust for struct vn_tables_s changes.
15475         (allocate_vn_table): Likewise.
15476         (free_vn_table): Likewise.
15477         * tree-vn.c (vn_add): Call nary functions.
15478         (vn_lookup): Likewise.
15479
15480 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
15481
15482         PR target/35498
15483         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
15484         wdst back after sync_compare_and_swapqhi_internal.
15485
15486 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
15487
15488         PR target/22152
15489         * config/i386/i386-modes.def (V1DI): New vector mode.
15490         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
15491         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
15492         (MMXMODE248): Ditto.
15493         (MMXMODE): Add V1DI mode.
15494         (mmxvecsize): Change DI mode to V1DI mode.
15495         ("mov<mode>): Use MMXMODEI8 mode iterator.
15496         ("*mov<mode>_internal_rex64"): Ditto.
15497         ("*mov<mode>_internal"): Ditto.
15498         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
15499         ("mmx_sub<mode>3"): Ditto.
15500         ("mmx_adddi3"): Remove insn pattern.
15501         ("mmx_subdi3"): Ditto.
15502         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
15503         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
15504         ("mmx_ashl<mode>3"): Ditto.
15505         ("mmx_lshrdi3"): Remove insn pattern.
15506         ("mmx_ashldi3"): Ditto.
15507         * config/i386/i386.c (classify_argument): Handle V1DImode.
15508         (function_arg_advance_32): Ditto.
15509         (function_arg_32): Ditto.
15510         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
15511         mmx_addv1di3 insn pattern.
15512         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
15513         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
15514         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
15515         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
15516         Remove definitions of built-in functions.
15517         (V1DI_type_node): New node.
15518         (v1di_ftype_v1di_int): Ditto.
15519         (v1di_ftype_v1di_v1di): Ditto.
15520         (v2si_ftype_v2si_si): Ditto.
15521         (v4hi_ftype_v4hi_di): Remove node.
15522         (v2si_ftype_v2si_di): Ditto.
15523         (ix86_init_mmx_sse_builtins): Handle V1DImode.
15524         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
15525         Redefine builtins using def_builtin_const with *_ftype_*_int node.
15526         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
15527         Add new builtins using def_builtin_const.
15528         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
15529         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
15530         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
15531         * config/i386/mmintrin.h (__v1di): New typedef.
15532         (_mm_add_si64): Cast arguments to __v1di type.
15533         (_mm_sub_si64): Ditto.
15534         (_mm_sll_pi16): Cast __count to __v4hi type.
15535         (_mm_sll_pi32): Cast __count to __v2si type.
15536         (_mm_sll_si64): Cast arguments to __v1di type.
15537         (_mm_srl_pi16): Cast __count to __v4hi type.
15538         (_mm_srl_pi32): Cast __count to __v2si type.
15539         (_mm_srl_si64): Cast arguments to __v1di type.
15540         (_mm_sra_pi16): Cast __count to __v4hi type.
15541         (_mm_sra_pi32): Cast __count to __v2si type.
15542         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
15543         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
15544         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
15545         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
15546         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
15547         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
15548         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
15549         (_mm_srai_pi32): Use __builtin_ia32_psradi.
15550         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
15551         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
15552         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
15553         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
15554
15555 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
15556
15557         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
15558
15559 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
15560
15561         PR target/35373
15562         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
15563         reg+const addressing for Altivec modes.  Don't generate reg+reg
15564         addressing for TFmode or TDmode quantities.
15565
15566 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
15567
15568         * c-common.c (vector_types_convertible_p): Call langhook
15569         instead of comptypes.
15570
15571 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15572
15573         PR tree-opt/35402
15574         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
15575         integral and scalar float variables which have a
15576         NULL DECL_INITIAL.
15577
15578 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
15579
15580         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
15581         dwarf_register_span hook when emitting unwind information for
15582         register-to-memory saves.
15583         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
15584         (rs6000_frame_related): Remove call to spe_synthesize_frame.
15585
15586 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
15587
15588         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
15589         for the same VAR_DECL.
15590
15591 2008-03-06  Tom Tromey  <tromey@redhat.com>
15592
15593         * treelang: Delete.
15594         * doc/standards.texi (Standards): Don't mention treelang.
15595         * doc/invoke.texi (Overall Options): Don't mention treelang.
15596         * doc/install.texi (Prerequisites): Don't mention bison or
15597         treelang.
15598         (Configuration): Don't mention treelang.
15599         (Building): Likewise.
15600         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
15601
15602 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
15603
15604         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
15605         word-extractions out of a multi-word object.
15606
15607 2008-03-06  Richard Guenther  <rguenther@suse.de>
15608
15609         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
15610         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
15611         result type and precision.
15612         * expr.c (get_inner_reference): Set unsignedp based on the result
15613         type of BIT_FIELD_REF.
15614         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
15615         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
15616         (try_instantiate_multiple_fields): Likewise.  Use the correct type
15617         for BIT_FIELD_REF.
15618         (sra_build_assignment): Likewise.
15619         (sra_build_elt_assignment): Likewise.
15620         (sra_explode_bitfield_assignment): Likewise.
15621         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
15622         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
15623         set BIT_FIELD_REF_UNSIGNED.
15624         (vectorizable_load): Likewise.
15625
15626 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
15627
15628         * cse.c (cse_extended_basic_block): Invalidate artificial defs
15629         at bb start.
15630
15631 2008-03-06  Richard Guenther  <rguenther@suse.de>
15632
15633         * alias.c (struct alias_set_entry): Move has_zero_child field
15634         to pack with alias_set.
15635
15636 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
15637
15638         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
15639         32bit host.
15640
15641 2008-03-05  Ian Lance Taylor  <iant@google.com>
15642
15643         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
15644
15645 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
15646
15647         * fwprop.c (update_df): Support width and offset parameters of
15648         df_ref_create.
15649         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
15650         global_conflicts): Change DF_REF_EXTRACT to either
15651         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
15652         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
15653         * df-scan.c (df_ref_record, df_defs_record,
15654         df_ref_create_structure, df_def_record_1, df_uses_record,
15655         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
15656         df_bb_refs_collect, df_entry_block_defs_collect,
15657         df_exit_block_uses_collect): Support new width and offset fields.
15658         (ref_extract_pool): New storage pool.
15659         (df_free_ref): New function.
15660         (df_reg_chain_unlink, df_free_collection_rec,
15661         df_sort_and_compress_refs): Call df_free_ref.
15662         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
15663         of df_ref_extract.
15664         (df_ref_create_structure): Allocate df_ref_extract if offset and
15665         width fields are used.
15666         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
15667         (df_uses_record): Get offset and width from ZERO_EXTRACT
15668         and SIGN_EXTRACT.
15669         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
15670         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
15671         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
15672         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
15673         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
15674         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
15675         (df_ref_extract): New structure.
15676         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
15677         (df_ref_create): Add width and offset parameters.
15678
15679 2008-03-05  Richard Guenther  <rguenther@suse.de>
15680
15681         * tree-ssa-structalias.c (get_constraint_for_component_ref):
15682         Use ranges_overlap_p.
15683         (offset_overlaps_with_access): Rename
15684         to ranges_overlap_p and move ...
15685         * tree-flow-inline.h (ranges_overlap_p): ... here.
15686
15687         * tree.h (get_inner_reference, handled_component_p): Update
15688         comments.
15689
15690         * tree.h (record_component_aliases, get_alias_set,
15691         alias_sets_conflict_p, alias_sets_must_conflict_p,
15692         objects_must_conflict_p): Move declarations ...
15693         * alias.h (record_component_aliases, get_alias_set,
15694         alias_sets_conflict_p, alias_sets_must_conflict_p,
15695         objects_must_conflict_p): ... here.
15696         Include coretypes.h.
15697         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
15698
15699 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
15700
15701         * cfg.c: Include tree-flow.h.
15702         (remove_edge_raw): Call redirect_edge_var_map_clear.
15703         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
15704         * tree-flow-inline.h (redirect_edge_var_map_def): New.
15705         (redirect_edge_var_map_result): New.
15706         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
15707         PENDING_STMT use with redirect_edge_var_map_*.
15708         * tree-ssa.c (edge_var_maps): New definition.
15709         (redirect_edge_var_map_add): New.
15710         (redirect_edge_var_map_clear): New.
15711         (redirect_edge_var_map_dup): New.
15712         (redirect_edge_var_map_vector): New.
15713         (redirect_edge_var_map_destroy): New.
15714         (ssa_redirect_edge): Replace PENDING_STMT use with
15715         redirect_edge_var_map_*.
15716         (flush_pending_stmts): Same.
15717         (delete_tree_ssa): Destroy edge var map.
15718         * tree-flow.h (struct _edge_var_map): New.
15719         Define edge_var_map vector type.
15720         Declare redirect_edge_var_map_* prototypes.
15721         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
15722         * tree-cfg.c (reinstall_phi_args): Replace
15723         PENDING_STMT use with redirect_edge_var_map_*.
15724
15725 2008-03-05  Richard Guenther  <rguenther@suse.de>
15726
15727         PR tree-optimization/35472
15728         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
15729         whose single use_stmt has a overlapping set of loaded and
15730         stored symbols as that use_stmt might be a noop assignment then.
15731
15732 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
15733
15734         * gthr-rtems.h: Implement __gthread_mutex_destroy.
15735
15736 2008-03-05  Richard Guenther  <rguenther@suse.de>
15737
15738         PR c++/35336
15739         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
15740         should be constants.
15741         * tree-cfg.c (verify_expr): Verify it.
15742         * fold-const.c (fold_truthop): Remove code generating
15743         BIT_FIELD_REFs of structure bases.
15744         (fold_binary): Likewise.
15745         (fold_ternary): Position and size of BIT_FIELD_REFs are
15746         always host integers.
15747         (make_bit_field_ref): Remove.
15748         (optimize_bit_field_compare): Remove.
15749         (all_ones_mask_p): Remove.
15750
15751 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
15752
15753         PR gcc/33009
15754         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
15755         (split_block_and_df_analyze): New. Split basic block and rebuild
15756         dataflow.
15757         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
15758         SPLIT_BLOCK.
15759         (split_pattern_seq): Likewise.
15760         (erase_matching_seqs): Likewise.
15761         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
15762
15763 2008-03-04  Geoff Keating  <geoffk@apple.com>
15764
15765         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
15766         declaration and code.
15767         (tree_invalid_nonnegative_warnv_p): Likewise.
15768
15769 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
15770
15771         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
15772         examples.  Truncate option-names then causing overfull hbox.
15773
15774 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15775
15776         PR target/35222
15777         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
15778         on hpux10.
15779         * configure: Rebuilt.
15780
15781 2008-03-04  Rafael Espindola  <espindola@google.com>
15782
15783         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
15784         (tree_unary_nonnegative_warnv_p): New.
15785         (tree_binary_nonnegative_warnv_p): New.
15786         (tree_single_nonnegative_warnv_p): New.
15787         (tree_invalid_nonnegative_warnv_p): New.
15788         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
15789
15790 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15791
15792         PR 28322
15793         * opts.c (handle_option): Postpone 'unknown option' errors only for
15794         warning options.
15795
15796 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
15797
15798         PR target/35453
15799         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
15800         (_SIDD_XXX): This.
15801
15802 2008-03-04  Rafael Espindola  <espindola@google.com>
15803
15804         * fold-const.c (tree_unary_nonzero_warnv_p): New.
15805         (tree_binary_nonzero_warnv_p): New.
15806         (tree_single_nonzero_warnv_p): New.
15807         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
15808
15809 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
15810
15811         PR middle-end/35456
15812         * fold-const.c (fold_cond_expr_with_comparison): Prevent
15813         transformations for modes that have signed zeros.
15814         * ifcvt.c (noce_try_abs): Ditto.
15815
15816 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
15817
15818         * config/i386/i386.c (override_options): Force
15819         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
15820
15821 2008-03-04  Jan Hubicka  <jh@suse.cz>
15822
15823         PR c++/35262
15824         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
15825         in last commit.
15826
15827 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
15828
15829         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
15830         label to probe the stack.
15831
15832 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
15833
15834         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
15835         (__gthr_win32_mutex_destroy): Declare.
15836         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
15837         __gthr_win32_mutex_destroy.
15838         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
15839
15840 2008-03-03  Jan Hubicka  <jh@suse.cz>
15841
15842         PR c++/35262
15843         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
15844         aggressive on inlining cold calls.
15845
15846 2008-03-03  Richard Guenther  <rguenther@suse.de>
15847
15848         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
15849         struct copies into the expression table.
15850         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
15851         (try_to_simplify): Likewise.
15852         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
15853         integral and pointer arguments which do not change the
15854         precision to NOP_EXPRs.
15855         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
15856         VIEW_CONVERT_EXPR case.
15857
15858 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
15859
15860         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
15861         defined in a loop at depth 0 is invariant.
15862         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
15863         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
15864         be called at loop depth 0.
15865
15866 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
15867
15868         PR driver/35420
15869         * gcc.c (process_command): Update copyright notice dates.
15870         * gcov.c (print_version): Likewise.
15871         * gcov-dump.c (print_version): Likewise.
15872         * mips-tfile.c (main): Likewise.
15873         * mips-tdump.c (main): Likewise.
15874
15875 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15876
15877         PR 24924
15878         * c-common.c (flag_permissive): Delete.
15879         (constant_expression_warnings): Check flags first.
15880         (constant_expression_error): New.
15881         * c-common.h (flag_permissive): Delete.
15882         (constant_expression_error): Declare.
15883         * flags.h (flag_permissive): Declare. Update description.
15884         * diagnostic.c (pedwarn): Update.
15885         (permerror): New.
15886         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
15887         (permissive_error_kind): New.
15888         * toplev.c (flag_permissive): Define. Update description.
15889         * toplev.h (permissive_error_kind): Declare.
15890         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
15891         (pedwarn_c90): Use pedantic_warning_kind.
15892         * c-opts.c (c_common_post_options): flag_permissive does not affect
15893         flag_pedantic_errors.
15894
15895 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
15896
15897         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
15898         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
15899         __absvsi2, __absvDI2): Use unsigned arithmetic.
15900
15901 2008-03-02  Andi Kleen  <ak@suse.de>
15902             Richard Guenther  <rguenther@suse.de>
15903
15904         * struct-equiv.c: Remove file.
15905         * cfg_cleanup.c (condjump_equiv_p): Remove.
15906         * Makefile.in (OBJS-common): Remove struct-equiv.o.
15907         (struct-equiv.o): Remove rule.
15908         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
15909         insns_match_p, struct_equiv_block_eq, struct_equiv_init,
15910         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
15911
15912 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
15913
15914         * ifcvt.c (noce_process_if_block): Try to handle only the then
15915         block if the else block exists but isn't suitable.
15916
15917 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
15918
15919         PR gcc/35063
15920         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
15921         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
15922         regression from previous patch.
15923
15924 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
15925
15926         PR gcc/35063
15927         * gthr.h: Add __gthread_mutex_destroy as a function that must be
15928         implemented.
15929         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
15930         * gthr-single.h (__gthread_mutex_destroy): Likewise.
15931         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
15932         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
15933         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
15934         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
15935         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
15936         (__gthread_mutex_destroy_function): Rename to
15937         __gthread_mutex_destroy.
15938         * gthr-dce.h (__gthread_mutex_destroy): Call
15939         pthread_mutex_destroy.
15940         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
15941         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
15942         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
15943
15944 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
15945
15946         * df-scan.c (df_ref_chain_change_bb): Simplify.
15947         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
15948         set_block_for_insn if there's any change.
15949         * df.h ((df_insn_change_bb): Fix prototype.
15950         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
15951         df_insn_change_bb, don't call set_block_for_insn.
15952         * emit-rtl.c (reorder_insns): Likewise.
15953         * haifa-sched.c (move_insn): Likewise.
15954
15955 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
15956
15957         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
15958
15959 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
15960
15961         * tree-flow-inline.h (next_readonly_imm_use): Return
15962         NULL_USE_OPERAND_P after the end.
15963
15964 2008-03-01  Richard Guenther  <rguenther@suse.de>
15965
15966         PR tree-optimization/35411
15967         * tree-sra.c (sra_build_assignment): Split conversion to
15968         final type to a separate statement if we are not assigning
15969         to a register.
15970
15971 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
15972
15973         * fold-const.c (fold_convertible_p): Correct the logic to follow
15974         that in fold_convert().
15975
15976 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
15977
15978         PR c++/35315
15979         * tree-inline.c (build_duplicate_type): When we make a
15980         duplicate type, make it unique in the canonical types system.
15981
15982 2008-02-29  Tom Tromey  <tromey@redhat.com>
15983
15984         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
15985         input_file_stack_history, input_file_stack_restored): Remove.
15986         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
15987         * input.h (struct file_stack): Remove.
15988         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
15989         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
15990         Likewise.
15991         * diagnostic.h (struct diagnostic_context) <last_module>: Change
15992         type.
15993         (diagnostic_last_module_changed): Add 'map' argument.
15994         (diagnostic_set_last_function): Likewise.
15995         * diagnostic.c (undiagnostic_report_current_module): Iterate using
15996         line map, not input_file_stack.
15997         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
15998
15999 2008-02-29  Paul Brook  <paul@codesourcery.com>
16000
16001         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
16002
16003 2008-02-29  Paul Brook  <paul@codesourcery.com>
16004
16005         * config/arm/ieee754-df.S (muldf3): Use RET macros.
16006
16007 2008-02-29  Richard Guenther  <rguenther@suse.de>
16008
16009         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
16010         vn_lookup_or_add.
16011         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
16012         value for comparing for a store match.
16013         (simplify_unary_expression): Do nothing for SSA_NAMEs.
16014         (try_to_simplify): Do not do a full-blown reference lookup.
16015
16016 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
16017
16018         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
16019         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
16020
16021         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
16022
16023 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
16024
16025         * tree-loop-linear.c (try_interchange_loops): Compare memory access
16026         strides against cache sizes.
16027
16028 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
16029
16030         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
16031         constant to fpul.
16032
16033 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
16034
16035         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
16036         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
16037         is smaller than the original promoted value.
16038         (simplify_subreg): If OP is a SUBREG, try to preserve its
16039         SUBREG_PROMOTED_VAR_P information.
16040
16041 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
16042
16043         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
16044         (VN_INFO_GET): Allocate new objects on the obstack.
16045         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
16046         for rpo_numbers_temp, for consistency.
16047         (free_scc_vn): Free the obstack.
16048
16049 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
16050
16051         * doc/invoke.texi: Document -ftree-loop-distribution.
16052         * tree-loop-distribution.c: New.
16053         * tree-pass.h (pass_loop_distribution): New.
16054         * graphds.h (struct graph): Add htab_t indices.
16055         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
16056         * tree-vectorizer.c (rename_variables_in_loop): Extern.
16057         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
16058         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
16059         * tree-data-ref.c (debug_data_dependence_relations): New.
16060         (dump_data_dependence_relation): Also print data references.
16061         (free_data_ref): Extern.
16062         (same_access_functions): Moved...
16063         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
16064         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
16065         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
16066         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
16067         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
16068         (stmts_from_loop): Skip LABEL_EXPR.
16069         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
16070         New.
16071         (build_rdg): Initialize rdg->indices htab.
16072         (free_rdg, stores_from_loop, ref_base_address,
16073         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
16074         have_similar_memory_accesses_1, ref_base_address_1,
16075         remove_similar_memory_refs): New.
16076         * tree-data-ref.h: Depend on tree-chrec.h.
16077         (debug_data_dependence_relations, free_data_ref): Declared.
16078         (same_access_functions): ... here.
16079         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
16080         New.
16081         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
16082         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
16083         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
16084         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
16085         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
16086         rdg_vertex_for_stmt): Declared.
16087         (struct rdg_edge): Add level.
16088         (RDGE_LEVEL): New.
16089         (free_rdg, stores_from_loop, remove_similar_memory_refs,
16090         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
16091         Declared.
16092         (rdg_has_similar_memory_accesses): New.
16093         * tree-vect-analyze.c: Remove unused static decls.
16094         * lambda.h (dependence_level): New.
16095         * common.opt (ftree-loop-distribution): New.
16096         * tree-flow.h (mark_virtual_ops_in_bb,
16097         slpeel_tree_duplicate_loop_to_edge_cfg,
16098         rename_variables_in_loop): Declared.
16099         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
16100         (OBJS-common): Add tree-loop-distribution.o.
16101         (tree-loop-distribution.o): New rule.
16102         * tree-cfg.c (mark_virtual_ops_in_bb): New.
16103         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
16104         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
16105
16106 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
16107
16108         PR target/33963
16109         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
16110         other than structures and unions.
16111
16112 2008-02-28  Richard Guenther  <rguenther@suse.de>
16113
16114         Revert:
16115         2008-02-26  Richard Guenther  <rguenther@suse.de>
16116
16117         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
16118         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
16119         (lookup_decl_from_uid): Declare.
16120         (remove_decl_from_map): Likewise.
16121         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
16122         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
16123         (decl_for_uid_map): New global hashtable mapping DECL_UID
16124         to the decl tree.
16125         (init_ttree): Allocate it.
16126         (insert_decl_to_uid_decl_map): New helper function.
16127         (make_node_stat): Insert new decls into the map.
16128         (copy_node_stat): Likewise.
16129         (lookup_decl_from_uid): New function.
16130         (remove_decl_from_map): Likewise.
16131         (print_decl_for_uid_map_statistics): New helper.
16132         (dump_tree_statistics): Call it.
16133
16134         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
16135         (referenced_var_iterator): Adjust.
16136         (FOR_EACH_REFERENCED_VAR): Adjust.
16137         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
16138         (num_referenced_vars): Adjust.
16139         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
16140         (first_referenced_var): Remove.
16141         (end_referenced_vars_p): Likewise.
16142         (next_referenced_var): Likewise.
16143         (referenced_var_iterator_set): New helper function.
16144         * tree-dfa.c (referenced_var_lookup): Adjust.
16145         (referenced_var_check_and_insert): Likewise.
16146         (remove_referenced_var): Likewise.
16147         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
16148         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
16149         (verify_call_clobbering): Likewise.
16150         (verify_memory_partitions): Likewise.
16151         (init_tree_ssa): Allocate bitmap instead of hashtable for
16152         referenced_vars.
16153         (delete_tree_ssa): Adjust.
16154         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
16155         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
16156         (compute_tag_properties): Likewise.
16157         (set_initial_properties): Likewise.
16158         (find_partition_for): Likewise.
16159         (update_reference_counts): Likewise.
16160         (dump_may_aliases_for): Likewise.
16161         * tree-ssa-operands.c (add_virtual_operand): Likewise.
16162         (add_call_clobber_ops): Likewise.
16163         (add_call_read_ops): Likewise.
16164         (get_asm_expr_operands): Likewise.
16165         * tree-into-ssa.c (dump_decl_set): Likewise.
16166         (update_ssa): Likewise.
16167         * tree-sra.c (scan_function): Likewise.
16168         (decide_instantiations): Likewise.
16169         (scalarize_parms): Likewise.
16170         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
16171         (dsa_named_for): Likewise.
16172         * tree-ssa-structalias.c (update_alias_info): Likewise.
16173         (merge_smts_into): Likewise.
16174
16175 2008-02-27  David Daney  <ddaney@avtrex.com>
16176
16177         PR target/34409
16178         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
16179         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
16180         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
16181         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
16182         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
16183
16184 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
16185
16186         PR target/25477
16187         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
16188         (BUILT_IN_NEXTTOWARD): Remove.
16189         (BUILT_IN_NEXTTOWARDF): Ditto.
16190         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
16191         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
16192
16193 2008-02-27  Tom Tromey  <tromey@redhat.com>
16194
16195         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
16196         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
16197
16198 2008-02-27  Jan Beulich  <jbeulich@novell.com>
16199
16200         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
16201         update the respective field on newdecl.
16202
16203 2008-02-27  Revital Eres  <eres@il.ibm.com>
16204
16205         PR rtl-optimization/34999
16206         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
16207         crossing edges that ends with a call insn.
16208         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
16209         call insn and clear the EDGE_CROSSING flag of the crossing edge
16210         when fixing fallthru edges.
16211
16212 2008-02-27  Richard Guenther  <rguenther@suse.de>
16213
16214         PR middle-end/35390
16215         * fold-const.c (fold_unary): Return the correct argument,
16216         converted to the result type.
16217
16218 2008-02-27  Richard Guenther  <rguenther@suse.de>
16219
16220         PR middle-end/34971
16221         * expr.c (expand_expr_real_1): Assert on rotates that operate
16222         on partial modes.
16223         * fold-const.c (fold_binary): Use the types precision, not the
16224         bitsize of the mode if folding rotate expressions.  Build rotates
16225         only for full modes.
16226
16227 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
16228
16229         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
16230         and CPP_PRAGMA_EOL.
16231         * c-pragma.c (pragma_ns_name): New typedef.
16232         (registered_pp_pragmas): New variable.
16233         (c_pp_lookup_pragma): New function.
16234         (c_register_pragma_1): If flag_preprocess_only, do nothing
16235         for non-expanded pragmas, for expanded ones push pragma's
16236         namespace and name into registered_pp_pragmas vector.
16237         (c_invoke_pragma_handler): Register OpenMP pragmas even when
16238         flag_preprocess_only, don't register GCC pch_preprocess
16239         pragma if flag_preprocess_only.
16240         * c-opts.c (c_common_init): Call init_pragma even if
16241         flag_preprocess_only.
16242         * c-pragma.c (c_pp_lookup_pragma): New prototype.
16243         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
16244         cpp_register_pragma if flag_preprocess_only.
16245
16246 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16247
16248         PR c/28800
16249         * c-parser.c (c_parser_translation_unit): Warn for empty
16250         translation unit, not empty source file.
16251
16252 2008-02-26  Paul Brook  <paul@codesourcery.com>
16253
16254         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
16255         operand for Thumb-2.
16256         * config/arm/arm.h (reg_class): Add CORE_REGS.
16257         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
16258         (BASE_REG_CLASS): Use CORE_REGS.
16259         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
16260         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
16261         (REGNO_OK_FOR_INDEX_P): Exclude SP.
16262         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
16263         ARM_REGNO_OK_FOR_INDEX_P.
16264         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
16265         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
16266         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
16267         (ldm/stm peepholes): Ditto.
16268         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
16269         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
16270         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
16271         * config/arm/constraints.md: Enable "k" constraint on ARM.
16272
16273 2008-02-27  Ben Elliston  <bje@au.ibm.com>
16274
16275         * config/rs6000/rs6000.c: Annotate cache line size field in all
16276         instances of struct processor_costs.
16277
16278 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
16279
16280         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
16281         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
16282         jump_bypass): New counters.
16283         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
16284         * dce.c (gate_ud_dce): Same.
16285         (gate_fast_dce): Same.
16286         * dse.c (gate_dse1): New function.
16287         (gate_dse2): New function.
16288         (gate_dse): Merge results of new gate functions.
16289         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
16290         (gate_handle_jump_bypass): Add dbg_cnt.
16291         (gate_handle_gcse): Add dbg_cnt.
16292         * ifcvt.c (gate_handle_if_conversion): Same.
16293         (gate_handle_if_after_combine): Same.
16294         (gate_handle_if_after_reload): Same.
16295         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
16296
16297 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
16298
16299         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
16300         line sizes.
16301         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
16302
16303 2008-02-26  Jason Merrill  <jason@redhat.com>
16304
16305         PR c++/35315
16306         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
16307         alone if it's the naming decl for the type's main variant.
16308
16309 2008-02-26  Tom Tromey  <tromey@redhat.com>
16310
16311         * system.h (USE_MAPPED_LOCATION): Poison.
16312         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
16313         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
16314         (make_goto_expr_edges): Likewise.
16315         (remove_bb): Likewise.
16316         (execute_warn_function_return): Likewise.
16317         * basic-block.h (struct edge_def) <goto_locus>: Change type to
16318         location_t.
16319         * c-common.c (fname_decl): Remove old location code.
16320         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
16321         location code.
16322         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
16323         variant.
16324         (ASM_INPUT_SOURCE_LOCATION): Likewise.
16325         (gen_rtx_ASM_INPUT): Likewise.
16326         (gen_rtx_ASM_INPUT_loc): Likewise.
16327         (get_rtx_asm_OPERANDS): Remove.
16328         * cfglayout.c (insn_locators_alloc): Remove old location code.
16329         (set_curr_insn_source_location): Likewise.
16330         (curr_insn_locator): Likewise.
16331         * print-tree.c (print_node): Remove old location code.
16332         * tree-mudflap.c (mf_varname_tree): Remove old location code.
16333         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
16334         * cfgexpand.c (expand_gimple_cond_expr): Don't use
16335         location_from_locus.
16336         (construct_exit_block): Remove old location code.
16337         * emit-rtl.c (force_next_line_note): Remove old location code.
16338         * profile.c (branch_prob): Remove old location code.
16339         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
16340         LOC_LINE): Remove old-location variants.
16341         * langhooks.c (lhd_print_error_function): Remove old location
16342         code.
16343         * configure, config.in: Rebuilt.
16344         * configure.ac (--enable-mapped-location): Remove.
16345         * c-decl.c (c_init_decl_processing): Remove old location code.
16346         (finish_function): Likewise.
16347         * recog.c (decode_asm_operands): Remove old location code.
16348         * c-pch.c (c_common_read_pch): Remove old location code.
16349         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
16350         variants.
16351         * gimple-low.c (lower_function_body): Remove old location code.
16352         * toplev.c (unknown_location): Remove.
16353         (push_srcloc): Remove old-location variant.
16354         (process_options): Remove old location code.
16355         (lang_dependent_init): Likewise.
16356         * input.h (UNKNOWN_LOCATION): Move definition.
16357         (location_t): Undeprecate.
16358         (source_locus): Remove.
16359         (location_from_locus): Remove.
16360         (struct location_s): Remove.
16361         Remove all old-location code.
16362         (input_line, input_filename): Remove.
16363         * final.c (final_scan_insn): Remove old location code.
16364         * diagnostic.c (diagnostic_build_prefix): Remove
16365         USE_MAPPED_LOCATION test.
16366         * tree.h (gimple_stmt) <locus>: Now a location_t.
16367         (tree_exp) <locus>: Likewise.
16368         (DECL_IS_BUILTIN): Remove old-location variant.
16369         (annotate_with_file_line, annotate_with_locus): Likewise.
16370         (expr_locus, set_expr_locus): Update.
16371         * tree.c (build1_stat): Remove old location code.
16372         (last_annotated_node): Remove.
16373         (annotate_with_file_line): Remove old-location variant.
16374         (annotate_with_locus): Likewise.
16375         (expr_location): Remove old location code.
16376         (set_expr_location): Likewise.
16377         (expr_has_location): Likewise.
16378         (expr_locus): Likewise.
16379         (set_expr_locus): Likewise.
16380         (expr_filename): Don't use location_from_locus.
16381         (expr_lineno): Likewise.
16382         * rtl-error.c (location_for_asm): Remove old location code.
16383         * c-lex.c (cb_line_change): Remove old location code.
16384         (fe_file_change): Likewise.
16385         (cb_def_pragma): Likewise.
16386         (c_lex_with_flags): Likewise.
16387         * gengtype.c (do_typedef): Don't special-case location types.
16388         (define_location_structures): Remove.
16389         (main): Don't call define_location_structures.
16390         * tree-pretty-print.c (dump_implicit_edges): Remove old location
16391         code.
16392
16393 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16394
16395         PR 26264
16396         * builtins.def (BUILT_IN_STDARG_START): Remove.
16397         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
16398         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
16399         * tree-inline.c (inline_forbidden_p_1): Likewise.
16400
16401 2008-02-26  Richard Guenther  <rguenther@suse.de>
16402
16403         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
16404         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
16405         (lookup_decl_from_uid): Declare.
16406         (remove_decl_from_map): Likewise.
16407         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
16408         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
16409         (decl_for_uid_map): New global hashtable mapping DECL_UID
16410         to the decl tree.
16411         (init_ttree): Allocate it.
16412         (insert_decl_to_uid_decl_map): New helper function.
16413         (make_node_stat): Insert new decls into the map.
16414         (copy_node_stat): Likewise.
16415         (lookup_decl_from_uid): New function.
16416         (remove_decl_from_map): Likewise.
16417         (print_decl_for_uid_map_statistics): New helper.
16418         (dump_tree_statistics): Call it.
16419
16420         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
16421         (referenced_var_iterator): Adjust.
16422         (FOR_EACH_REFERENCED_VAR): Adjust.
16423         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
16424         (num_referenced_vars): Adjust.
16425         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
16426         (first_referenced_var): Remove.
16427         (end_referenced_vars_p): Likewise.
16428         (next_referenced_var): Likewise.
16429         (referenced_var_iterator_set): New helper function.
16430         * tree-dfa.c (referenced_var_lookup): Adjust.
16431         (referenced_var_check_and_insert): Likewise.
16432         (remove_referenced_var): Likewise.
16433         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
16434         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
16435         (verify_call_clobbering): Likewise.
16436         (verify_memory_partitions): Likewise.
16437         (init_tree_ssa): Allocate bitmap instead of hashtable for
16438         referenced_vars.
16439         (delete_tree_ssa): Adjust.
16440         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
16441         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
16442         (compute_tag_properties): Likewise.
16443         (set_initial_properties): Likewise.
16444         (find_partition_for): Likewise.
16445         (update_reference_counts): Likewise.
16446         (dump_may_aliases_for): Likewise.
16447         * tree-ssa-operands.c (add_virtual_operand): Likewise.
16448         (add_call_clobber_ops): Likewise.
16449         (add_call_read_ops): Likewise.
16450         (get_asm_expr_operands): Likewise.
16451         * tree-into-ssa.c (dump_decl_set): Likewise.
16452         (update_ssa): Likewise.
16453         * tree-sra.c (scan_function): Likewise.
16454         (decide_instantiations): Likewise.
16455         (scalarize_parms): Likewise.
16456         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
16457         (dsa_named_for): Likewise.
16458         * tree-ssa-structalias.c (update_alias_info): Likewise.
16459         (merge_smts_into): Likewise.
16460
16461 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16462
16463         PR 34351
16464         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
16465         * c-opts.c (c_common_handle_option): Wall enables
16466         Wvolatile-register-var.
16467         * common.opt: Move Wvolatile-register-var to...
16468         * c.opt: ...here.
16469
16470 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16471
16472         * common.opt (Wlarger-than=): New.
16473         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
16474         -Wlarger-than=.
16475         * opts.c (common_handle_option): Handle -Wlarger-than=.
16476         * optc-gen.awk: Likewise.
16477         * opth-gen.awk: Likewise.
16478         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
16479         * tree-optimize.c (tree_rest_of_compilation): Likewise.
16480
16481 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16482
16483         * c-common.c (match_case_to_enum_1): Add appropriate
16484         OPT_W* parameter to warning.
16485         (c_do_switch_warnings): Likewise.
16486         * c-typeck.c (warning_init): Add one more parameter following
16487         'warning' function.
16488         (push_init_level): Update call to warning_init.
16489         (pop_init_level): Likewise.
16490         (add_pending_init): Likewise.
16491         (output_init_element: Likewise.
16492
16493 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16494
16495         PR 28322
16496         * toplev.c (toplev_main): If there are warnings or error, print
16497         errors for ignored options.
16498         * opts.c (ignored_options): New static variable.
16499         (postpone_unknown_option_error): New.
16500         (print_ignored_options): New.
16501         (handle_option): Postpone errors for unknown -Wno-* options.
16502         * opts.h (print_ignored_options): Declare.
16503
16504 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
16505
16506         * config/mips/mips.md (loadgp_blockage, blockage): Change type
16507         to "ghost".
16508
16509 2008-02-25  Richard Guenther  <rguenther@suse.de>
16510
16511         Revert:
16512         2008-02-25  Richard Guenther  <rguenther@suse.de>
16513
16514         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
16515         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
16516         (lookup_decl_from_uid): Declare.
16517         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
16518         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
16519         (decl_for_uid_map): New global hashtable mapping DECL_UID
16520         to the decl tree.
16521         (init_ttree): Allocate it.
16522         (insert_decl_to_uid_decl_map): New helper function.
16523         (make_node_stat): Insert new decls into the map.
16524         (copy_node_stat): Likewise.
16525         (lookup_decl_from_uid): New function.
16526         (print_decl_for_uid_map_statistics): New helper.
16527         (dump_tree_statistics): Call it.
16528
16529         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
16530         (referenced_var_iterator): Adjust.
16531         (FOR_EACH_REFERENCED_VAR): Adjust.
16532         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
16533         (num_referenced_vars): Adjust.
16534         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
16535         (first_referenced_var): Remove.
16536         (end_referenced_vars_p): Likewise.
16537         (next_referenced_var): Likewise.
16538         (referenced_var_iterator_set): New helper function.
16539         * tree-dfa.c (referenced_var_lookup): Adjust.
16540         (referenced_var_check_and_insert): Likewise.
16541         (remove_referenced_var): Likewise.
16542         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
16543         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
16544         (verify_call_clobbering): Likewise.
16545         (verify_memory_partitions): Likewise.
16546         (init_tree_ssa): Allocate bitmap instead of hashtable for
16547         referenced_vars.
16548         (delete_tree_ssa): Adjust.
16549         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
16550         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
16551         (compute_tag_properties): Likewise.
16552         (set_initial_properties): Likewise.
16553         (find_partition_for): Likewise.
16554         (update_reference_counts): Likewise.
16555         (dump_may_aliases_for): Likewise.
16556         * tree-ssa-operands.c (add_virtual_operand): Likewise.
16557         (add_call_clobber_ops): Likewise.
16558         (add_call_read_ops): Likewise.
16559         (get_asm_expr_operands): Likewise.
16560         * tree-into-ssa.c (dump_decl_set): Likewise.
16561         (update_ssa): Likewise.
16562         * tree-sra.c (scan_function): Likewise.
16563         (decide_instantiations): Likewise.
16564         (scalarize_parms): Likewise.
16565         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
16566         (dsa_named_for): Likewise.
16567         * tree-ssa-structalias.c (update_alias_info): Likewise.
16568         (merge_smts_into): Likewise.
16569
16570 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
16571
16572         PR fortran/29549
16573         * doc/invoke.texi (-fcx-limited-range): Document new option.
16574         * toplev.c (process_options): Handle -fcx-fortran-rules.
16575         * common.opt: Add documentation for -fcx-fortran-rules.
16576
16577 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
16578
16579         PR c/35162
16580         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
16581         actual behaviour and C99.
16582
16583 2008-02-26  Ben Elliston  <bje@au.ibm.com>
16584
16585         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
16586         (ASM_CPU_POWER6_SPEC): Likewise.
16587         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
16588         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
16589         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
16590
16591 2008-02-25  Richard Guenther  <rguenther@suse.de>
16592
16593         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
16594         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
16595         (lookup_decl_from_uid): Declare.
16596         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
16597         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
16598         (decl_for_uid_map): New global hashtable mapping DECL_UID
16599         to the decl tree.
16600         (init_ttree): Allocate it.
16601         (insert_decl_to_uid_decl_map): New helper function.
16602         (make_node_stat): Insert new decls into the map.
16603         (copy_node_stat): Likewise.
16604         (lookup_decl_from_uid): New function.
16605         (print_decl_for_uid_map_statistics): New helper.
16606         (dump_tree_statistics): Call it.
16607
16608         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
16609         (referenced_var_iterator): Adjust.
16610         (FOR_EACH_REFERENCED_VAR): Adjust.
16611         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
16612         (num_referenced_vars): Adjust.
16613         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
16614         (first_referenced_var): Remove.
16615         (end_referenced_vars_p): Likewise.
16616         (next_referenced_var): Likewise.
16617         (referenced_var_iterator_set): New helper function.
16618         * tree-dfa.c (referenced_var_lookup): Adjust.
16619         (referenced_var_check_and_insert): Likewise.
16620         (remove_referenced_var): Likewise.
16621         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
16622         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
16623         (verify_call_clobbering): Likewise.
16624         (verify_memory_partitions): Likewise.
16625         (init_tree_ssa): Allocate bitmap instead of hashtable for
16626         referenced_vars.
16627         (delete_tree_ssa): Adjust.
16628         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
16629         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
16630         (compute_tag_properties): Likewise.
16631         (set_initial_properties): Likewise.
16632         (find_partition_for): Likewise.
16633         (update_reference_counts): Likewise.
16634         (dump_may_aliases_for): Likewise.
16635         * tree-ssa-operands.c (add_virtual_operand): Likewise.
16636         (add_call_clobber_ops): Likewise.
16637         (add_call_read_ops): Likewise.
16638         (get_asm_expr_operands): Likewise.
16639         * tree-into-ssa.c (dump_decl_set): Likewise.
16640         (update_ssa): Likewise.
16641         * tree-sra.c (scan_function): Likewise.
16642         (decide_instantiations): Likewise.
16643         (scalarize_parms): Likewise.
16644         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
16645         (dsa_named_for): Likewise.
16646         * tree-ssa-structalias.c (update_alias_info): Likewise.
16647         (merge_smts_into): Likewise.
16648
16649 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
16650
16651         PR target/35258
16652         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
16653         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
16654         * alias.h (nonoverlapping_memrefs_p): Likewise.
16655
16656 2008-02-25  Jan Beulich  <jbeulich@novell.com>
16657
16658         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
16659         * config/i386/netware-libgcc.exp: Add __bswap?i2,
16660         __emultls_get_address, __emultls_register_common,
16661         __floatundi?f, and _Unwind_GetIPInfo.
16662         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
16663         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
16664         (gen_regparm_prefix): Likewise.
16665         (i386_nlm_encode_section_info): Sync with
16666         config/i386/winnt.c:i386_pe_encode_section_info().
16667         (i386_nlm_maybe_mangle_decl_assembler_name): New.
16668         i386_nlm_mangle_decl_assembler_name): New.
16669         (netware_override_options): New.
16670         * config/i386/netware.h (netware_override_options): Declare.
16671         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
16672         (i386_nlm_mangle_decl_assembler_name): Declare.
16673         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
16674
16675 2008-02-25  Ben Elliston  <bje@au.ibm.com>
16676
16677         PR other/32948
16678         * c-decl.c (grokdeclarator): Remove unused local variables
16679         `typedef_type' and `type_as_written'.
16680         * bb-reorder.c
16681         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
16682         unused local variable `has_hot_blocks'.
16683         (fix_crossing_conditional_branches): Remove unused local variable
16684         `prev_bb'.
16685
16686 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
16687
16688         PR middle-end/19984
16689         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
16690         using DEF_C99_BUILTIN.
16691         (BUILT_IN_NANF): Ditto.
16692         (BUILT_IN_NANL): Ditto.
16693
16694 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
16695             Revital Eres  <eres@il.ibm.com>
16696
16697         * modulo-sched.c (calculate_must_precede_follow): Address TODO
16698         regarding the order of two dependent insns in the same row.
16699
16700 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
16701
16702         * stor-layout.c (layout_decl): Do not bump the alignment of a
16703         bit-field to more than byte alignment if it is packed.
16704
16705 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
16706
16707         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
16708         e300c2 and e300c3.
16709
16710 2008-02-24  Diego Novillo  <dnovillo@google.com>
16711
16712         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
16713
16714         PR 33738
16715         * tree-vrp.c (vrp_evaluate_conditional): With
16716         -Wtype-limits, emit a warning when comparing against a
16717         constant outside the natural range of OP0's type.
16718         * c.opt (Wtype-limits): Move ...
16719         * common.opt (Wtype-limits): ... here.
16720
16721 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
16722
16723         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
16724         * config/rs6000/e300c2c3.md: New file.
16725         * config/rs6000/rs6000.c (processor_costs): Add new costs for
16726         e300c2 and e300c3.
16727         (rs6000_override_options): Add e300c2 and e300c3 cases to
16728         processor_target_table. Do not allow usage of Altivec or Spe
16729         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
16730         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
16731         * config/rs6000/rs6000.h (processor_type): Add
16732         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
16733         (ASM_CPU_SPEC): Add e300c2 and e300c3.
16734         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
16735         and ppce300c3. Include e300c2c3.md.
16736
16737 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
16738
16739         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
16740         instead of TARGET_STRICT_ALIGN.
16741
16742 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
16743
16744         * explow.c (memory_address): Assert that the generated address is
16745         valid.
16746
16747 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
16748
16749         PR target/25477
16750         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
16751         * config/darwin-ppc-ldouble-patch.def: New file.
16752         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
16753         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
16754         SUBTARGET_INIT_BUILTINS if defined.
16755         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
16756         New functions.
16757
16758 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16759
16760         PR rtl-opt/33512
16761         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
16762         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
16763
16764 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16765
16766         PR pch/35027
16767         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
16768         file" warning condtional on -Winvalid-PCH.
16769
16770 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
16771
16772         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
16773
16774 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
16775
16776         PR target/22076
16777         PR target/34256
16778         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
16779         prevent reload from using MMX registers.
16780         (*mov<mode>_internal): Ditto.
16781         (*movv2sf_internal_rex64): Ditto.
16782         (*movv2sf_internal): Ditto.
16783
16784 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16785
16786         PR documentation/31569
16787         * doc/install.texi2html: Use makeinfo --no-number-sections.
16788
16789 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
16790
16791         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
16792         ensure that we can address an entire entity > 8 bytes.  Don't
16793         generate reg+reg addressing for such data.
16794
16795 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
16796
16797         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
16798         strings when optimizing for size, unless the target cares about
16799         alignment.
16800
16801 2008-02-22  Tom Tromey  <tromey@redhat.com>
16802
16803         * regclass.c (current_pass): Remove declaration.
16804
16805 2008-02-22  Anatoly Sokolov <aesok@post.ru>
16806
16807         * config/avr/libgcc.S (__RAMPZ__): Define.
16808         (__do_copy_data): Add for devices with 128KB code memory.
16809
16810 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
16811
16812         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
16813         Use spe_abi.
16814         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
16815
16816 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
16817
16818         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
16819         GENNONACR_REGS.
16820
16821 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16822
16823         PR c/19999
16824         * c-typeck.c (build_binary_op): Warn about floating point
16825         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
16826
16827 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
16828
16829         PR target/34526
16830         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
16831         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
16832         add vrsave.
16833         (rs6000_override_options): Set altivec_abi as default, not override,
16834         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
16835         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
16836         is used; use new member spe_abi.
16837         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
16838         spe_abi and altivec_abi.
16839
16840 2008-02-22  Tomas Bily  <tbily@suse.cz>
16841
16842         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
16843
16844 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16845
16846         PR bootstrap/35273
16847         * config.build (build_file_translate): Set to `CMD //c' only if
16848         it works.
16849         * Makefile.in (build_file_translate): Improve comment.
16850
16851 2008-02-21  Jan Hubicka  <jh@suse.cz>
16852
16853         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
16854         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
16855         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
16856
16857 2008-02-21  Michael Matz  <matz@suse.de>
16858
16859         PR target/35264
16860         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
16861
16862 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
16863
16864         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
16865         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
16866         as insn constraint.
16867         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
16868         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
16869         SSE_VEC_FLOAT_MODE_P as insn constraint.
16870         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
16871         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
16872         sse4a_movntdf using MODEF mode iterator.
16873         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
16874         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
16875         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
16876         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
16877         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
16878         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
16879         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
16880
16881 2008-02-21  Richard Guenther  <rguenther@suse.de>
16882
16883         * tree.def (PAREN_EXPR): New tree code.
16884         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
16885         and PAREN_EXPR.
16886         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
16887         * expr.c (expand_expr_real_1): Likewise.
16888         * tree-inline.c (estimate_num_insns_1): Likewise.
16889         * tree-complex.c (expand_complex_move): Likewise.
16890         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
16891         as plain x.
16892
16893 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16894
16895         PR target/35225
16896         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
16897
16898 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16899
16900         PR target/35190
16901         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
16902
16903         * config/sh/sh.c (find_barrier): Don't go past
16904         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
16905
16906 2008-02-20  DJ Delorie  <dj@redhat.com>
16907
16908         * config/h8300/h8300.md (insv): Force source operand to be a register.
16909
16910         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
16911         as a jump, not as a plain insn.
16912
16913 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
16914
16915         * doc/invoke.texi (Warning Options): Add new option
16916         -Wframe-larger-than=.
16917         (-Wframe-larger-than): Document.
16918
16919         * flags.h (warn_frame_larger_than, frame_larger_than_size):
16920         Add declarations for new option variables.
16921
16922         * final.c (final_start_function): Check the frame size
16923         before emission and issue a Wframe-larger-than warning.
16924
16925         * opts.c (warn_frame_larger_than, frame_larger_than_size):
16926         Add definitions for new option variables.
16927         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
16928
16929         * common.opt (Wframe-larger-than=): New option.
16930
16931 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
16932
16933         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
16934         (<sse>_div<mode>3): Ditto.
16935         (<sse>_vmdiv<mode>3): Ditto.
16936         (<sse>_vmsqrt<mode>2): Ditto.
16937         (*smax<mode>3): Ditto.
16938         (sse5_frcz<mode>2): Ditto.
16939         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
16940         as insn constraint.
16941
16942 2008-02-20  Richard Guenther  <rguenther@suse.de>
16943
16944         PR middle-end/35265
16945         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
16946         be happy with INTEGRAL_TYPE_P.
16947
16948 2008-02-20  Richard Guenther  <rguenther@suse.de>
16949
16950         * fold-const.c (split_tree): Associate floatig-point expressions
16951         if flag_associative_math is set.
16952
16953 2008-02-20  Richard Guenther  <rguenther@suse.de>
16954
16955         * tree.h (fold_real_zero_addition_p): Declare.
16956         * fold-const.c (fold_real_zero_addition_p): Export.
16957         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
16958         floating-point operations with zero and one.
16959
16960 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
16961
16962         * doc/install.texi: Correct references to CFLAGS, replacing them
16963         with BOOT_CFLAGS.  Document flags used during bootstrap for
16964         target libraries.
16965
16966 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
16967
16968         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
16969         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
16970         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
16971         insn constraint.
16972         (smin<mode>3): Ditto from similar patterns.
16973         (smax<mode>3): Ditto.
16974         (*ieee_smin<mode>3): Ditto.
16975         (*ieee_smax<mode>3): Ditto.
16976         * config/i386/sse.md (sse): New mode attribute.
16977         (mov<mode>): Macroize expander from movv4sf and movv2df using
16978         SSEMODEF2P mode iterator.
16979         (<sse>_movnt<mode>): Ditto from similar patterns. Use
16980         SSE_VEC_FLOAT_MODE_P as insn constraint.
16981         (storent<mode>): Ditto.
16982         (storent<mode>): Macroize expander from storentsf and storentdf using
16983         MODEF mode iterator.
16984         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
16985         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
16986         (abs<mode>2): Ditto from similar patterns.
16987         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
16988         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
16989         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
16990         (<sse>_vmsqrt<mode>2): Ditto.
16991         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
16992         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
16993         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
16994         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
16995         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
16996         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
16997         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
16998         insn constraint.
16999         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
17000         iterator and SSE_FLOAT_MODE_P as insn constraint.
17001         (<sse>_ucomi): Ditto from similar patterns.
17002         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
17003         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
17004         SSE_VEC_FLOAT_MODE_P as insn constraint.
17005         (vcond<mode>): Ditto from similar patterns.
17006         (and<mode>3, *and<mode>3): Ditto.
17007         (<sse>_nand<mode>3): Ditto.
17008         (ior<mode>3, *ior<mode>3): Ditto.
17009         (xor<mode>3, *xor<mode>3): Ditto.
17010         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
17011         iterator and SSE_FLOAT_MODE_P as insn constraint.
17012         (*nand<mode>3): Ditto from similar patterns.
17013         (*ior<mode>3): Ditto.
17014         (*xor<mode>3): Ditto.
17015
17016 2008-02-20  Ira Rosen  <irar@il.ibm.com>
17017
17018         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
17019         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
17020         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
17021
17022 2008-02-19  Jan Hubicka  <jh@suse.cz>
17023
17024         * predict.c (tree_bb_level_predictions): Remove variable next
17025         mistakely introduced by previous commit.
17026
17027 2008-02-19  Jan Hubicka  <jh@suse.cz>
17028
17029         * predict.c (predict_paths_leading_to): Rewrite.
17030         (predict_paths_for_bb): New.
17031         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
17032
17033 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17034
17035         PR bootstrap/35218
17036         * Makefile.in (build_file_translate): New.
17037         (gcc-vers.texi): Use it for translating $(abs_srcdir).
17038         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
17039         * configure.ac (build_file_translate): Substitute it.
17040         * configure: Regenerate.
17041
17042 2008-02-19  Jan Hubicka  <jh@suse.cz>
17043
17044         PR rtl-optimization/34408
17045         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
17046         invalid sharing.
17047
17048 2008-02-19  Jan Hubicka  <jh@suse.cz>
17049
17050         PR middle-end/28779
17051         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
17052         call_expr.
17053
17054 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
17055
17056         PR Ada/35186
17057         * config/i386/i386-modes.def: Revert the last DI alignment
17058         change until Ada people can look into it.
17059
17060 2008-02-19  Nick Clifton  <nickc@redhat.com>
17061
17062         * opts.c (print_specific_help): Fix typo in --help text.
17063
17064 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
17065
17066         PR target/35239
17067         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
17068         32-bit inline asm without asm alternatives for host GCC < 3.0.
17069
17070 2008-02-19  Richard Guenther  <rguenther@suse.de>
17071
17072         PR tree-optimization/34989
17073         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
17074         Allow propagation to INDIRECT_REF if we can simplify only.
17075
17076 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17077
17078         * c-common.c (warn_for_collisions_1): Use appropriate option when
17079         warning.
17080
17081 2008-02-19  Nick Clifton  <nickc@redhat.com>
17082
17083         PR other/31349
17084         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
17085         (handle_options): Fix indentation.
17086         (print_filtered_help): If no language-specific options were
17087         displayed tell the user how to list all the options supported by
17088         the language's front-end.
17089         (print_specific_help): Fix indentation and remove duplicate line.
17090         (common_handle_option): Handle the -v option.
17091         For --help enable the display of undocumented options if the -v
17092         switch has been included on the command line.
17093         For --help= check for overlaps in the arguments between the option
17094         classes and the language names and issue a warning when they
17095         cannot be disambiguated.
17096         * c.opt (v): Pass on to the common option handler.
17097
17098 2008-02-19  Revital Eres  <eres@il.ibm.com>
17099
17100         * modulo-sched.c (sms_schedule): Change dump message when
17101         create_ddg function fails.
17102         (try_scheduling_node_in_cycle): Rename row to cycle.
17103         (print_partial_schedule): Rename CYCLE to ROW.
17104
17105 2008-02-19  Christian Bruel  <christian.bruel@st.com>
17106             Zdenek Dvorak  <ook@ucw.cz>
17107
17108         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
17109
17110 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
17111
17112         PR target/33555
17113         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
17114         (*x86_movdicc_0_m1_se): Ditto.
17115
17116 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
17117
17118         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
17119         (CMPtype): Define as __gcc_CMPtype.
17120         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
17121         (CMPtype): Define as __gcc_CMPtype.
17122
17123 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
17124
17125         Support valgrind 3.3 for --enable-checking=valgrind.
17126         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
17127         here.
17128         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
17129         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
17130         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
17131         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
17132         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
17133         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
17134         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
17135         respectively.
17136         * ggc-zone.c: Similar.
17137         * ggc-page.c: Similar.
17138
17139 2008-02-19  Paul Brook  <paul@codesourcery.com>
17140
17141         PR target/35071
17142         * config/arm/ieee754-df.S: Fix do_it typo.
17143         * config/arm/ieee754-sf.S: Fix do_it typo.
17144
17145 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
17146
17147         PR target/35189
17148         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
17149         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
17150         (OPTION_MASK_ISA_SSE_SET): Likewise.
17151         (OPTION_MASK_ISA_SSE2_SET): Likewise.
17152         (OPTION_MASK_ISA_SSE3_SET): Likewise.
17153         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
17154         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
17155         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
17156         (OPTION_MASK_ISA_SSE4_SET): Likewise.
17157         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
17158         (OPTION_MASK_ISA_SSE5_SET): Likewise.
17159         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
17160         (OPTION_MASK_ISA_MMX_UNSET): Updated.
17161         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
17162         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
17163         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
17164         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
17165         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
17166         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
17167         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
17168         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
17169         (OPTION_MASK_ISA_SSE4): Removed.
17170         (ix86_handle_option): Turn on bits in ix86_isa_flags and
17171         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
17172         (override_options): Don't turn on implied SSE/MMX bits in
17173         ix86_isa_flags.
17174
17175 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
17176
17177         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
17178         32bit host.
17179
17180 2008-02-18  Joey Ye  <joey.ye@intel.com>
17181
17182         PR middle-end/34921
17183         * tree-nested.c (insert_field_into_struct): Set type alignment
17184         to field alignment if the former is less than the latter.
17185
17186 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
17187
17188         * BASE-VER: Set to 4.4.0.
17189
17190 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17191
17192         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
17193         * doc/cfg.texi: Likewise.
17194         * doc/extend.texi: Likewise.
17195         * doc/gty.texi: Likewise.
17196         * doc/invoke.texi: Likewise.
17197         * doc/loop.texi: Likewise.
17198         * doc/md.texi: Likewise.
17199         * doc/passes.texi: Likewise.
17200         * doc/rtl.texi: Likewise.
17201         * doc/sourcebuild.texi: Likewise.
17202         * doc/tm.texi: Likewise.
17203         * doc/tree-ssa.texi: Likewise.
17204
17205 2008-02-17  Richard Guenther  <rguenther@suse.de>
17206
17207         PR middle-end/35227
17208         * tree-complex.c (init_parameter_lattice_values): Handle parameters
17209         without default definition.
17210
17211 2008-02-17  Richard Guenther  <rguenther@suse.de>
17212
17213         PR tree-optimization/35231
17214         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
17215         if A | B != 1.
17216
17217 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
17218
17219         Revert:
17220         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
17221         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
17222         libgcc_cmp_return mode.
17223
17224 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17225
17226         PR c/28368
17227         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
17228
17229 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
17230
17231         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
17232         multilibs.
17233
17234 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17235
17236         * doc/c-tree.texi: Use `@.' where appropriate.
17237         * doc/extend.texi: Likewise.
17238         * doc/install.texi: Likewise.
17239         * doc/invoke.texi: Likewise.
17240         * doc/loop.texi: Likewise.
17241         * doc/makefile.texi: Likewise.
17242         * doc/md.texi: Likewise.
17243         * doc/passes.texi: Likewise.
17244         * doc/standards.texi: Likewise.
17245         * doc/tm.texi: Likewise.
17246
17247 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
17248
17249         PR middle-end/35196
17250         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
17251         in entry_bb.
17252         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
17253         rather than in entry_bb.
17254
17255 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
17256
17257         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
17258         libgcc_cmp_return mode.
17259
17260 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
17261
17262         PR middle-end/35130
17263         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
17264         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
17265
17266 2008-02-15  Richard Guenther  <rguenther@suse.de>
17267             Zdenek Dvorak  <ook@ucw.cz>
17268
17269         PR tree-optimization/35164
17270         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
17271         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
17272         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
17273         Only propagate addresses which do not have abnormal SSA_NAMEs
17274         in their operands.
17275
17276 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
17277
17278         PR target/35088
17279         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
17280
17281 2008-02-15  Jan Hubicka  <jh@suse.cz>
17282
17283         PR middle-end/35149
17284         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
17285
17286 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
17287
17288         PR middle-end/34621
17289         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
17290         when calculating alignment_pad.
17291
17292 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
17293
17294         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
17295         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
17296         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
17297         and STACK_BOUNDARY define.
17298
17299 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
17300
17301         PR preprocessor/35061
17302         * c-pragma.c (handle_pragma_pop_macro): Check that
17303         pushed_macro_table has been allocated.
17304
17305 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
17306
17307         PR middle-end/35136
17308         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
17309         (force_gimple_operand): Likewise.
17310         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
17311         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
17312         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
17313         (find_interesting_uses_address): Check addressability and alignment
17314         of the base expression only after substituting bases of IVs into it.
17315
17316 2008-02-14  Michael Matz  <matz@suse.de>
17317
17318         PR target/34930
17319         * function.c (instantiate_virtual_regs_in_insn): Reload address
17320         before falling back to reloading the whole operand.
17321
17322 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
17323
17324         * config/s390/s390.c (s390_mainpool_start): Emit the pool
17325         before the first section switch note.
17326
17327 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17328
17329         * doc/bugreport.texi: Update copyright years.
17330         * doc/c-tree.texi: Likewise.
17331         * doc/cfg.texi: Likewise.
17332         * doc/cpp.texi: Likewise.
17333         * doc/cppinternals.texi: Likewise.
17334         * doc/fragments.texi: Likewise.
17335         * doc/frontends.texi: Likewise.
17336         * doc/gcc.texi: Likewise.
17337         * doc/gty.texi: Likewise.
17338         * doc/hostconfig.texi: Likewise.
17339         * doc/implement-c.texi: Likewise.
17340         * doc/libgcc.texi: Likewise.
17341         * doc/loop.texi: Likewise.
17342         * doc/makefile.texi: Likewise.
17343         * doc/options.texi: Likewise.
17344         * doc/passes.texi: Likewise.
17345         * doc/rtl.texi: Likewise.
17346         * doc/sourcebuild.texi: Likewise.
17347         * doc/standards.texi: Likewise.
17348         * doc/tree-ssa.texi: Likewise.
17349         * doc/trouble.texi: Likewise.
17350
17351         * doc/extend.texi: Use @: or add comma where appropriate.
17352         * doc/invoke.texi: Likewise.
17353         * doc/tm.texi: Likewise.
17354
17355 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
17356
17357         PR target/34393
17358         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
17359         to a reg.
17360
17361 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
17362
17363         * doc/md.texi (clz, ctz): Add reference.
17364         * doc/rtl.texi (clz, ctz): Likewise.
17365
17366 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17367
17368         PR other/35148
17369         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
17370         srcdir.
17371
17372 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
17373
17374         * config/s390/s390.c (struct constant_pool): New field
17375         emit_pool_after added.
17376         (s390_mainpool_start): Set the emit_pool_after flag according
17377         to the section switch notes.
17378         (s390_mainpool_finish): Consider emit_pool_after when emitting
17379         the literal pool at the end of the function.
17380         (s390_chunkify_start): Force literal pool splits at section
17381         switch notes.
17382
17383 2008-02-13  Michael Matz  <matz@suse.de>
17384
17385         PR debug/35065
17386         * var-tracking.c (clobber_variable_part): Correctly traverse the
17387         list.
17388
17389 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17390
17391         PR 29673
17392         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
17393         Add -fdump-ipa-inline.
17394         * tree-dump.c (dump_files): Remove tree-inlined dump.
17395         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
17396
17397 2008-02-12  Richard Guenther  <rguenther@suse.de>
17398
17399         PR tree-optimization/35171
17400         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
17401         default defs.
17402
17403 2008-02-12  Richard Guenther  <rguenther@suse.de>
17404
17405         PR middle-end/35163
17406         * fold-const.c (fold_widened_comparison): Use get_unwidened in
17407         value-preserving mode.  Disallow final truncation.
17408
17409 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
17410
17411         PR middle-end/35136
17412         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
17413         code from here to...
17414         (force_gimple_operand): ...here.
17415
17416 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
17417
17418         PR c++/35144
17419         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
17420         non-compatible pointers.
17421         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
17422         different FIELD_DECLs, try harder by comparing field offsets, sizes
17423         and types.
17424
17425         PR inline-asm/35160
17426         * function.c (match_asm_constraints_1): Don't replace the same input
17427         multiple times.
17428
17429 2008-02-12  Anatoly Sokolov <aesok@post.ru>
17430
17431         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
17432         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
17433         (expand_epilogue): Restore RAMPZ register.
17434         * config/avr/avr.md (RAMPZ_ADDR): New constant.
17435
17436 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
17437
17438         * config/i386/cygwin.asm: (__alloca): Correct calling
17439         convention and alignment.
17440         (__chkstk): Force 8 byte stack alignment.
17441
17442 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
17443             Richard Guenther  <rguenther@suse.de>
17444
17445         PR tree-optimization/33992
17446         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
17447         the zero we compare against.
17448
17449 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
17450
17451         PR libfortran/35063
17452         * gthr-win32.h (__gthread_mutex_destroy_function): New function
17453         to CloseHandle after unlocking to prevent accumulation of handle
17454         count.
17455
17456 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17457
17458         PR middle_end/34150
17459         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
17460         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
17461         and update LABEL_NUSES during and after reload.
17462
17463 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
17464
17465         PR middle-end/34627
17466         * combine.c (simplify_if_then_else): Make sure the comparison is
17467         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
17468
17469 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
17470
17471         PR bootstrap/35051
17472         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
17473         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
17474         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
17475         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
17476         * tree.h (get_type_static_bounds): Likewise.
17477
17478 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17479
17480         * doc/invoke.texi (Option Summary, C++ Dialect Options)
17481         (Objective-C and Objective-C++ Dialect Options, Warning Options):
17482         Make -Wfoo language annotations match what the compiler outputs.
17483
17484 2008-02-08  Sa Liu  <saliu@de.ibm.com>
17485
17486         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
17487         intrinsics spu_convts, spu_convtu, spu_convtf.
17488
17489 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
17490
17491         * doc/extend.texi (Function Attributes) <noinline>: Mention
17492         asm ("") as method to keep calls.
17493
17494 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17495
17496         PR other/32754
17497         * doc/options.texi (Options): Replace references to opts.sh with
17498         optc-gen.awk.
17499         * opts-common.c: Likewise.
17500         * optc-gen.awk: Likewise.
17501
17502 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
17503
17504         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
17505
17506 2008-02-07  Richard Henderson  <rth@redhat.com>
17507
17508         PR rtl-opt/33410
17509         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
17510         EXPR_LIST for the REG_EQUAL instead of a comparison with a
17511         funny mode.
17512
17513 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
17514
17515         PR tree-optimization/35085
17516         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
17517         for operand entry oe2 in addition to operand entry oe3 in order to
17518         expose more opportunities for vectorizer sum reduction.
17519
17520 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17521
17522         PR other/35107
17523         * Makefile.in (LIBS): Remove $(GMPLIBS).
17524         (cc1-dummy, cc1): Add $(GMPLIBS).
17525
17526 2008-02-06  Jan Hubicka  <jh@suse.cz>
17527
17528         PR target/23322
17529         * i386.md (moddf_integer): Do not produce partial memory stalls for
17530         targets where it hurts.
17531
17532 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
17533
17534         PR target/35083
17535         * optabs.c (expand_float): Do not check for decimal modes when
17536         expanding unsigned integer through signed conversion.
17537
17538 2008-02-06  Nick Clifton  <nickc@redhat.com>
17539
17540         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
17541         inside the clobber with a match_operand and duplicated operand
17542         number in the constraint.
17543         (ineqbranchsi): Delete redundant comment.
17544
17545 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
17546
17547         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
17548         builtin_define ("__USE_INIT_FINI__").
17549         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
17550         -msx multilibs.
17551         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
17552
17553 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17554
17555         PR documentation/30330
17556         * doc/invoke.texi (C++ Dialect Options)
17557         (Objective-C and Objective-C++ Dialect Options, Warning Options):
17558         For each warning option -Wfoo that allows -Wno-foo, ensure both
17559         -Wfoo and -Wno-foo are listed in the option index.  Fix index
17560         entry of -Wswitch-default, index -Wnormalized= including the
17561         `=', and -Wlarger-than-@var{len} including @var{len}.
17562
17563 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
17564
17565         * config/i386/i386.md (floatunssisf2): Use
17566         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
17567         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
17568         Macroize expander using MODEF mode iterator.
17569
17570 2008-02-05  Diego Novillo  <dnovillo@google.com>
17571
17572         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
17573
17574         PR 33738
17575         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
17576
17577 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17578
17579         PR other/35070
17580         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
17581
17582 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
17583
17584         PR target/35084
17585         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
17586         to indicate if a message should be generated.
17587         (init_cumulative_args): Updated.
17588         (function_value_32): Likewise.
17589
17590 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
17591
17592         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
17593
17594 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
17595
17596         PR target/35083
17597         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
17598         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
17599
17600 2008-02-04  Diego Novillo  <dnovillo@google.com>
17601
17602         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
17603
17604         PR 33738
17605         * tree-vrp.c (vrp_evaluate_conditional): With
17606         -Wtype-limits, emit a warning when comparing against a
17607         constant outside the natural range of OP0's type.
17608
17609 2008-02-04  Richard Guenther  <rguenther@suse.de>
17610
17611         PR middle-end/33631
17612         * expr.c (count_type_elements): Give for unions instead of
17613         guessing.
17614
17615 2008-02-04  Richard Guenther  <rguenther@suse.de>
17616
17617         PR middle-end/35043
17618         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
17619         to TYPE_DOMAINs base type instead of using bitsizetype here.
17620
17621 2008-02-03  Jason Merrill  <jason@redhat.com>
17622
17623         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
17624
17625 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17626
17627         PR other/29972
17628         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
17629         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
17630         (RS/6000 and PowerPC Options): Fix typos and markup.
17631         * doc/passes.texi (Tree-SSA passes): Likewise.
17632
17633 2008-02-02  Michael Matz  <matz@suse.de>
17634
17635         PR target/35045
17636         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
17637         from record_last_reg_set_info.
17638         (record_last_reg_set_info): Take an RTX argument, iterate over all
17639         constituent hardregs.
17640         (record_last_set_info, record_opr_changes): Change calls to
17641         new signature or to record_last_reg_set_info_regno.
17642
17643 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
17644
17645         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
17646
17647 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
17648
17649         PR rtl-optimization/34773
17650         * reg-notes.def (EQUAL): Mention significance of combination of
17651         REG_EQUAL and REG_RETVAL.
17652         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
17653         insn that has a REG_RETVAL.
17654
17655 2008-02-01  Roger Sayle  <roger@eyesopen.com>
17656
17657         PR bootstrap/33781
17658         * configure.ac (--enable-fixed-point): Disable unless explicitly
17659         requested on IRIX.
17660         * configure: Regenerate.
17661
17662 2008-02-01  Richard Guenther  <rguenther@suse.de>
17663
17664         PR other/35042
17665         * invoke.texi (-finline-limit): Remove no longer true parts
17666         of the documentation.  Note that there is no default value.
17667
17668 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
17669             Mark Mitchell  <mark@codesourcery.com>
17670             Ben Elliston  <bje@au.ibm.com>
17671
17672         PR c/29326
17673         * doc/extend.texi (Other Builtins): Document.
17674
17675 2008-01-31  Tom Browder <tom.browder@gmail.com>
17676
17677         * doc/c-tree.texi (Types): Fix grammar.
17678         (Expression trees): Ditto.
17679         * doc/passes.texi (Tree-SSA passes): Ditto.
17680
17681         * doc/configterms.texi (Configure Terms): Fix typo.
17682         * doc/cpp.texi (Common Predefined Macros): Ditto.
17683         * doc/md.texi (Machine Constraints): Ditto.
17684
17685         * doc/makefile.texi (Makefile): Add comma.
17686
17687 2008-01-31  Tom Browder  <tom.browder@gmail.com>
17688             Gerald Pfeifer  <gerald@pfeifer.com>
17689
17690         * doc/sourcebuild.texi (Front End): Remove references to CVS
17691         and CVSROOT/modules.
17692         (Texinfo Manuals): Replace reference to CVS by one to SVN.
17693         (Back End): Remove reference to CVS.
17694
17695 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
17696
17697         PR target/34900
17698         * config/mips/mips.c (gen_load_const_gp): New function, taking a
17699         comment from...
17700         (mips16_gp_pseudo_reg): ...here.
17701         * config/mips/mips.md (load_const_gp): Replace with...
17702         (load_const_gp_<mode>): ...this :P-based insn.
17703
17704 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17705
17706         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
17707         options. Minor fixes.
17708         (-std): Move reference to standards closer to where language
17709         standards are first mentioned.
17710
17711 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
17712
17713         PR rtl-optimization/34995
17714         * reload.c (alternative_allows_const_pool_ref): Take an rtx
17715         parameter and return a bool.  If the rtx parameter is nonnull,
17716         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
17717         (find_reloads): Update call accordingly.  Pass the new operand
17718         if it needed no address reloads, otherwise pass null.
17719
17720 2008-01-30  Richard Henderson  <rth@redhat.com>
17721
17722         PR c/34993
17723         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
17724         for unbounded arrays.
17725
17726 2008-01-30  Silvius Rus  <rus@google.com>
17727
17728         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
17729
17730 2008-01-30  Jan Hubicka  <jh@suse.cz>
17731
17732         PR target/34982
17733         * i386.c (init_cumulative_args): Use real function declaration when
17734         calling locally.
17735
17736 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
17737
17738         PR rtl-optimization/34998
17739         * global.c (build_insn_chain): Treat non-subreg_lowpart
17740         SUBREGs of pseudos as clobbering all the words covered by the
17741         SUBREG, not just all the bytes.
17742         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
17743         original df_ref rather than an extract parameter.
17744         (global_conflicts): Update call accordingly.
17745
17746 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
17747
17748         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
17749         the overflow check to make it easier to read.
17750         (__fixtfdi): Change the type of the ll member in union
17751         long_double to UDItype_x.
17752
17753 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
17754
17755         PR middle-end/34969
17756         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
17757         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
17758         * tree-inline.c (fold_marked_statements): Call
17759         cgraph_update_edges_for_call_stmt if folding a call statement.
17760         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
17761         debug_generic_stmt calls, reset it back afterwards.
17762
17763         PR c/35017
17764         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
17765         static decls.
17766         * c-typeck.c (build_external_ref): Don't pedwarn about
17767         static vars in current function's scope.
17768
17769 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
17770
17771         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
17772
17773 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
17774
17775         PR c/35002
17776         * ipa-struct-reorg.c: Fix spelling.
17777         * params.def: Ditto.
17778
17779 2008-01-29  Richard Guenther  <rguenther@suse.de>
17780
17781         PR middle-end/35006
17782         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
17783         field.
17784         * tree-inline.c (remap_type): Increment remapping_type_depth
17785         around remapping types.
17786         (copy_body_r): Only add referenced variables if they are referenced
17787         from code, not types.
17788
17789 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
17790
17791         PR c++/34055
17792         PR c++/34103
17793         PR c++/34219
17794         PR c++/34606
17795         PR c++/34753
17796         PR c++/34754
17797         PR c++/34755
17798         PR c++/34919
17799         PR c++/34961
17800         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
17801         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
17802
17803 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
17804
17805         PR target/34412
17806         * config/avr/avr.c (expand_prologue): Use correct QI mode frame
17807         pointer for tiny stack.
17808
17809 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
17810
17811         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
17812
17813 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
17814
17815         * config/vx-common.h: Fix typo in comment.
17816
17817 2008-01-28  Ian Lance Taylor  <iant@google.com>
17818
17819         PR c++/34862
17820         PR c++/33407
17821         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
17822         coalesce pointers if they have different DECL_NO_TBAA_P values.
17823         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
17824         between variables with different DECL_NO_TBAA_P values.
17825
17826 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
17827
17828         PR 31535
17829         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
17830         are not legitimate small data references on SPE targets.
17831
17832 2008-01-28  David Daney  <ddaney@avtrex.com>
17833
17834         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
17835
17836 2008-01-28  David Daney  <ddaney@avtrex.com>
17837
17838         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
17839
17840 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
17841
17842         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
17843         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
17844         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
17845         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
17846         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
17847         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
17848         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
17849         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
17850
17851 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
17852
17853         * basic-block.h (condjump_equiv_p): Fix comment.
17854
17855 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
17856
17857         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
17858         print_generic_stmt_indented): Fix comment.
17859
17860 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
17861
17862         * configure.ac (__stack_chk_fail): Add detecion for availability
17863         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
17864         * configure: Regenerate.
17865
17866 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
17867
17868         PR middle-end/34688
17869         * final.c (output_addr_const): Handle TRUNCATE.
17870
17871 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
17872
17873         PR target/34711
17874         * tree-ssa-loop-ivopts.c (comp_cost): New type.
17875         (zero_cost, infinite_cost): New constants.
17876         (struct cost_pair): Change type of cost to comp_cost.
17877         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
17878         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
17879         New functions.
17880         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
17881         split_address_cost, ptr_difference_cost, difference_cost,
17882         get_computation_cost_at, get_computation_cost,
17883         determine_use_iv_cost_generic, determine_use_iv_cost_address,
17884         determine_use_iv_cost_condition, determine_use_iv_costs,
17885         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
17886         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
17887         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
17888         Change type of cost to comp_cost.
17889         (determine_iv_cost): Increase cost of non-original ivs, instead
17890         of decreasing the cost of original ones.
17891         (get_address_cost): Indicate the complexity of the addressing mode
17892         in comp_cost.
17893         (try_add_cand_for): Prefer using ivs not specific to some object.
17894         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
17895
17896 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
17897             Janis Johnson  <janis187@us.ibm.com>
17898
17899         PR target/34814
17900         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
17901         (TARGET_INSTANTIATE_DECLS): Likewise.
17902         * target.h (expand_to_rtl_hook): New target hook.
17903         (instantiate_decls): Likewise.
17904         * function.c (instantiate_decl): Make non-static.  Rename to...
17905         (instantiate_decl_rtl): ... this.
17906         (instantiate_expr): Use instantiate_decl_rtl.
17907         (instantiate_decls_1): Likewise.
17908         (instantiate_decls): Likewise.
17909         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
17910         * function.h (instantiate_decl_rtl): Add prototype.
17911         * cfgexpand.c (target.h): New include.
17912         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
17913         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
17914         (TARGET_INSTANTIATE_DECLS): Likewise.
17915         (TARGET_INITIALIZER): New target hooks added.
17916         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
17917         New prototype.
17918         * config/rs6000/rs6000.c (tree-flow.h): New include.
17919         (machine_function): Add sdmode_stack_slot field.
17920         (rs6000_alloc_sdmode_stack_slot): New function.
17921         (rs6000_instantiate_decls): Likewise.
17922         (rs6000_secondary_memory_needed_rtx): Likewise.
17923         (rs6000_check_sdmode): Likewise.
17924         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
17925         (TARGET_INSTANTIATE_DECLS): Likewise.
17926         (rs6000_hard_regno_mode_ok): Allow SDmode.
17927         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
17928         (rs6000_emit_move): Handle SDmode.
17929         (function_arg_advance): Likewise.
17930         (function_arg): Likewise.
17931         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
17932         SDmode var args for 32-bit compiles.
17933         (rs6000_secondary_reload_class): Handle SDmode.
17934         (rs6000_output_function_epilogue): Likewise.
17935         (rs6000_function_value): Simplify if statement.
17936         (rs6000_libcall_value): Likewise.
17937         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
17938         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
17939         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
17940         (movsd_hardfloat): New define_insn.
17941         (movsd_softfloat): Likewise.
17942         (movsd_store): Likewise.
17943         (movsd_load): Likewise.
17944         (extendsddd2): Likewise.
17945         (extendsdtd2): Likewise.
17946         (truncddsd2): Likewise.
17947         (movdd_hardfloat64): Fixup comment.
17948         (UNSPEC_MOVSD_LOAD): New constant.
17949         (UNSPEC_MOVSD_STORE): Likewise.
17950
17951 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
17952
17953         PR c++/34965
17954         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
17955         TRUTH_XOR_EXPR.
17956         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
17957         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
17958         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
17959         and TRUTH_XOR_EXPR.
17960
17961 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
17962
17963         PR target/34794
17964         * config.gcc: Separate AIX 5.3 from AIX 6.1.
17965         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
17966         __LONGDOUBLE128 too.
17967         * config/rs6000/aix61.h: New file.
17968
17969 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
17970
17971         PR rtl-optimization/34959
17972         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
17973         popcount and parity rtxes the same mode as their operand.
17974         Truncate or extend the result to the return value's mode
17975         if necessary.
17976
17977 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
17978
17979         PR target/34981
17980         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
17981         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
17982         to GOT_VERSION_REGNUM.
17983         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
17984         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
17985         * config/mips/mips.c (mips_emit_call_insn): New function.
17986         (mips_call_tls_get_addr): Call mips_expand_call directly.
17987         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
17988         emit_call_insn.
17989         (mips16_build_call_stub): Likewise.  Return the call insn or null.
17990         (mips_expand_call): Update the call to mips16_build_call_stub
17991         accordingly and a remove redundant condition.  Assert that MIPS16
17992         stubs do not use lazy binding.  Use mips_emit_call_insn and return
17993         the call insn.
17994         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
17995         TARGET_USE_GOT.
17996         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
17997         (mips_avoid_hazard): Remove hazard_set handling.
17998         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
17999         (UNSPEC_RESTORE_GP): ...this.
18000         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
18001         (FAKE_CALL_REGNO): Rename to...
18002         (GOT_VERSION_REGNUM): ...this.
18003         (type): Add "ghost" value.  Add an associated insn reservation.
18004         (hazard_set): Remove.
18005         (exception_receiver): Rename to...
18006         (restore_gp): ...this and update the unspec identifier accordingly.
18007         (exception_receiver, nonlocal_got_receiver): New expanders.
18008         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
18009         FAKE_CALL_REGNO.  Remove hazard_set attribute.
18010         (set_got_version, update_got_version): New patterns.
18011
18012 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
18013
18014         PR target/34970
18015         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
18016
18017 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
18018
18019         PR other/31955
18020         * doc/install.texi2html: Generate gcc-vers.texi.
18021
18022 2008-01-25  DJ Delorie  <dj@redhat.com>
18023
18024         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
18025
18026 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
18027
18028         * config/c4x: Remove directory.
18029         * config.gcc (crx-*, mt-*): Mark obsolete.
18030         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
18031         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
18032         sh-*-rtemscoff*): Remove cases.
18033         * defaults.h (C4X_FLOAT_FORMAT): Remove.
18034         * real.c (encode_c4x_single, decode_c4x_single,
18035         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
18036         c4x_extended_format): Remove.
18037         * real.h (c4x_single_format, c4x_extended_format): Remove.
18038         * doc/extend.texi (interrupt, naked): Remove mention of attributes
18039         on C4x.
18040         (Pragmas): Remove comment about c4x pragmas.
18041         * doc/install.texi (c4x): Remove target-specific instructions.
18042         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
18043         * doc/md.texi (Machine Constraints): Remove C4x documentation.
18044         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
18045         refer to C4x source files as examples.
18046         (C4X_FLOAT_FORMAT): Remove documentation.
18047
18048 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
18049
18050         * config/bfin/bfin.c (override_options): Reorder tests so that
18051         flag_pic gets enabled for -msep-data.
18052
18053 2008-01-25  Richard Guenther  <rguenther@suse.de>
18054
18055         PR middle-end/32244
18056         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
18057         to its bitfield precision if required.
18058
18059 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
18060
18061         PR middle-end/33880
18062         * tree-nested.c (walk_omp_for): New function.
18063         (convert_nonlocal_reference, convert_local_reference): Call
18064         walk_omp_for on OMP_FOR.
18065         (convert_call_expr): Call walk_body on OMP_FOR's
18066         OMP_FOR_PRE_INIT_BODY.
18067
18068 2008-01-25  Richard Guenther  <rguenther@suse.de>
18069
18070         PR tree-optimization/34966
18071         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
18072         default defs and PHI_NODEs we have to insert after the
18073         defining statement.
18074
18075 2008-01-24  Nick Clifton  <nickc@redhat.com>
18076
18077         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
18078         Provide a default definition.
18079         (LIBGCC2_UNITS_PER_WORD): Likewise.
18080
18081         * config/stormy16/stormy16.c: Include df.h for the prototype
18082         for df_regs_ever_live_p.
18083         (xstormy16_expand_builtin_va_start): Convert the stack offset
18084         into a component_ref and then use POINTER_PLUS_EXPR to add it
18085         to the incoming_virtual_args_rtx.
18086         (xstormy16_gimplify_va_arg_expr): Rename to
18087         xstormy16_gimplify_va_arg_expr.
18088         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
18089         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
18090         xstormy16_gimplify_va_arg_expr.
18091         Fix up some formatting issues.
18092
18093         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
18094         Move to predicates.md.
18095         (xs_hi_general_operand): Likewise.
18096         (xs_hi_nonmemory_operand): Likewise.
18097         * config/stormy16/predicates.md:
18098         (xstormy16_carry_plus_operand): New predicate.
18099         (xs_hi_general_operand): New predicate.
18100         (xs_hi_nonmemory_operand): New predicate.
18101         * config/stormy16/stormy16-protos.h:
18102         (xstormy16_carry_plus_operand): Delete prototype.
18103         (xs_hi_general_operand): Likewise.
18104         (xs_hi_nonmemory_operand): Likewise.
18105
18106         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
18107         modifiers as they are no longer needed and they can trigger
18108         reload spill failures.
18109
18110         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
18111         with a match_operand in order to help reload.
18112
18113         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
18114         constraint with 'e' for the 8th alternative as this version of
18115         the mov.w instruction only accepts the lower 8 registers.
18116
18117 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
18118
18119         PR target/34856
18120         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
18121         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
18122         vector elements.
18123
18124 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
18125
18126         PR middle-end/33333
18127         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
18128
18129 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
18130
18131         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
18132         New functions.
18133         (remove_structure): Update allocations list before removing structure.
18134
18135 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
18136
18137         * ipa-struct-reorg.c (is_safe_cond_expr,
18138         create_new_stmts_for_cond_expr): Use integer_zerop function,
18139         that recognize not only zero-pointer, but zero-integer too.
18140
18141 2008-01-25  Ben Elliston  <bje@au.ibm.com>
18142
18143         PR other/22232
18144         * fixproto: Escape "." in sed expression that strips leading "./".
18145
18146 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
18147
18148         PR driver/34904
18149         * gcc.c (SWITCH_OK): Removed.
18150         (SWITCH_LIVE): Changed to bit.
18151         (SWITCH_FALSE): Likewise.
18152         (SWITCH_IGNORE): Likewise.
18153         (switchstr): Change live_cond to unsigned int.
18154         (process_command): Replace SWITCH_OK with 0.
18155         (do_self_spec): Likewise.
18156         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
18157         (give_switch): Likewise.
18158         (used_arg): Likewise.
18159         (do_spec_1): Set the SWITCH_IGNORE bit.
18160         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
18161         bits.  Set the SWITCH_LIVE bit.
18162
18163 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
18164
18165         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
18166
18167 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
18168
18169         PR tree-optimization/34472
18170         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
18171         parameter to a "bool *" and set *DATA to false if there is
18172         an unsafe access.  Do not delete the structure here.
18173         (check_cond_exprs): Delete it here instead.
18174         (check_cond_exprs, exclude_cold_structs): Do not increase
18175         I when removing a structure.
18176
18177 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
18178
18179         PR target/34856
18180         * config/i386/i386.c (ix86_expand_vector_init): Consider only
18181         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
18182
18183 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
18184
18185         PR middle-end/34934
18186         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
18187         a fixed vector for stack.
18188
18189 2008-01-24  Ben Elliston  <bje@au.ibm.com>
18190
18191         PR c++/25701
18192         * doc/gcc.texi (Software development): Add a direntry for g++.
18193
18194 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
18195
18196         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
18197         stale and straggling -fforce-addr comments above.
18198
18199         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
18200         define.
18201         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
18202         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
18203
18204 2008-01-23  Michael Matz  <matz@suse.de>
18205
18206         PR debug/34895
18207         * dwarf2out.c (force_type_die): Use modified_type_die instead of
18208         gen_type_die.
18209
18210 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
18211
18212         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
18213         malloc result type.
18214
18215 2008-01-23 Anatoly Sokolov <aesok@post.ru>
18216
18217         * config/avr/avr.c (avr_current_arch): New variable.
18218         (avr_arch_types): Add 'avr31' and 'avr51' entries.
18219         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
18220         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
18221         (avr_override_options): Init 'avr_current_arch'.
18222         (base_arch_s): Move from here...
18223         * config/avr/avr.h (base_arch_s): ... here. Add new members
18224         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
18225         'mega' to 'have_jmp_call'.
18226         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
18227         "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
18228         macros.
18229         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
18230         architectures.
18231         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
18232         MULTILIB_MATCHES): Ditto.
18233
18234 2008-01-23  Richard Guenther  <rguenther@suse.de>
18235
18236         PR middle-end/31529
18237         * cgraphunit.c (cgraph_reset_node): Always mark the node
18238         not reachable if it is not queued already.
18239
18240 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
18241
18242         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
18243         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
18244         (cputype_selected): New static variable.
18245         (bfin_handle_option): Set it if -mcpu is used.
18246         (override_option): Select default set of workarounds if no cpu type
18247         selected on the command line.
18248         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
18249
18250         From  Michael Frysinger  <michael.frysinger@analog.com>
18251         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
18252         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
18253
18254         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
18255         for bf547, bf523, bf524, and bf526.
18256         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
18257         bf526.
18258         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
18259         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
18260         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
18261         __ADSPBF547__ and __ADSPBF54x__ for bf547.
18262         * doc/invoke.texi (Blackfin Options): Document that
18263         -mcpu now accept bf547, bf523, bf524, and bf526.
18264
18265 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
18266
18267         PR rtl-optimization/34628
18268         * combine.c (try_combine): Stop and undo after the first combination
18269         if an autoincrement side-effect on the first insn has effectively
18270         been lost.
18271
18272 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
18273
18274         PR target/34529
18275         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
18276         Offset addresses are not valid for Altivec or paired float modes.
18277
18278 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
18279
18280         PR c++/34607
18281         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
18282         if DECL_INITIAL (decl) is error_mark_node.
18283
18284         PR c++/34914
18285         * c-common.c (handle_vector_size_attribute): Only allow
18286         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
18287         the same way as pointer, array etc. types.
18288         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
18289
18290         PR c++/34917
18291         * tree.c (build_type_attribute_qual_variant): Call
18292         build_qualified_type if attributes are equal, but quals are not.
18293
18294 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18295
18296         PR 32102
18297         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
18298         * flags.h (warn_strict_aliasing): Remove.
18299         (warn_strict_overflow): Remove.
18300         * opts.c (warn_strict_aliasing): Remove.
18301         (warn_strict_overflow): Remove.
18302         * c-opts.c (c_common_handle_option): -Wall only sets
18303         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
18304         (c_common_post_options): Give default values to -Wstrict-aliasing
18305         and -Wstrict-overflow if they are uninitialized.
18306         * common.opt (Wstrict-aliasing): Specify Var and Init.
18307         (Wstrict-overflow): Likewise.
18308
18309 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
18310
18311         PR rtl-optimization/26854
18312         PR rtl-optimization/34400
18313         PR rtl-optimization/34884
18314         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
18315         DF_RD->gen.
18316         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
18317         (df_rd_bb_info.expanded_lr_out): Deleted
18318         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
18319         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
18320         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
18321         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
18322         Removed code to allocate, initialize or free expanded_lr_out.
18323         (df_rd_bb_local_compute_process_def): Restructured to make more
18324         understandable.
18325         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
18326         sets if the sets are being trimmed.
18327
18328 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
18329
18330         PR bootstrap/32287
18331         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
18332         (as_vers): Likewise.
18333         * configure: Regenerated.
18334
18335 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18336
18337         PR middle-end/33092
18338         * tree-pass.h (pass_build_alias): New pass.
18339         * tree-ssa-alias.c (gate_build_alias): New.
18340         (pass_build_alias): New.
18341         * passes.c (init_optimization_passes): Add pass_build_alias after
18342         pass_create_structure_vars.
18343
18344 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
18345
18346         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
18347         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
18348         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
18349         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
18350         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
18351         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
18352         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
18353         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
18354         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
18355         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
18356         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
18357         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
18358         * config/s390/s390.md (FP_ALL): New mode iterator.
18359         (_d): New mode attribute.
18360         ("*signbit<mode>2>"): Changed mode of first operand.
18361         ("isinf<mode>2"): Changed mode of first operand.
18362         ("*TDC_insn"): Adaptation for DFP modes.
18363
18364 2008-01-22  Ben Elliston  <bje@au.ibm.com>
18365
18366         * tree.c (check_qualified_type): Improve function description.
18367
18368 2008-01-21  Jason Merrill  <jason@redhat.com>
18369
18370         PR c++/34196
18371         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
18372         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
18373         if it is set.
18374
18375 2008-01-21  DJ Delorie  <dj@redhat.com>
18376
18377         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
18378         return zero.
18379
18380 2008-01-21  Richard Guenther  <rguenther@suse.de>
18381
18382         PR middle-end/34856
18383         * tree-cfg.c (verify_expr): Allow all invariant expressions
18384         instead of just constant class ones as reference argument.
18385         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
18386         like any other constant.
18387         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
18388
18389 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
18390
18391         * regmove.c (fixup_match_1): Update call crossed frequencies.
18392
18393 2008-01-21  Richard Guenther  <rguenther@suse.de>
18394
18395         PR c/34885
18396         * tree-inline.c (setup_one_parameter): Deal with mismatched
18397         types using a VIEW_CONVERT_EXPR.
18398
18399 2008-01-21  Alon Dayan  <alond@il.ibm.com>
18400             Olga Golovanevsky  <olga@il.ibm.com>
18401
18402         PR tree-optimization/34701
18403         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
18404         when the structure size is not a power of 2.
18405
18406 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
18407
18408         * doc/install.texi: Add doc for --enable-checking=df.
18409
18410 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
18411
18412         PR rtl-optimization/34808
18413         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
18414
18415 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
18416
18417         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
18418         input.
18419
18420 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
18421
18422         PR rtl-optimization/26854
18423         PR rtl-optimization/34400
18424         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
18425         DF_RD->gen.
18426         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
18427         (df_rd_bb_info.expanded_lr_out): New.
18428         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
18429         * loop_iv.c (iv_analysis_loop_init): Ditto.
18430         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
18431         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
18432         Added code to allocate, initialize or free expanded_lr_out.
18433         (df_rd_bb_local_compute_process_def): Restructured to make
18434         more understandable.
18435         (df_rd_confluence_n): Add code to do nothing with fake edges and
18436         code to no apply invalidate_by_call sets if the sets are being trimmed.
18437         (df_lr_local_finalize): Renamed to df_lr_finalize.
18438         (df_live_local_finalize): Renamed to df_live_finalize.
18439
18440 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
18441
18442         PR target/34831
18443         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
18444         deciding whether to use reciprocal instructions.
18445
18446 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
18447
18448         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
18449         dwarf2out_note_section_used if cold_text_section is NULL.
18450
18451 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
18452
18453         PR gcov-profile/34610
18454         * tree-cfg.c (make_edges): Mark both outgoing edges from
18455         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
18456         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
18457         from OMP_FOR and OMP_CONTINUE outgoing edges.
18458
18459         * tree-profile.c (tree_profiling): Return early if
18460         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
18461         at the end.
18462         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
18463         from cfun to child_cfun.
18464         * function.h (struct function): Add after_tree_profile bit.
18465
18466 2008-01-19 Anatoly Sokolov <aesok@post.ru>
18467
18468         * config/avr/avr.S (_exit): Disable interrupt.
18469
18470 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
18471             Steven Bosscher  <stevenb.gcc@gmail.com>
18472
18473         PR rtl-optimization/26854
18474         PR rtl-optimization/34400
18475         * df-problems.c (df_live_scratch): New scratch bitmap.
18476         (df_live_alloc): Allocate df_live_scratch when doing df_live.
18477         (df_live_reset): Clear the proper bitmaps.
18478         (df_live_bb_local_compute): Only process the artificial defs once
18479         since the order is not important.
18480         (df_live_init): Init the df_live sets only with the variables
18481         found live by df_lr.
18482         (df_live_transfer_function): Use the df_lr sets to prune the
18483         df_live sets as they are being computed.
18484         (df_live_free): Free df_live_scratch.
18485
18486 2008-01-18  Ian Lance Taylor  <iant@google.com>
18487
18488         * common.opt: Add fmerge-debug-strings.
18489         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
18490         flag_merge_debug_strings rather than flag_merge_constants.
18491         * doc/invoke.texi (Option Summary): Mention
18492         -fmerge-debug-strings.
18493         (Debugging Options): Document -fmerge-debug-strings.
18494
18495 2008-01-18  Ian Lance Taylor  <iant@google.com>
18496
18497         PR c++/33407
18498         * tree.h (DECL_IS_OPERATOR_NEW): Define.
18499         (struct tree_function_decl): Add new field operator_new_flag.
18500         * tree-inline.c (expand_call_inline): When inlining a call to
18501         operator new, force the return value to go into a variable, and
18502         set DECL_NO_TBAA_P on that variable.
18503         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
18504
18505 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
18506
18507         PR debug/34484
18508         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
18509         DWARF2_DEBUGGING_INFO.
18510         (dwarf2out_note_section_used): Ditto.  Add prototype.
18511         (have_multiple_function_sections, text_section_used,
18512         cold_text_section_used, *cold_text_sections): Move declarations
18513         before their uses.
18514
18515 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
18516
18517         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
18518         field and add signal_ra.
18519         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
18520         assignments to frame state pc.  Move end of stack check after
18521         MD_FALLBACK_FRAME_STATE_FOR.
18522         (uw_update_context_1): Use frame state signal_regs if set, instead
18523         of checking signal_frame flag.
18524         (uw_update_context): Use frame state signal_ra if set.
18525         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
18526         * config/xtensa/linux-unwind.h: New file.
18527
18528 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
18529
18530         * modulo-sched.c (get_sched_window): Fix comment typo.
18531
18532 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
18533
18534         PR tree-optimization/34648
18535         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
18536
18537 2008-01-17  Anatoly Sokolov <aesok@post.ru>
18538
18539         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
18540         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
18541
18542 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
18543
18544         PR rtl-optimization/34400
18545         * df-core.c (df_worklist_dataflow_overeager,
18546         df_worklist_dataflow_doublequeue): New functions.
18547         (df_worklist_dataflow): Two different worklist solvers.
18548         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
18549         New param.
18550
18551 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
18552
18553         PR testsuite/34821
18554         * doc/invoke.texi: Document the dependence on pthread for fopenmp
18555         and ftree-parallelize-loops.
18556
18557 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
18558
18559         PR rtl-optimization/34826
18560         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
18561
18562 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
18563
18564         * global.c (find_reg): Mark the eh regs as used if necessary.
18565         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
18566         * ra.h (struct allocno): no_eh_reg field added.  Changed
18567         no_stack_reg type to bitfield.
18568
18569 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
18570
18571         * tree.c (substitute_in_expr): Add missing 'break'.
18572
18573 2008-01-17  Richard Guenther  <rguenther@suse.de>
18574
18575         PR tree-optimization/34825
18576         * tree-ssa-math-opts.c (is_division_by): Do not recognize
18577         x / x as division to handle.
18578
18579 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18580
18581         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
18582         "-pthread" is specified.
18583         * pa-hpux11.h (LIB_SPEC): Likewise.
18584
18585 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
18586             Peter Bergner  <bergner@vnet.ibm.com>
18587
18588         PR rtl-optimization/33796
18589         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
18590
18591 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18592
18593         PR libgfortran/34699
18594         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
18595         static links.
18596         * pa-hpux10.h (LINK_SPEC): Likewise.
18597         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
18598
18599 2008-01-16  Richard Guenther  <rguenther@suse.de>
18600
18601         PR middle-end/32628
18602         * fold-const.c (fold_convert_const_int_from_int): Do not
18603         set overflow if that occured only because of a sign extension
18604         change when converting from/to a sizetype with the same
18605         precision and signedness.
18606
18607 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
18608
18609         PR debug/34249
18610         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
18611         location address to the correct place.  Update copyright year.
18612
18613 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
18614
18615         * lambda-code.c (lambda_transform_legal_p): Handle the case of
18616         no dependences in the dependence_relations vector.
18617
18618 2008-01-16  Jan Hubicka  <jh@suse.cz>
18619
18620         PR rtl-optimization/31396
18621         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
18622         * cfg.c (dump_reg_info): Print it.
18623         * regs.h (struct reg_info_t): add freq_calls_crossed.
18624         (REG_FREQ_CALLS_CROSSED): New macro.
18625         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
18626         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
18627         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
18628         regmove_optimize): Update call crossed frequencies.
18629         * local-alloc.c (struct qty): Add freq_calls_crossed.
18630         (alloc_qty): Copute freq_calls_crossed.
18631         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
18632         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
18633         * ra.h (struct allocno): Add freq_calls_crossed.
18634
18635 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
18636
18637         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
18638         libgomp when compiling with ftree-parallelize-loops.
18639         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
18640
18641 2008-01-16  Richard Guenther  <rguenther@suse.de>
18642
18643         PR tree-optimization/34769
18644         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
18645         * tree.c (int_cst_value): Instead make this function more
18646         permissive in what it accepts as valid input.  Document this
18647         function always sign-extends the value.
18648
18649 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
18650             Richard Guenther  <rguenther@suse.de>
18651
18652         PR c/34668
18653         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
18654         (gimple_fold_indirect_ref_rhs): ... this.
18655         (gimple_fold_indirect_ref): New function with foldings
18656         that preserve lvalueness.
18657         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
18658         * tree-flow.h (gimple_fold_indirect_ref): Declare.
18659         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
18660         to fold an INDIRECT_REF, fall back to the old use of
18661         fold_indirect_ref_1.
18662
18663 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
18664
18665         * tree-data-ref.c (subscript_dependence_tester_1): Call
18666         free_conflict_function.
18667         (compute_self_dependence): Same.
18668
18669 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
18670
18671         PR debug/34249
18672         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
18673         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
18674         function global.
18675         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
18676         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
18677         for DWARF2_UNWIND_INFO targets.
18678
18679 2008-01-16  Richard Guenther  <rguenther@suse.de>
18680
18681         PR c/34768
18682         * c-typeck.c (common_pointer_type): Do not merge inconsistent
18683         type qualifiers for function types.
18684
18685 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
18686
18687         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
18688         loop_iterator li from previous commit.
18689
18690 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
18691
18692         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
18693
18694 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
18695
18696         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
18697         (parallelize_loops): Don't parallelize irreducible components.
18698
18699 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18700
18701         PR c++/24924
18702         * c-opts (c_common_post_options): Do not enable CPP
18703         flag_pedantic_errors by default.
18704
18705 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
18706
18707         PR rtl-optimization/31944
18708         * cse.c (remove_pseudo_from_table): New function.
18709         (merge_equiv_classes): Use above function to remove pseudo-registers.
18710         (invalidate): Likewise.
18711
18712 2008-01-13  Richard Guenther  <rguenther@suse.de>
18713
18714         PR middle-end/34601
18715         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
18716         instead of TYPE_MODE to deal with calls from expand_one_error_var.
18717
18718 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
18719
18720         * gcse.c (cprop_jump): Call validate_unshare_change instead of
18721         validate_change to unshare the source of the PC set.
18722
18723 2008-01-12  Jan Hubicka  <jh@suse.cz>
18724
18725         PR middle-end/32135
18726         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
18727         references above array bounds.  This might trigger bounds checks for
18728         pointers to arrays.
18729
18730 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
18731
18732         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
18733         new_replaceable_dependencies.
18734
18735 2008-01-12  Doug Kwan  <dougkwan@google.com>
18736
18737         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
18738         instead of OPT_Wreturn_type in warning due to ignored return type
18739         qualifiers.
18740         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
18741         options included in -Wextra.
18742         * c.opt: New option -Wignored_qualifiers.
18743         * doc/invoke.texi (Warning Options, -Wextra): Add new option
18744         -Wignore_qualifiers.
18745         (-Wignored-qualifiers): Document.
18746         (-Wreturn-type): Remove description of functionality now handled
18747         by -Wignored-qualifiers.
18748
18749 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
18750
18751         PR ada/33788
18752         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
18753         NOP_EXPR if it is between integral types with the same precision.
18754
18755 2008-01-12  Jan Hubicka  <jh@suse.cz>
18756
18757         PR other/28023
18758         * invoke.texi (max-inline-recursive-depth): Fix default value.
18759
18760 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
18761
18762         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
18763         correct type.
18764
18765 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
18766
18767         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
18768
18769 2008-01-11  James E. Wilson  <wilson@specifix.com>
18770
18771         PR target/26015
18772         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
18773
18774 2008-01-11  Anatoly Sokolov <aesok@post.ru>
18775
18776         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
18777         save/restore frame pointer register and don't use 'call-prologues'
18778         optimization in function with "OS_task" attribute.
18779
18780 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
18781
18782         PR middle-end/31309
18783         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
18784         when copying to memory.
18785
18786 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
18787
18788         PR rtl-optimization/30905
18789         * cfgcleanup.c: Include dce.h
18790         (crossjumps_occured): New global variable.
18791         (try_crossjump_bb): Exit loop after finding a fallthru edge.
18792         If something changed, set crossjumps_occured to true.
18793         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
18794         Don't add/remove fake edges to exit here...
18795         (cleanup_cfg): ...but do it here, when crossjumping.
18796         Run a fast DCE when successful crossjumps occured in the latest
18797         iteration of try_optimize_cfg.
18798
18799 2008-01-11  Richard Guenther  <rguenther@suse.de>
18800
18801         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
18802         (struct vn_unary_op_s): Likewise.
18803         (vn_reference_insert): Free old reference on hash collision.
18804
18805 2008-01-10  Raksit Ashok  <raksit@google.com>
18806
18807         PR rtl-optimization/27971
18808         * combine.c (find_split_point): Split PLUS expressions which are
18809         inside a MEM rtx, and whose first operand is complex.
18810
18811 2008-01-10  DJ Delorie  <dj@redhat.com>
18812
18813         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
18814         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
18815         (m32c_hard_regno_ok): Call the underlying function.
18816
18817 2008-01-10  Richard Guenther  <rguenther@suse.de>
18818
18819         PR middle-end/34683
18820         * tree-cfg.c (tree_merge_blocks): Do not go through the
18821         full-blown folding and stmt updating path if we just deal
18822         with virtual operands.
18823         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
18824         test for abnormal SSA_NAMEs.
18825
18826 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
18827
18828         PR middle-end/34641
18829         * reload.c (push_reload): Add assertions.  All constants from
18830         reg_equiv_constant should have been used for replacing the respective
18831         pseudo earlier.
18832         (find_reloads_address): Invoke find_reloads_address_part for
18833         constant taken from the reg_equiv_constant array.
18834
18835 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
18836
18837         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
18838         field (valnum) the first in the struct.  Replace bools with
18839         unit bit fields.
18840
18841 2008-01-10  Richard Guenther  <rguenther@suse.de>
18842
18843         PR tree-optimization/34651
18844         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
18845         types and ordering for masking and converting.
18846
18847 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
18848
18849         PR tree-optimization/34017
18850         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
18851         also for PHI_NODE expressions.
18852
18853 2008-01-09  Jan Hubicka  <jh@suse.cz>
18854
18855         PR tree-optimization/34708
18856         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
18857         based on number of case labels.
18858         (init_inline_once): Remove switch_cost.
18859         * tree-inline.h (eni_weights_d): Remove switch_cost.
18860
18861 2008-01-09  Richard Guenther  <rguenther@suse.de>
18862         Andrew Pinski  <andrew_pinski@playstation.sony.com>
18863
18864         PR middle-end/30132
18865         * gimplify.c (gimplify_cond_expr): Do not create an addressable
18866         temporary if an rvalue is ok or an lvalue is not required.
18867
18868 2008-01-09  Richard Guenther  <rguenther@suse.de>
18869
18870         PR middle-end/34458
18871         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
18872         adjust return type.
18873
18874 2008-01-09  Richard Guenther  <rguenther@suse.de>
18875
18876         PR middle-end/34679
18877         * tree.c (host_integerp): Check for sizetype only if the
18878         type is an integer type.
18879
18880 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
18881
18882         PR debug/26364
18883         * opts.c (decode_options): Disable inlining of functions called
18884         once if not in unit-at-a-time mode.
18885
18886 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
18887
18888         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
18889
18890 2008-01-08  Richard Guenther  <rguenther@suse.de>
18891
18892         PR middle-end/31863
18893         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
18894         out early if the result will be unused.
18895
18896 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
18897
18898         PR target/34709
18899         Revert:
18900
18901         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
18902         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
18903         for TARGET_RECIP.
18904
18905 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
18906
18907         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
18908         for vectorization tuned.
18909
18910 2008-01-08  Richard Guenther  <rguenther@suse.de>
18911
18912         PR tree-optimization/34683
18913         * tree-ssa-operands.c (operand_build_cmp): Export.
18914         * tree-ssa-operands.h (operand_build_cmp): Declare.
18915         * tree-vn.c (vuses_compare): Remove.
18916         (sort_vuses): Use operand_build_cmp.
18917         (sort_vuses_heap): Likewise.
18918         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
18919         to re-use old VEC if available.  Do not sort already sorted VUSEs.
18920         (vdefs_to_vec): Do not sort already sorted VDEFs.
18921
18922 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
18923
18924         PR middle-end/34694
18925         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
18926
18927 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
18928
18929         PR target/34702
18930         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
18931         limitations of reciprocal sequences on x86 targets.
18932
18933 2008-01-08  Richard Guenther  <rguenther@suse.de>
18934
18935         PR tree-optimization/34683
18936         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
18937
18938 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
18939
18940         PR target/34622
18941         * config/darwin.c (darwin_mergeable_string_section): Don't use
18942         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
18943
18944 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
18945
18946         PR target/34682
18947         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
18948         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
18949         predicates of op0 and op1 to register_operand.
18950         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
18951         expander using X87MODEF mode iterator.  Change predicates of
18952         op0 and op1 to register_operand.
18953         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
18954         corresponding patterns and macroize using MODEF macro.  Change
18955         predicates of op0 and op1 to register_operand and remove
18956         "m" constraint. Disparage "r" alternative with "!".
18957         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
18958         macroize using X87MODEF macro.  Change predicates of op0 and op1
18959         to register_operand and remove "m" constraint.  Disparage "r"
18960         alternative with "!".
18961         (absneg splitter with memory operands): Remove.
18962         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
18963         patterns and macroize using X87MODEF mode iterator.
18964         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
18965         Change predicate of op1 to register_operand.
18966         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
18967         for memory operands.
18968
18969 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
18970
18971         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
18972
18973 2008-01-07  Richard Guenther  <rguenther@suse.de>
18974
18975         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
18976         fields.
18977
18978 2008-01-07  Richard Guenther  <rguenther@suse.de>
18979
18980         PR tree-optimization/34683
18981         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
18982         VOPs of the needed size to save memory.  Use VEC_quick_push
18983         to save compile-time.
18984         (vdefs_to_vec): Likewise.
18985
18986 2008-01-07  Sa Liu  <saliu@de.ibm.com>
18987
18988         * config/spu/spu.md (divdf3): Genetate inline code for double
18989         division.  The implementation doesn't handle INF or NAN, therefore it
18990         only applies when -ffinite-math-only is given.
18991
18992 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
18993
18994         PR libstdc++/34680
18995         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
18996         * doc/cpp.texi ([Common Predefined Macros]): Document.
18997
18998 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
18999
19000         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
19001         order to use commutative addition instead of subtraction.
19002
19003 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
19004             Mircea Namolaru  <namolaru@il.ibm.com>
19005             Vladimir Yanovsky  <yanov@il.ibm.com>
19006             Revital Eres  <eres@il.ibm.com>
19007
19008         PR tree-optimization/34263
19009         * tree-outof-ssa.c (process_single_block_loop_latch,
19010         contains_tree_r): New functions.
19011         (analyze_edges_for_bb): Call process_single_block_loop_latch
19012         function to empty single-basic-block latch block if possible.
19013
19014 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
19015
19016         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
19017         for TARGET_RECIP.
19018         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
19019
19020 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
19021
19022         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
19023
19024 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
19025
19026         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
19027
19028 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
19029
19030         PR tree-optimization/34618
19031         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
19032         flag from T.
19033
19034 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
19035
19036         PR target/34673
19037         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
19038         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
19039         Update copyright year.
19040
19041         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
19042         Update copyright year.
19043         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
19044         using NR fixup.
19045
19046 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
19047
19048         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
19049         edge does not point to current bb before changing need_assert.
19050
19051 2008-01-04  Richard Guenther  <rguenther@suse.de>
19052
19053         PR middle-end/34029
19054         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
19055         for verifying purposes if they are is_gimple_min_invariant.
19056
19057 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
19058
19059         PR tree-optimization/34448
19060         PR tree-optimization/34465
19061         * gimplify.c (gimplify_init_constructor): Add new parameter
19062         notify_temp_creation.  Use it.
19063         (gimplify_modify_expr_rhs): Take volatiles into account when
19064         optimizing constructors.
19065         Do not optimize constructors if gimplify_init_constructor will dump to
19066         memory.
19067         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
19068         * gcc.c-torture/compile/pr34448.c: New.
19069
19070 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
19071
19072         PR gcov-profile/34609
19073         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
19074         return_slot if result is TREE_ADDRESSABLE.
19075
19076 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
19077
19078         * config/mips/mips.md (sqrt_condition): Tweak comment.
19079         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
19080
19081 2008-01-03  Tom Tromey  <tromey@redhat.com>
19082
19083         PR c/34457
19084         * c-common.c (c_type_hash): Handle VLAs.
19085
19086 2008-01-03  Jan Hubicka  <jh@suse.cz>
19087
19088         PR tree-optimization/31081
19089         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
19090         0 when inlining and not inlining to first basic block.
19091         (remap_decl): When var is initialized to 0, don't set default_def.
19092         (expand_call_inline): Set entry_bb.
19093         * tree-inline.h (copy_body_data): Add entry_bb.
19094
19095 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
19096
19097         PR c++/34619
19098         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
19099         before returning.
19100
19101         PR tree-optimization/29484
19102         * tree-inline.c (inline_forbidden_p_2): New function.
19103         (inline_forbidden_p): Disallow inlining if some static var
19104         has an address of a local LABEL_DECL in its initializer.
19105         * doc/extend.texi (Labels as Values): Document &&foo behaviour
19106         vs. inlining.
19107
19108 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
19109
19110         PR tree-optimization/34635
19111         * tree-data-ref.c (add_other_self_distances): Make sure that the
19112         evolution step is constant.
19113
19114 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
19115
19116         PR middle-end/34608
19117         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
19118
19119 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
19120
19121         * tree-sra.c (scalarize_init): Insert the generate_element_init
19122         statements after the generate_element_zero statements.
19123
19124 2008-01-02  Richard Guenther  <rguenther@suse.de>
19125
19126         PR middle-end/34093
19127         PR middle-end/31976
19128         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
19129         for very large number of operands instead of ICEing.
19130
19131 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
19132
19133         PR target/34013
19134         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
19135         while stack probing.
19136
19137 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
19138
19139         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
19140         in C++0x mode.
19141
19142 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
19143
19144         PR libmudflap/26442
19145         * tree-mudflap.c (mx_register_decls): Guard warning by
19146         !DECL_ARTIFICIAL check.
19147
19148 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
19149
19150         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
19151         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
19152         sse5_perm<mode>): Fix constraints.