OSDN Git Service

* dwarf2out.c (fortran_common): Update comment.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-08-29  Jakub Jelinek  <jakub@redhat.com>
2
3         * dwarf2out.c (fortran_common): Update comment.
4         (gen_variable_die): Swap com_die and var_die variables in Fortran
5         COMMON block handling code.
6
7         * dwarf2out.c (descr_info_loc): Handle VAR_DECL.
8
9         * dwarf2out.c (gen_const_die): New function.
10         (size_of_die, value_format, output_die): Output larger
11         dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
12         (native_encode_initializer): New function.
13         (tree_add_const_value_attribute): Call it.
14         (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
15
16         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
17         DECL_BY_REFERENCE decls don't pass TREE_READONLY and
18         TREE_THIS_VOLATILE to add_type_attribute.
19
20         * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
21         types.
22         (gen_array_type_die): Emit DW_TAG_string_type for Fortran character
23         types.
24
25         * dwarf2out.c (loc_by_reference): New function.
26         (add_location_or_const_value_attribute): Use it.
27
28         PR fortran/23057
29         * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
30         as DW_TAG_variable children of DW_TAG_common_block rather than
31         DW_TAG_member children.  Put DW_AT_external to individual
32         DW_TAG_variable DIEs, not to DW_TAG_common_block.
33
34         * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
35         loc_descriptor_from_tree_1.
36
37         PR fortran/29635
38         PR fortran/23057
39         * debug.h (struct gcc_debug_hooks): Add NAME and CHILD
40         arguments to imported_module_or_decl.
41         (debug_nothing_tree_tree): Removed.
42         (debug_nothing_tree_tree_tree_bool): New prototype.
43         * debug.c (do_nothing_debug_hooks): Adjust.
44         (debug_nothing_tree_tree): Removed.
45         (debug_nothing_tree_tree_tree_bool): New function.
46         * dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
47         (gen_variable_die): Put all common vars for the
48         same COMMON block under one DW_TAG_common_block.
49         (declare_in_namespace): Return new context_die, for Fortran
50         return the module DIE instead of adding extra declarations into
51         the namespace.
52         (gen_type_die_with_usage): Adjust declare_in_namespace caller.
53         (gen_namespace_die): If is_fortran (), generate DW_TAG_module
54         instead of DW_TAG_namespace.  If DECL_EXTERNAL is set, add
55         DW_AT_declaration.
56         (dwarf2out_global_decl): Don't skip Fortran global vars.
57         (gen_decl_die): Likewise.  Adjust declare_in_namespace callers.
58         (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
59         If NAME is non-NULL, add DW_AT_name.  If CHILD is non-NULL, put
60         DW_TAG_imported_declaration as child of previous
61         DW_TAG_imported_module.
62         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
63         * sdbout.c (sdb_debug_hooks): Likewise.
64         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
65
66 2008-08-29  Jan Hubicka  <jh@suse.cz>
67
68         * cgraph.c (cgraph_remove_node): Do not remove nested nodes.
69
70         * cgraph.h (cgraph_maybe_hot_edge_p): Declare.
71         * ipa-cp.c (n_cloning_candidates): New static variable.
72         (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
73         (ipcp_print_all_lattices): Improve debug output.
74         (ipcp_cloning_candidate_p): New function.
75         (ipcp_initialize_node_lattices): Use it.
76         (ipcp_init_stage): Do only analyzis here; prettier debug output.
77         (ipcp_propagate_stage): Prettier debug output.
78         (ipcp_iterate_stage): Initialize latices here; prettier debug output.
79         (ipcp_print_all_structures): Remove.
80         (ipcp_need_redirect_p): Test !n_cloning_candidates.
81         (ipcp_insert_stage): Prettier debug output; call
82         cgraph_remove_unreachable_nodes before propagating.
83         (pass_ipa_cp): Schedule function removal pass.
84         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
85         debug output.
86         (cgraph_maybe_hot_edge_p): Move to ...
87         * predict.c (cgraph_maybe_hot_edge_p) ... here.
88         * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
89         (common_handle_option): Set them; enable ipa-cp when profiling.
90         * ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
91         (ipa_print_all_jump_functions): Likewise.
92         (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
93         (ipa_print_node_params, ipa_print_all_params): New.
94         * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
95         ipa_print_all_param_flags): Remove.
96         (ipa_print_node_params, ipa_print_all_params): New.
97
98 2008-08-29  Bob Wilson  <bob.wilson@acm.org>
99
100         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
101         change from 2008-04-03.
102         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
103
104 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
105
106         PR rtl-opt/37251
107
108         * ira-color.c (push_allocnos_to_stack): Truncate
109         removed_splay_allocno_vec.
110
111 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
112
113         PR rtl-opt/37243
114         * ira-color (ira_fast_allocation): Don't assign hard registers to
115         global allocnos.
116
117 2008-08-29  Jan Hubicka  <jh@suse.cz>
118
119         PR middle-end/37278
120         * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
121         for cold internal loops.
122
123 2008-08-29  Richard Guenther  <rguenther@suse.de>
124
125         * tree-ssa-structalias.c (create_variable_info_for): Do not
126         create fields for heap vars or vars with a noalias state.
127         For NO_ALIAS_ANYTHING variables add a self-constraint, not one
128         from ESCAPED.
129
130 2008-08-29  Richard Guenther  <rguenther@suse.de>
131
132         * common.opt (ftree-store-ccp): Mark as preserved for
133         backward compatibility.
134         * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
135         * tree-pass.h (pass_store_ccp): Remove.
136         * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
137         (first_vdef): Remove declaration.
138         (get_value_loaded_by): Likewise.
139         * tree-ssa-ccp.c (do_store_ccp): Remove.
140         (get_default_value): Simplify as do_store_ccp is always false
141         now.  Do not initialize mem_ref.
142         (set_value_varying): Likewise.
143         (canonicalize_float_value): Likewise.
144         (set_lattice_value): Likewise.
145         (likely_value): Likewise.
146         (surely_varying_stmt_p): Likewise.
147         (ccp_initialize): Likewise.
148         (ccp_lattice_meet): Likewise.
149         (ccp_visit_phi_node): Likewise.
150         (ccp_fold): Likewise.
151         (evaluate_stmt): Likewise.
152         (visit_assignment): Likewise.
153         (ccp_visit_stmt): Likewise.
154         (execute_ssa_ccp): Fold into ...
155         (do_ssa_ccp): ... this.
156         (do_ssa_store_ccp): Remove.
157         (gate_store_ccp): Likewise.
158         (pass_store_ccp): Likewise.
159         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
160         initialize mem_ref.
161         * tree-ssa-propagate.c (first_vdef): Remove.
162         (get_value_loaded_by): Likewise.
163         (replace_vuses_in): Likewise.
164         (substitute_and_fold): Do not call replace_vuses_in.
165         * opts.c (decode_options): Do not set flag_tree_store_ccp.
166
167 2008-08-29  Richard Guenther  <rguenther@suse.de>
168
169         PR middle-end/37236
170         * tree-ssa-structalias.c (intra_create_variable_infos): Mark
171         PARAM_NOALIAS tags with is_heapvar.
172         * tree-ssa-operands.c (access_can_touch_variable): Offset
173         based tests do not apply for heapvars.  Fix offset test.
174
175 2008-08-29  Jan Hubicka  <jh@suse.cz>
176
177         * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
178         (-fipa-cp-clone): Enabled by default at -O3.
179         * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
180         make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
181
182 2008-08-29  Jan Hubicka  <jh@suse.cz>
183
184         * tree.c (build_function_type_skip_args, build_function_decl_skip_args):
185         New functions.
186         * tree.h (build_function_type_skip_args, build_function_decl_skip_args):
187         Declare.
188         * gimple.c (giple_copy_call_skip_args): New function.
189         (giple_copy_call_skip_args): Declare.
190
191         * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
192         * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
193         (ipcp_node_modifiable_p): ... this one; use tree_versionable_function_p.
194         (ipcp_create_replace_map): Improve debug output.
195         (ipcp_need_redirect_p): Return false when not clonning.
196         (ipcp_update_callgraph): Skip args.
197         (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
198         skip args.
199         * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
200         (save_inline_function_body): Update call of tree_function_versioning.
201         * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
202         * tree-inline.c (copy_arguments_for_versioning): Add skip_args argument.
203         (tree_function_versioning): Likewise.
204         * tree-inline.h (tree_function_versioning): Update prototype.
205
206 2008-08-29  Jan Hubicka  <jh@suse.cz>
207
208         * loop-unswitch.c (unswitch_single_loop): Use optimize_loop_for_speed_p.
209         * tree-ssa-threadupdate.c (mark_threaded_blocks): Use optimize_function_for_size_p.
210         * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
211         * postreload-gcse.c (eliminate_partially_redundant_load): Use optimize_bb_for_size_p.
212         * value-prof.c (gimple_divmod_fixed_value_transform,
213         gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
214         gimple_stringops_transform): Use optimize_bb_for_size_p.
215         * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
216         * final.c (compute_alignments): Use optimize_function_for_size_p.
217         * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
218         (fold_builtin_strcpy, fold_builtin_fputs): Use
219         optimize_function_for_size_p.
220         * fold-const.c (tree_swap_operands_p): Use optimize_function_for_size_p.
221         * recog.c (relax_delay_slots): Likewise.
222         * tree-ssa-math-opts.c (replace_reciprocal): Use optimize_bb_for_speed_p.
223         (execute_cse_reciprocals): Use optimize_bb_for_size_p.
224         * ipa-inline.c (cgraph_decide_recursive_inlining): Use
225         optimize_function_for_size_p.
226         (cgraph_decide_inlining_of_small_function): Use
227         optimize_function_for_size_p.
228         * global.c (find_reg): Use optimize_function_for_size_p.
229         * opts.c (decode_options): Do not clear flag_tree_ch, flag_inline_functions,
230         flag_unswitch_loops, flag_unroll_loops, flag_unroll_all_loops and
231         flag_prefetch_loop_arrays. Those can work it out from profile.
232         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
233         optimize_loop_for_speed_p.
234         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p): Constify
235         argument.
236         (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
237         * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
238         * tree-eh.c (decide_copy_try_finally): Use optimize_function_for_size_p.
239         * local-alloc.c (block_alloc): Pass BB pointer.
240         (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
241         * gcse.c (gcse_main): Use optimize_function_for_size_p.
242         * loop-unroll.c (decide_unrolling_and_peeling): Use optimize_loop_for_size_p.
243         (decide_peel_completely): Likewise.
244         * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
245         optimize_loop_for_size_p.
246         (vect_enhance_data_refs_alignment): Likewise.
247         * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
248         (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map): Update call.
249         * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
250         (try_crossjump_bb): Use optimize_bb_for_size_p.
251         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
252         optimize_loop_for_speed_p.
253         * bb-reorder.c (find_traces_1_round): Likewise.
254         (copy_bb): Use optimize_bb_for_speed_p.
255         (duplicate_computed_gotos): Likewise.
256         * basic-block.h (optimize_loop_nest_for_size_p,
257         optimize_loop_nest_for_speed_p): New.
258         * stmt.c (expand_case): Use optimize_insn_for_size_p.
259
260 2008-08-29  Tristan Gingold  <gingold@adacore.com>
261
262         * gcov.c (main): Call expandargv.
263
264 2008-08-29  Jan Hubicka  <jh@suse.cz>
265
266         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
267         is not cold.
268         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
269         Constify arguments.
270         (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
271         * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
272         Constify.
273         (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
274
275 2008-08-29  Jan Hubicka  <jh@suse.cz>
276
277         * tree-pass.h (pass_strip_predict_hints): Declare.
278         * predict.c (strip_builtin_expect): Rename to ...
279         (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
280         (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
281         (tree_estimate_probability): Do not strip builtin_expect.
282         (pass_strip_predict_hints): New pass.
283         * tree-inline.c (expand_call_inline): When inlining cold function, predict
284         it as unlikely.
285         * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
286
287 2008-08-29  Richard Guenther  <rguenther@suse.de>
288
289         PR tree-optimization/37207
290         * tree-vrp.c (extract_range_from_binary_expr): Also try
291         to constant fold if only one of the operands is a constant.
292
293 2008-08-29  Nick Clifton  <nickc@redhat.com>
294
295         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
296         the same way as SYMBOL_REFs.
297
298 2008-08-28  Bob Wilson  <bob.wilson@acm.org>
299
300         * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
301
302 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
303
304         * config/mips/mips.h (ISA_HAS_BBIT): New macro.
305         * config/mips/mips.md (branch_likely): Remove const.  Fix
306         comment formatting.
307         (define_delay for type "branch"): Change to only apply for branch
308         with likely variant.
309         (define_delay for type "branch" and "branch_likely" no).  New delay
310         definition.
311         (equality_op): New code iterator.
312         (bbv, bbinv): New code attributes.
313         (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
314         patterns.
315
316 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
317             Andrew Pinski  <pinskia@gcc.gnu.org>
318
319         PR 18050
320         * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
321
322 2008-08-28  Paolo Carlini  <paolo.carlini@oracle.com>
323
324         * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
325         rule that a symbolic constant must be defined and >= 0 for the
326         corresponding facility to be present at compile-time.
327         * gthr-posix.c: Likewise.
328
329 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
330
331         * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
332         * config/mips/mips.md (D): New mode attribute.
333         (mulsi3, muldi3): Merge it into ...
334         (mul<mode>3): ... new template.  Use _mul3 ending for 3-op
335         patterns.
336         (muldi3_mul3): New pattern.
337         (mulsi3_mult3): Rename to mulsi3_mul3.
338
339 2008-08-28  Jan Hubicka  <jh@suse.cz>
340
341         * expmed.c (store_bit_field_1): Be prepared for movstrict expander
342         to fail.
343         * predict.c (always_optimize_for_size_p): Rename to ...
344         (optimize_function_for_size): ... this one; make extern.
345         (optimize_function_for_speed_p): New.
346         (optimize_bb_for_size_p, optimize_bb_for_size_p,
347         optimize_edge_for_size_p,optimize_edge_for_size_p,
348         optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
349         * basic-block.h (optimize_function_for_size_p,
350         optimize_function_for_speed_p): Declare.
351         * i386.md (optimize_size checks): Replace them by appropriate
352         predicate.
353         (standard_80387_constant_p, ix86_compute_frame_layout,
354         ix86_expand_epilogue, ix86_decompose_address,
355         print_operand, emit_i387_cw_initialization,
356         inline_memory_move_cost, ix86_pad_returns,
357         ix86_reorg): Replace optimize_size checks.
358
359 2008-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
360
361         * rtl.h (simplify_subreg_regno): Declare.
362         * rtlanal.c (simplify_subreg_regno): New function, split out from...
363         * simplify-rtx.c (simplify_subreg): ...here.
364         * reload.c (find_reloads): Use simplify_subreg_regno instead of
365         subreg_offset_representable_p.
366
367 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
368
369         PR c/30949
370         * c-typeck.c (convert_for_assignment): Give a note describing what
371         was passed and what was expected.
372
373 2008-08-28  Joey Ye  <joey.ye@intel.com>
374
375         * doc/extend.texi: Document AVX built-in functions.
376         * doc/invoke.texi: Document -mavx.
377
378 2008-08-28  H.J. Lu  <hongjiu.lu@intel.com>
379             Joey Ye  <joey.ye@intel.com>
380             Xuepeng Guo  <xuepeng.guo@intel.com>
381
382         * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
383
384         * config/i386/cpuid.h (bit_FMA): New.
385         (bit_XSAVE): Likewise.
386         (bit_OSXSAVE): Likewise.
387         (bit_AVX): Likewise.
388
389         * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
390         define.  Use ASM_OUTPUT_AVX_PREFIX.
391
392         * config/i386/gmmintrin.h: New.
393
394         * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
395         (OPTION_MASK_ISA_AVX_SET): New.
396         (OPTION_MASK_ISA_FMA_SET): Likewise.
397         (OPTION_MASK_ISA_AVX_UNSET): Likewise.
398         (OPTION_MASK_ISA_FMA_SET): Likewise.
399         (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
400         (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
401         (pta_flags): Add PTA_AVX and PTA_FMA.
402         (override_options): Handle PTA_AVX and PTA_FMA.
403         (init_cumulative_args): Handle warn_avx.
404         (classify_argument): Return 0 for COImode and OImode.  Return
405         1 and X86_64_AVX_CLASS for 256bit vector types.
406         (examine_argument): Handle X86_64_AVX_CLASS.
407         (construct_container): Likewise.
408         (function_arg_advance_32): Pass OImode and 256bit vector types
409         in AVX register.
410         (function_arg_advance_64): Take a new argument to indicate if a
411         parameter is named.  Handle 256bit vector types.  Return
412         immediately for unnamed 256bit vector mode parameters.
413         (function_arg_advance): Updated.
414         (function_arg_32): Add comments for TImode.  Handle OImode
415         and 256bit vector types.
416         (function_arg_64): Take a new argument to indicate if a
417         parameter is named.  Handle 256bit vector types.  Return NULL
418         for unnamed 256bit vector mode parameters.
419         (function_arg): Updated.
420         (setup_incoming_varargs_64): Support
421         AVX encoding for *sse_prologue_save_insn.
422         (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
423         (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
424         enabled.  For all 1s in 256bit vector modes, return 3 if AVX is
425         enabled, otherwise return -3.
426         (standard_sse_constant_opcode): Handle AVX and 256bit vector
427         modes.
428         (print_reg): Support AVX registers.  Handle 'x' and 't'.
429         Handle 'd' to duplicate the operand.
430         (print_operand): Likewise.  Also support AVX vector compare
431         instructions.
432         (output_387_binary_op): Support AVX.
433         (output_fp_compare): Likewise.
434         (ix86_expand_vector_move_misalign): Likewise.
435         (ix86_attr_length_vex_default): New.
436         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
437         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
438         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
439         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
440         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
441         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
442         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
443         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
444         IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
445         IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
446         IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
447         IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
448         IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
449         IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
450         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
451         IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
452         IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
453         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
454         IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
455         IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
456         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
457         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
458         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
459         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
460         IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
461         IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
462         IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
463         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
464         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
465         IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
466         IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
467         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
468         IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
469         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
470         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
471         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
472         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
473         IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
474         IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
475         IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
476         IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
477         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
478         IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
479         IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
480         IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
481         IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
482         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
483         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
484         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
485         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
486         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
487         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
488         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
489         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
490         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
491         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
492         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
493         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
494         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
495         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
496         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
497         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
498         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
499         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
500         and IX86_BUILTIN_MOVMSKPS256,
501         (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
502         V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
503         V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
504         V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
505         V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
506         VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
507         VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
508         VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
509         (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
510         INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
511         INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
512         INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
513         V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
514         V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
515         V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
516         V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
517         V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
518         V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
519         V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
520         V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
521         V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
522         V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
523         V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
524         V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
525         V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
526         V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
527         (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
528         IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
529         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
530         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
531         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
532         IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
533         IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
534         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
535         IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
536         IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
537         IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
538         IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
539         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
540         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
541         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
542         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
543         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
544         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
545         IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
546         IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
547         IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
548         IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
549         IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
550         IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
551         IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
552         IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
553         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
554         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
555         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
556         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
557         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
558         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
559         IX86_BUILTIN_CMPPS,
560         IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
561         IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
562         IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
563         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
564         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
565         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
566         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
567         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
568         IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
569         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
570         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
571         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
572         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
573         IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
574         IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
575         IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
576         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
577         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
578         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
579         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
580         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
581         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
582         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
583         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
584         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
585         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
586         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
587         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
588         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
589         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
590         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
591         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
592         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
593         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
594         IX86_BUILTIN_MOVMSKPS256.
595         (ix86_init_mmx_sse_builtins): Support AVX builtins.
596         (ix86_expand_args_builtin): Likewise.
597         (ix86_expand_special_args_builtin): Likewise.
598         (ix86_hard_regno_mode_ok): Handle AVX modes.
599         (ix86_expand_vector_init_duplicate): Likewise.
600         (ix86_expand_vector_init_one_nonzero): Likewise.
601         (ix86_expand_vector_init_one_var): Likewise.
602         (ix86_expand_vector_init_concat): Likewise.
603         (ix86_expand_vector_init_general): Likewise.
604         (ix86_expand_vector_set): Likewise.
605         (ix86_vector_mode_supported_p): Likewise.
606         (x86_extended_reg_mentioned_p): Check INSN_P before using
607         PATTERN.
608
609         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
610         OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
611
612         * config/i386/i386.h (TARGET_AVX): New.
613         (TARGET_FMA): Likewise.
614         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
615         (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
616         (VALID_AVX256_REG_MODE): New.
617         (AVX256_VEC_FLOAT_MODE_P): Likewise.
618         (AVX_FLOAT_MODE_P): Likewise.
619         (AVX128_VEC_FLOAT_MODE_P): Likewise.
620         (AVX256_VEC_FLOAT_MODE_P): Likewise.
621         (AVX_VEC_FLOAT_MODE_P): Likewise.
622         (ASM_OUTPUT_AVX_PREFIX): Likewise.
623         (ASM_OUTPUT_OPCODE): Likewise.
624         (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
625         support.
626         (SSE_REG_MODE_P): Allow 256bit vector modes.
627         (ix86_args): Add a warn_avx field.
628
629         * config/i386/i386.md (UNSPEC_PCMP): New.
630         (UNSPEC_VPERMIL): Likewise.
631         (UNSPEC_VPERMIL2): Likewise.
632         (UNSPEC_VPERMIL2F128): Likewise.
633         (UNSPEC_MASKLOAD): Likewise.
634         (UNSPEC_MASKSTORE): Likewise.
635         (UNSPEC_CAST): Likewise.
636         (UNSPEC_VTESTP): Likewise.
637         (UNSPECV_VZEROALL): Likewise.
638         (UNSPECV_VZEROUPPER): Likewise.
639         (XMM0_REG): Likewise.
640         (XMM1_REG): Likewise.
641         (XMM2_REG): Likewise.
642         (XMM3_REG): Likewise.
643         (XMM4_REG): Likewise.
644         (XMM5_REG): Likewise.
645         (XMM6_REG): Likewise.
646         (XMM8_REG): Likewise.
647         (XMM9_REG): Likewise.
648         (XMM10_REG): Likewise.
649         (XMM11_REG): Likewise.
650         (XMM12_REG): Likewise.
651         (XMM13_REG): Likewise.
652         (XMM14_REG): Likewise.
653         (XMM15_REG): Likewise.
654         (prefix): Likewise.
655         (prefix_vex_imm8): Likewise.
656         (prefix_vex_w): Likewise.
657         (length_vex): Likewise.
658         (maxmin): Likewise.
659         (movoi): Likewise.
660         (*avx_ashlti3): Likewise.
661         (*avx_lshrti3): Likewise.
662         (*avx_setcc<mode>): Likewise.
663         (*fop_<mode>_comm_mixed_avx): Likewise.
664         (*fop_<mode>_comm_avx): Likewise.
665         (*fop_<mode>_1_mixed_avx): Likewise.
666         (*fop_<mode>_1_avx): Likewise.
667         (*avx_<code><mode>3): Likewise.
668         (*avx_ieee_smin<mode>3): Likewise.
669         (*avx_ieee_smax<mode>3): Likewise.
670         (mode): Add OI, V8SF and V4DF.
671         (length): Support VEX prefix.
672         (*cmpfp_i_mixed): Set prefix attribute.
673         (*cmpfp_i_sse): Likewise.
674         (*cmpfp_iu_mixed): Likewise.
675         (*cmpfp_iu_sse): Likewise.
676         (*movsi_1): Support AVX.
677         (*movdi_2): Likewise.
678         (*movdi_1_rex64): Likewise.
679         (*movti_internal): Likewise.
680         (*movti_rex64): Likewise.
681         (*movsf_1): Likewise.
682         (*movdf_nointeger): Likewise.
683         (*movdf_integer_rex64): Likewise.
684         (*movtf_internal): Likewise.
685         (zero_extendsidi2_32): Likewise.
686         (zero_extendsidi2_rex64): Likewise.
687         (*extendsfdf2_mixed): Likewise.
688         (*extendsfdf2_sse): Likewise.
689         (*truncdfsf_fast_mixed): Likewise.
690         (*truncdfsf_fast_sse): Likewise.
691         (*truncdfsf_mixed): Likewise.
692         (fix_trunc<mode>di_sse): Likewise.
693         (fix_trunc<mode>si_sse): Likewise.
694         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
695         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
696         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
697         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
698         (*rcpsf2_sse): Likewise.
699         (*rsqrtsf2_sse): Likewise.
700         (*sqrt<mode>2_sse): Likewise.
701         (sse4_1_round<mode>2): Likewise.
702         (*sse_prologue_save_insn): Disallow REX prefix for AVX.
703         Support AVX.  Set length attribute properly for AVX.
704
705         * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
706         (VECTOR_MODES (FLOAT, 32)): Likewise.
707         (VECTOR_MODE (INT, DI, 8)): Likewise.
708         (VECTOR_MODE (INT, HI, 32)): Likewise.
709         (VECTOR_MODE (INT, QI, 64)): Likewise.
710         (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
711         (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
712         (VECTOR_MODE (INT, DI, 4)): Removed.
713         (VECTOR_MODE (INT, SI, 8)): Likewise.
714         (VECTOR_MODE (INT, HI, 16)): Likewise.
715         (VECTOR_MODE (INT, QI, 32)): Likewise.
716         (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
717         (INT_MODE (OI, 32)): Likewise.
718
719         * config/i386/i386.opt (mavx): New.
720         (mfma): Likewise.
721
722         * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
723
724         * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
725         (*mov<mode>_internal_avx): New.
726         (*movv2sf_internal_rex64_avx): Likewise.
727         (*movv2sf_internal_avx): Likewise.
728
729         * config/i386/predicates.md (const_4_to_5_operand): New.
730         (const_6_to_7_operand): Likewise.
731         (const_8_to_11_operand): Likewise.
732         (const_12_to_15_operand): Likewise.
733         (avx_comparison_float_operator): Likewise.
734
735         * config/i386/sse.md (AVX256MODEI): New.
736         (AVX256MODE): Likewise.
737         (AVXMODEQI): Likewise.
738         (AVXMODE): Likewise.
739         (AVX256MODEF2P): Likewise.
740         (AVX256MODE2P): Likewise.
741         (AVX256MODE4P): Likewise.
742         (AVX256MODE8P): Likewise.
743         (AVXMODEF2P): Likewise.
744         (AVXMODEF4P): Likewise.
745         (AVXMODEDCVTDQ2PS): Likewise.
746         (AVXMODEDCVTPS2DQ): Likewise.
747         (avxvecmode): Likewise.
748         (avxvecpsmode): Likewise.
749         (avxhalfvecmode): Likewise.
750         (avxscalarmode): Likewise.
751         (avxcvtvecmode): Likewise.
752         (avxpermvecmode): Likewise.
753         (avxmodesuffixf2c): Likewise.
754         (avxmodesuffixp): Likewise.
755         (avxmodesuffixs): Likewise.
756         (avxmodesuffix): Likewise.
757         (vpermilbits): Likewise.
758         (pinsrbits): Likewise.
759         (mov<mode>): Likewise.
760         (*mov<mode>_internal): Likewise.
761         (push<mode>1): Likewise.
762         (movmisalign<mode>): Likewise.
763         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
764         (avx_movdqu<avxmodesuffix>): Likewise.
765         (avx_lddqu<avxmodesuffix>): Likewise.
766         (<plusminus_insn><mode>3): Likewise.
767         (*avx_<plusminus_insn><mode>3): Likewise.
768         (*avx_vm<plusminus_insn><mode>3): Likewise.
769         (mul<mode>3): Likewise.
770         (*avx_mul<mode>3): Likewise.
771         (*avx_vmmul<mode>3): Likewise.
772         (divv8sf3): Likewise.
773         (divv4df3): Likewise.
774         (avx_div<mode>3): Likewise.
775         (*avx_div<mode>3): Likewise.
776         (*avx_vmdiv<mode>3): Likewise.
777         (avx_rcpv8sf2): Likewise.
778         (*avx_vmrcpv4sf2): Likewise.
779         (sqrtv8sf2): Likewise.
780         (avx_sqrtv8sf2): Likewise.
781         (*avx_vmsqrt<mode>2): Likewise.
782         (rsqrtv8sf2): Likewise.
783         (avx_rsqrtv8sf2): Likewise.
784         (*avx_vmrsqrtv4sf2): Likewise.
785         (<code><mode>3): Likewise.
786         (*avx_<code><mode>3_finite): Likewise.
787         (*avx_<code><mode>3): Likewise.
788         (*avx_vm<code><mode>3): Likewise.
789         (*avx_ieee_smin<mode>3): Likewise.
790         (*avx_ieee_smax<mode>3): Likewise.
791         (avx_addsubv8sf3): Likewise.
792         (avx_addsubv4df3): Likewise.
793         (*avx_addsubv4sf3): Likewise.
794         (*avx_addsubv2df3): Likewise.
795         (avx_h<plusminus_insn>v4df3): Likewise.
796         (avx_h<plusminus_insn>v8sf3): Likewise.
797         (*avx_h<plusminus_insn>v4sf3): Likewise.
798         (*avx_h<plusminus_insn>v2df3): Likewise.
799         (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
800         (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
801         (*avx_maskcmp<mode>3): Likewise.
802         (avx_nand<mode>3): Likewise.
803         (*avx_<code><mode>3): Likewise.
804         (*avx_nand<mode>3): Likewise.
805         (*avx_<code><mode>3): Likewise.
806         (*avx_cvtsi2ss): Likewise.
807         (*avx_cvtsi2ssq): Likewise.
808         (*avx_cvtsi2sd): Likewise.
809         (*avx_cvtsi2sdq): Likewise.
810         (*avx_cvtsd2ss): Likewise.
811         (avx_cvtss2sd): Likewise.
812         (avx_cvtdq2ps<avxmodesuffix>): Likewise.
813         (avx_cvtps2dq<avxmodesuffix>): Likewise.
814         (avx_cvttps2dq<avxmodesuffix>): Likewise.
815         (*avx_cvtsi2sd): Likewise.
816         (*avx_cvtsi2sdq): Likewise.
817         (avx_cvtdq2pd256): Likewise.
818         (avx_cvtpd2dq256): Likewise.
819         (avx_cvttpd2dq256): Likewise.
820         (*avx_cvtsd2ss): Likewise.
821         (*avx_cvtss2sd): Likewise.
822         (avx_cvtpd2ps256): Likewise.
823         (avx_cvtps2pd256): Likewise.
824         (*avx_movhlps): Likewise.
825         (*avx_movlhps): Likewise.
826         (avx_unpckhps256): Likewise.
827         (*avx_unpckhps): Likewise.
828         (avx_unpcklps256): Likewise.
829         (*avx_unpcklps): Likewise.
830         (avx_movshdup256): Likewise.
831         (avx_movsldup256): Likewise.
832         (avx_shufps256): Likewise.
833         (avx_shufps256_1): Likewise.
834         (*avx_shufps_<mode>): Likewise.
835         (*avx_loadhps): Likewise.
836         (*avx_storelps): Likewise.
837         (*avx_loadlps): Likewise.
838         (*avx_movss): Likewise.
839         (*vec_dupv4sf_avx): Likewise.
840         (*vec_concatv2sf_avx): Likewise.
841         (*vec_concatv4sf_avx): Likewise.
842         (*vec_setv4sf_0_avx): Likewise.
843         (*vec_setv4sf_avx): Likewise.
844         (*avx_insertps): Likewise.
845         (avx_vextractf128<mode>): Likewise.
846         (vec_extract_lo_<mode>): Likewise.
847         (vec_extract_hi_<mode>): Likewise.
848         (vec_extract_lo_<mode>): Likewise.
849         (vec_extract_hi_<mode>): Likewise.
850         (vec_extract_lo_v16hi): Likewise.
851         (vec_extract_hi_v16hi): Likewise.
852         (vec_extract_lo_v32qi): Likewise.
853         (vec_extract_hi_v32qi): Likewise.
854         (avx_unpckhpd256): Likewise.
855         (*avx_unpckhpd): Likewise.
856         (avx_movddup256): Likewise.
857         (*avx_movddup): Likewise.
858         (avx_unpcklpd256): Likewise.
859         (*avx_unpcklpd): Likewise.
860         (avx_shufpd256): Likewise.
861         (avx_shufpd256_1): Likewise.
862         (*avx_punpckhqdq): Likewise.
863         (*avx_punpcklqdq): Likewise.
864         (*avx_shufpd_<mode>): Likewise.
865         (*avx_storehpd): Likewise.
866         (*avx_loadhpd): Likewise.
867         (*avx_loadlpd): Likewise.
868         (*avx_movsd): Likewise.
869         (*vec_concatv2df_avx): Likewise.
870         (*avx_<plusminus_insn><mode>3): Likewise.
871         (*avx_<plusminus_insn><mode>3): Likewise.
872         (*avx_mulv8hi3): Likewise.
873         (*avxv8hi3_highpart): Likewise.
874         (*avx_umulv8hi3_highpart): Likewise.
875         (*avx_umulv2siv2di3): Likewise.
876         (*avx_mulv2siv2di3): Likewise.
877         (*avx_pmaddwd): Likewise.
878         (*avx_mulv4si3): Likewise.
879         (*avx_ashr<mode>3): Likewise.
880         (*avx_lshr<mode>3): Likewise.
881         (*avx_ashl<mode>3): Likewise.
882         (*avx_<code><mode>3): Likewise.
883         (*avx_eq<mode>3): Likewise.
884         (*avx_gt<mode>3): Likewise.
885         (*avx_nand<mode>3): Likewise.
886         (*avx_nand<mode>3): Likewise.
887         (*avx_<code><mode>3): Likewise.
888         (*avx_<code><mode>3): Likewise.
889         (*avx_packsswb): Likewise.
890         (*avx_packssdw): Likewise.
891         (*avx_packuswb): Likewise.
892         (*avx_punpckhbw): Likewise.
893         (*avx_punpcklbw): Likewise.
894         (*avx_punpckhwd): Likewise.
895         (*avx_punpcklwd): Likewise.
896         (*avx_punpckhdq): Likewise.
897         (*avx_punpckldq): Likewise.
898         (*avx_pinsr<avxmodesuffixs>): Likewise.
899         (*avx_pinsrq): Likewise.
900         (*avx_loadld): Likewise.
901         (*vec_extractv2di_1_rex64_avx): Likewise.
902         (*vec_extractv2di_1_avx): Likewise.
903         (*vec_dupv2di_avx): Likewise.
904         (*vec_concatv2si_avx): Likewise.
905         (*vec_concatv4si_1_avx): Likewise.
906         (*vec_concatv2di_avx): Likewise.
907         (*vec_concatv2di_rex64_avx): Likewise.
908         (*avx_uavgv16qi3): Likewise.
909         (*avx_uavgv8hi3): Likewise.
910         (*avx_psadbw): Likewise.
911         (avx_movmskp<avxmodesuffixf2c>256): Likewise.
912         (*avx_phaddwv8hi3): Likewise.
913         (*avx_phadddv4si3): Likewise.
914         (*avx_phaddswv8hi3): Likewise.
915         (*avx_phsubwv8hi3): Likewise.
916         (*avx_phsubdv4si3): Likewise.
917         (*avx_phsubswv8hi3): Likewise.
918         (*avx_pmaddubsw128): Likewise.
919         (*avx_pmulhrswv8hi3): Likewise.
920         (*avx_pshufbv16qi3): Likewise.
921         (*avx_psign<mode>3): Likewise.
922         (*avx_palignrti): Likewise.
923         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
924         (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
925         (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
926         (*avx_mpsadbw): Likewise.
927         (*avx_packusdw): Likewise.
928         (*avx_pblendvb): Likewise.
929         (*avx_pblendw): Likewise.
930         (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
931         (avx_ptest256): Likewise.
932         (avx_roundp<avxmodesuffixf2c>256): Likewise.
933         (*avx_rounds<ssemodesuffixf2c>): Likewise.
934         (*avx_aesenc): Likewise.
935         (*avx_aesenclast): Likewise.
936         (*avx_aesdec): Likewise.
937         (*avx_aesdeclast): Likewise.
938         (avx_vzeroupper): Likewise.
939         (avx_vzeroupper_rex64): Likewise.
940         (avx_vpermil<mode>): Likewise.
941         (avx_vpermilvar<mode>3): Likewise.
942         (avx_vpermil2<mode>3): Likewise.
943         (avx_vperm2f128<mode>3): Likewise.
944         (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
945         (avx_vbroadcastss256): Likewise.
946         (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
947         (avx_vinsertf128<mode>): Likewise.
948         (vec_set_lo_<mode>): Likewise.
949         (vec_set_hi_<mode>): Likewise.
950         (vec_set_lo_<mode>): Likewise.
951         (vec_set_hi_<mode>): Likewise.
952         (vec_set_lo_v16hi): Likewise.
953         (vec_set_hi_v16hi): Likewise.
954         (vec_set_lo_v32qi): Likewise.
955         (vec_set_hi_v32qi): Likewise.
956         (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
957         (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
958         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
959         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
960         (vec_init<mode>): Likewise.
961         (*vec_concat<mode>_avx): Likewise.
962         (blendbits): Support V8SF and V4DF.
963         (sse2_movq128): Support AVX.
964         (<sse>_movnt<mode>): Likewise.
965         (sse2_movntv2di): Likewise.
966         (sse_rcpv4sf2): Likewise.
967         (sse_sqrtv4sf2): Likewise.
968         (sse_rsqrtv4sf2): Likewise.
969         (<sse>_comi): Likewise.
970         (<sse>_ucomi): Likewise.
971         (sse_cvtss2si): Likewise.
972         (sse_cvtss2si_2): Likewise.
973         (sse_cvtss2siq): Likewise.
974         (sse_cvtss2siq_2): Likewise.
975         (sse_cvttss2si): Likewise.
976         (sse_cvttss2siq): Likewise.
977         (sse2_cvtsd2si): Likewise.
978         (sse2_cvtsd2si_2): Likewise.
979         (sse2_cvtsd2siq): Likewise.
980         (sse2_cvtsd2siq_2): Likewise.
981         (sse2_cvttsd2si): Likewise.
982         (sse2_cvttsd2siq): Likewise.
983         (sse2_cvtdq2pd): Likewise.
984         (*sse2_cvtpd2dq): Likewise.
985         (*sse2_cvttpd2dq): Likewise.
986         (*sse2_cvtpd2ps): Likewise.
987         (sse2_cvtps2pd): Likewise.
988         (sse3_movshdup): Likewise.
989         (sse3_movsldup): Likewise.
990         (sse_storehps): Likewise.
991         (*sse4_1_extractps): Likewise.
992         (sse2_storelpd): Likewise.
993         (vec_dupv2df_sse3): Likewise.
994         (*vec_concatv2df_sse3): Likewise.
995         (*sse4_1_pextrb): Likewise.
996         (*sse4_1_pextrb_memory): Likewise.
997         (*sse2_pextrw): Likewise.
998         (*sse4_1_pextrw_memory): Likewise.
999         (*sse4_1_pextrd): Likewise.
1000         (*sse4_1_pextrq): Likewise.
1001         (sse2_pshufd_1): Likewise.
1002         (sse2_pshuflw_1): Likewise.
1003         (sse2_pshufhw_1): Likewise.
1004         (*sse2_storeq_rex64): Likewise.
1005         (*vec_dupv4si): Likewise.
1006         (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
1007         (sse2_pmovmskb): Likewise.
1008         (*sse2_maskmovdqu): Likewise.
1009         (*sse2_maskmovdqu_rex64): Likewise.
1010         (sse_ldmxcsr): Likewise.
1011         (sse_stmxcsr): Likewise.
1012         (abs<mode>2): Likewise.
1013         (sse4_1_movntdqa): Likewise.
1014         (sse4_1_phminposuw): Likewise.
1015         (sse4_1_extendv8qiv8hi2): Likewise.
1016         (*sse4_1_extendv8qiv8hi2): Likewise.
1017         (sse4_1_extendv4qiv4si2): Likewise.
1018         (*sse4_1_extendv4qiv4si2): Likewise.
1019         (sse4_1_extendv2qiv2di2): Likewise.
1020         (*sse4_1_extendv2qiv2di2): Likewise.
1021         (sse4_1_extendv4hiv4si2): Likewise.
1022         (*sse4_1_extendv4hiv4si2): Likewise.
1023         (sse4_1_extendv2hiv2di2): Likewise.
1024         (*sse4_1_extendv2hiv2di2): Likewise.
1025         (sse4_1_extendv2siv2di2): Likewise.
1026         (*sse4_1_extendv2siv2di2): Likewise.
1027         (sse4_1_zero_extendv8qiv8hi2): Likewise.
1028         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
1029         (sse4_1_zero_extendv4qiv4si2): Likewise.
1030         (*sse4_1_zero_extendv4qiv4si2): Likewise.
1031         (sse4_1_zero_extendv2qiv2di2): Likewise.
1032         (*sse4_1_zero_extendv2qiv2di2): Likewise.
1033         (sse4_1_zero_extendv4hiv4si2): Likewise.
1034         (*sse4_1_zero_extendv4hiv4si2): Likewise.
1035         (sse4_1_zero_extendv2hiv2di2): Likewise.
1036         (*sse4_1_zero_extendv2hiv2di2): Likewise.
1037         (sse4_1_zero_extendv2siv2di2): Likewise.
1038         (*sse4_1_zero_extendv2siv2di2): Likewise.
1039         (sse4_1_ptest): Likewise.
1040         (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
1041         (sse4_2_pcmpestri): Likewise.
1042         (sse4_2_pcmpestrm): Likewise.
1043         (sse4_2_pcmpistri): Likewise.
1044         (sse4_2_pcmpistrm): Likewise.
1045         (aesimc): Likewise.
1046         (aeskeygenassist): Likewise.
1047
1048 2008-08-28  Uros Bizjak  <ubizjak@gmail.com>
1049
1050         * config/i386/predicates.md (vzeroall_operation): New.
1051
1052         * config/i386/sse.md (avx_vzeroall): New.
1053         (*avx_vzeroall): Likewise.
1054
1055 2008-08-28  Paul Brook  <paul@codesourcery.com>
1056             Mark Shinwell  <shinwell@codesourcery.com>
1057             Richard Earnshaw  <richard.earnshaw@arm.com>
1058
1059         * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
1060         (TARGET_MIN_ANCHOR_OFFSET): New.
1061         (arm_override_options): Set correct anchor ranges for Thumb-1
1062         and Thumb-2 if required.
1063         (legitimize_pic_address): Handle case involving a TLS symbol
1064         reference with an addend.
1065         (arm_optimization_options): Enable section anchors at -O1 and
1066         above.
1067         * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
1068         * config/arm/arm-protos.h (arm_optimization_options): New.
1069
1070 2008-08-28  Nick Clifton  <nickc@redhat.com>
1071
1072         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
1073         * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
1074         attribute.
1075
1076         * config/v850/v850.h (IRA_COVER_CLASSES): Define.
1077         * config/v850/v850.md (return): Remove frame size restriction.  
1078
1079         * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
1080
1081         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
1082
1083         * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
1084
1085         * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
1086
1087 2008-08-28  Paul Brook  <paul@codesourcery.com>
1088
1089         * config/arm/vfp11.md: Update license notice.
1090         * config/arm/cortex-r4.md: Ditto.
1091
1092 2008-08-28  Richard Guenther  <rguenther@suse.de>
1093
1094         PR tree-optimization/37207
1095         * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
1096         tuplification bug.
1097
1098 2008-08-28  Dodji Seketeli  <dodji@redhat.com>
1099
1100         PR c++/36741
1101         * tree.c (int_fits_type_p): Don't forget unsigned integers
1102           of type sizetype which higher end word equals -1.
1103
1104 2008-08-28  Ira Rosen  <irar@il.ibm.com>
1105
1106         * target.h (struct vectorize): Add new target builtin.
1107         * tree-vectorizer.c (destroy_loop_vec_info): Call 
1108         vect_free_slp_instance instead of vect_free_slp_node.
1109         * tree-vectorizer.h (enum slp_load_perm_type): New.
1110         (struct _slp_instance): Add new fields.
1111         (SLP_INSTANCE_LOAD_PERMUTATION): New.
1112         (SLP_INSTANCE_LOADS): New.
1113         (vect_free_slp_tree): Remove.
1114         (vect_free_slp_instance): Declare.        
1115         (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
1116         (vectorizable_load): Add argument.
1117         (vect_transform_slp_perm_load): New.
1118         * tree-vect-analyze.c (vect_analyze_operations): Add an argument to 
1119         vectorizable_load.
1120         (vect_get_place_in_interleaving_chain): New function.
1121         (vect_free_slp_tree): Make static.
1122         (vect_free_slp_instance): New function.
1123         (vect_build_slp_tree): Add new arguments. Allow load permutations and 
1124         collect the load location in the interleaving chain.
1125         (vect_supported_slp_permutation_p): New function.
1126         (vect_supported_load_permutation_p): Likewise.
1127         (vect_analyze_slp_instance): In case of loads permutation, call
1128         vect_supported_load_permutation_p to check that the permutation is 
1129         supported.
1130         * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
1131         * tree-vect-transform.c (vect_transform_stmt): Add new argument.
1132         (vect_create_mask_and_perm): New function.
1133         (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
1134         (vectorizable_load): Add an argument. Don't keep the created vectors  
1135         statements in the node if permutation is required. Call 
1136         vect_transform_slp_perm_load to generate the permutation.
1137         (vect_transform_stmt): Add new argument. Call vectorizable_load with 
1138         additional argument.
1139         (vect_schedule_slp_instance): In case of loads permutation, allocate  
1140         vectorized statements structure for all the related SLP nodes. Call 
1141         vect_transform_stmt with addditional argument.
1142         (vect_transform_loop): Call vect_transform_stmt with correct arguments. 
1143         * config/spu/spu.c (spu_builtin_vec_perm): New. 
1144         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
1145         * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
1146         * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
1147         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
1148
1149 2008-08-28  Chris Fairles  <chris.fairles@gmail.com>
1150
1151         * gthr-posix.h (__gthread_create,  __gthread_join, __gthread_detach,
1152         __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
1153         __gthread_cond_signal, __gthread_cond_timedwait,
1154         __gthread_cond_timedwait_recursive): New functions.
1155         * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
1156         Likewise.
1157         * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
1158         thread interfaces.
1159
1160 2008-08-28  Richard Guenther  <rguenther@suse.de>
1161
1162         PR middle-end/37005
1163         * fold-const.c (maybe_canonicalize_comparison_1): Require
1164         undefined overflow only for canonicalizing A +- CST cmp CST.
1165         Make sure to not generate new constants that are not inside
1166         their TYPE_MIN/MAX_VALUE range.
1167         (maybe_canonicalize_comparison): Remove undefined overflow
1168         checking from here.
1169         (fold_binary): Remove now duplicate folding.
1170
1171 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
1172
1173         * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
1174         use not updated in the last change.
1175
1176 2008-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1177
1178         * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
1179         (IRA_COVER_CLASSES): Add FPUL_REGS.
1180
1181 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1182
1183         PR 37217
1184         * c-common.c (conversion_warning): Check for null operands.
1185
1186 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1187
1188         PR c/31673
1189         * c-decl.c (check_for_loop_decls): Improve error message. Give
1190         hint.
1191
1192 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1193
1194         PR c/37186
1195         * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
1196         (convert_for_assignment): Pass corrent OPT_W* parameter to
1197         WARN_FOR_ASSIGNMENT.
1198
1199 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
1200
1201         PR c++/35321
1202         * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
1203
1204 2008-08-27  Paul Brook  <paul@codesourcery.com>
1205
1206         * config.gcc: Loosen checks for arm uclinux eabi targets.
1207
1208 2008-08-27  Paul Brook  <paul@codesourcery.com>
1209
1210         * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
1211         _clzsi2.
1212         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
1213
1214 2008-08-26  Douglas Gregor  <doug.gregor@gmail.com>
1215
1216         * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
1217         the enumerators of an ENUMERAL_TYPE.
1218         * dbxout.c (dbxout_type): Ditto.
1219
1220 2008-08-26  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1221
1222         PR rtl-opt/37219
1223         * fwprop.c (fwprop): Check that the loop_father is the outer loop.
1224         (fwprop_addr): Check that the loop_father is not the outer loop.
1225
1226 2008-08-26  Paul Brook  <paul@codesourcery.com>
1227
1228         * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
1229         Remove documentation entry for fmul type.
1230         Use fmuls to annotate single-precision multiplication patterns,
1231         fmuld to annotate double-precision multiplication patterns,
1232         fmacs to annotate single-precision multiply-accumulate patterns
1233         and fmacd to annotate double-precision multiply-accumulate patterns.
1234         * config/arm/vfp11.md: Update reservations accordingly.
1235         * config/arm/arm.md: Note that certain values of the "type"
1236         attribute are documented in vfp.md.
1237         * config/arm/arm1020e.md: Remove out of date duplicate comment.
1238         (v10_cvt): Use new fmul types.
1239
1240 2008-08-26  Paul Brook   <paul@codesourcery.com>
1241
1242         * config/arm/vfp.md: Move pipeline description for VFP11 to...
1243         * config/arm/vfp11.md: ...here.  New.
1244         * config/arm/arm.md: Include vfp11.md.
1245
1246 2008-08-26  Hans-Peter Nilsson  <hp@axis.com>
1247
1248         * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
1249         parameter to inform call.
1250
1251 2008-08-26  Jeff Law  <law@redhat.com>
1252
1253         * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
1254         avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
1255         preferred class when copying a constant into a partial word register.
1256
1257 2008-08-26  Ben Elliston  <bje@au.ibm.com>
1258
1259         * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
1260         * cp/typeck.c: Likewise.
1261         * cp/tree.c: Likewise.
1262         * gimple-low.c: Likewise.
1263         * jump.c: Likewise.
1264
1265 2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>
1266
1267         * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
1268         ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
1269
1270         * doc/passes.texi: Describe IRA.
1271
1272         * doc/tm.texi (IRA_COVER_CLASSES,
1273         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
1274
1275         * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
1276         (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
1277         -fira-propagate-cost, -fno-ira-share-save-slots,
1278         -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
1279
1280         * flags.h (ira_algorithm): New enumeration.
1281         (flag_ira_algorithm, flag_ira_verbose): New external variable
1282         declarations.
1283
1284         * postreload.c (gate_handle_postreload): Don't do post reload
1285         optimizations unless the reload is completed.
1286
1287         * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
1288         IRA.
1289
1290         * tree-pass.h (pass_ira): New external variable declaration.
1291
1292         * reload.h: Add 2008 to the Copyright.
1293     
1294         * cfgloopanal.c: Include params.h.
1295         (estimate_reg_pressure_cost): Decrease cost for IRA optimization
1296         mode.
1297     
1298         * params.h (IRA_MAX_LOOPS_NUM): New macro.
1299
1300         * toplev.c (ira.h): New include.
1301         (flag_ira_algorithm, flag_ira_verbose): New external variables.
1302         (backend_init_target): Call ira_init.
1303         (backend_init): Call ira_init_once.
1304         (finalize): Call finish_ira_once.
1305
1306         * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
1307         flag_ira_share_save_slots, flag_ira_share_spill_slots): New
1308         external variables.
1309
1310         * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
1311         may_move_out_cost): New external variable declarations.
1312         (move_table): New typedef.
1313     
1314         * caller-save.c: Include headers output.h and ira.h.
1315         (no_caller_save_reg_set): New global variable.
1316         (save_slots_num, save_slots): New variables.
1317         (reg_save_code, reg_restore_code, add_stored_regs): Add
1318         prototypes.
1319         (init_caller_save): Set up no_caller_save_reg_set.
1320         (init_save_areas): Reset save_slots_num.
1321         (saved_hard_reg): New structure.
1322         (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
1323         (initiate_saved_hard_regs, new_saved_hard_reg,
1324         finish_saved_hard_regs, saved_hard_reg_compare_func): New
1325         functions.
1326         (setup_save_areas): Add code for sharing stack slots.
1327         (all_blocks): New variable.
1328         (save_call_clobbered_regs): Process pseudo-register too.
1329         (mark_set_regs): Process pseudo-register too.
1330         (insert_one_insn): Put the insn after bb note in a empty basic
1331         block.  Add insn check.
1332     
1333         * global.c (eliminable_regset): Make it external.
1334         (mark_elimination): Use DF_LR_IN for IRA.
1335         (pseudo_for_reload_consideration_p): New.
1336         (build_insn_chain): Make it external.  Don't ignore spilled
1337         pseudos for IRA.  Use pseudo_for_reload_consideration_p.
1338         (gate_handle_global_alloc): New function.
1339         (pass_global_alloc): Add the gate function.
1340
1341         * opts.c (decode_options): Set up flag_ira.  Print the warning for
1342         -fira.
1343         (common_handle_option): Process -fira-algorithm and -fira-verbose.
1344
1345         * timevar.def (TV_IRA, TV_RELOAD): New passes.
1346
1347         * regmove.c (regmove_optimize): Don't do replacement of output for
1348         IRA.
1349
1350         * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
1351         New external variable declarations.
1352
1353         * local-alloc.c (update_equiv_regs): Make it external.  Return
1354         true if jump label rebuilding should be done.  Rescan new_insn for
1355         notes.
1356         (gate_handle_local_alloc): New function.
1357         (pass_local_alloc): Add the gate function.
1358
1359         * alias.c (value_addr_p, stack_addr_p): New functions.
1360         (nonoverlapping_memrefs_p): Use them for IRA.
1361
1362         * common.opt (fira, fira-algorithm, fira-coalesce,
1363         fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
1364         fira-verbose): New options.
1365
1366         * regclass.c (reg_class_subclasses, contains_reg_of_mode,
1367         move_cost, may_move_in_cost, may_move_out_cost): Make the
1368         variables external.
1369         (move_table): Remove typedef.
1370         (init_move_cost): Make it external.
1371         (allocate_reg_info, resize_reg_info, setup_reg_classes): New
1372         functions.
1373
1374         * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
1375         setup_reg_classes): New function prototypes.
1376         (eliminable_regset): New external variable declaration.
1377         (build_insn_chain, update_equiv_regs): New function prototypes.
1378     
1379         * Makefile.in (IRA_INT_H): New definition.
1380         (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
1381         ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
1382         (reload1.o, toplev.o): Add dependence on ira.h.
1383         (cfgloopanal.o): Add PARAMS_H.
1384         (caller-save.o): Add dependence on output.h and ira.h.
1385         (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
1386         ira-emit.o, ira-lives.o): New entries.
1387
1388         * passes.c (pass_ira): New pass.
1389
1390         * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
1391
1392         * reload1.c (ira.h): Include the header.
1393         (changed_allocation_pseudos): New bitmap.
1394         (init_reload): Initiate the bitmap.
1395         (compute_use_by_pseudos): Permits spilled registers in FROM.
1396         (temp_pseudo_reg_arr): New variable.
1397         (reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
1398         IRA.  Call alter_reg with the additional parameter.  Don't clear
1399         spilled_pseudos for IRA.  Restore original insn chain for IRA.
1400         Clear changed_allocation_pseudos at the end of reload.
1401         (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
1402         (hard_regno_to_pseudo_regno): New variable.
1403         (count_pseudo): Check spilled pseudos.  Set up
1404         hard_regno_to_pseudo_regno.
1405         (count_spilled_pseudo): Check spilled pseudos. Update
1406         hard_regno_to_pseudo_regno.
1407         (find_reg): Use better_spill_reload_regno_p.  Check
1408         hard_regno_to_pseudo_regno.
1409         (alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
1410         code for IRA.
1411         (eliminate_regs_1): Use additional parameter for alter_reg.
1412         (finish_spills): Set up pseudo_previous_regs only for spilled
1413         pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
1414         more arguments.  Don't clear live_throughout and dead_or_set for
1415         spilled pseudos.  Use additional parameter for alter_reg.  Call
1416         mark_allocation_change.  Set up changed_allocation_pseudos.
1417         Remove sanity check.
1418         (emit_input_reload_insns, delete_output_reload): Use additional
1419         parameter for alter_reg.  Call mark_allocation_change.
1420         (substitute, gen_reload_chain_without_interm_reg_p): New
1421         functions.
1422         (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
1423     
1424         * testsuite/gcc.dg/20080410-1.c: New file.
1425         
1426         * config/s390/s390.h (IRA_COVER_CLASSES,
1427         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
1428
1429         * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
1430
1431         * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
1432
1433         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
1434
1435         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
1436
1437         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
1438     
1439         * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
1440     
1441         2008-08-24  Jeff Law  <law@redhat.com>
1442         * ira.c (setup_reg_class_intersect_union): Prefer smallest class
1443         when ignoring unavailable registers.
1444
1445         2008-08-24  Jeff Law  <law@redhat.com>
1446         * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
1447         FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
1448         * ira.c (setup_eliminable_regset): Check stack_realign_needed.
1449         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
1450
1451         2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
1452         * ira-build.c (allocno_range_compare_func): Stabilize sort.
1453
1454         2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
1455         * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
1456         * reload1.c (find_reg): Process registers in register allocation order.
1457
1458         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
1459         * toplev.c (backend_init_target): Move ira_init call from
1460         here...
1461         (lang_dependent_init_target): ...to here.
1462
1463         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
1464         * ira.c (setup_class_subset_and_memory_move_costs): Don't
1465         calculate memory move costs for NO_REGS.
1466
1467         2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
1468         * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
1469         STACK_REGS is defined.
1470
1471         2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
1472         * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
1473
1474         2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
1475         * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
1476
1477         2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
1478         * config/sh/sh.h (IRA_COVER_CLASSES): Define.
1479         * config/sh/sh.md (movsicc_true+3): Check if emit returns a
1480         barrier.
1481
1482 2008-08-26  Victor Kaplansky  <victork@il.ibm.com>
1483             Dorit Nuzman  <dorit@il.ibm.com>
1484
1485         * gcc/config/spu/spu.md (vec_extract_evenv4si,
1486         vec_extract_evenv4sf, vec_extract_evenv8hi,
1487         vec_extract_evenv16qi, vec_extract_oddv4si,
1488         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
1489         vec_interleave_highv4sf, vec_interleave_lowv4sf,
1490         vec_interleave_highv4si, vec_interleave_lowv4si,
1491         vec_interleave_highv8hi, vec_interleave_lowv8hi,
1492         vec_interleave_highv16qi, vec_interleave_lowv16qi,
1493         vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
1494
1495 2008-08-25  Janis Johnson  <janis187@us.ibm.com>
1496
1497         PR target/36756
1498         * config/rs6000/rs6000.c (optimization_options): Don't default to
1499         section anchors without toplevel reorder.
1500
1501 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1502
1503         * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
1504         (mfc_end_critical_section): Likewise.
1505
1506 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1507
1508         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
1509         all type qualifiers from element type to vector type.
1510
1511 2008-08-25  David Daney  <ddaney@avtrex.com>
1512
1513         * config/mips/mips.md (immediate_insn): Move up in file, fix
1514         comment typo, reformat.
1515         (fetchop_bit, atomic_hiqi_op memory_barrier,
1516         sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
1517         sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
1518         sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
1519         sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
1520         sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
1521         sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
1522         sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
1523         sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
1524         sync_old_nand<mode>, sync_new_nand<mode>,
1525         sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
1526         test_and_set_12): Moved to sync.md.
1527         (sync.md): Include.
1528         * config/mips/sync.md: New file.
1529
1530 2008-08-25  Richard Henderson  <rth@redhat.com>
1531
1532         * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
1533         (regsave): Likewise.
1534         (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
1535         (output_cfi_directive): Likewise.
1536         (div_data_align): New.
1537         (output_cfi): Use it.
1538
1539 2008-08-24  Adam Nemet  <anemet@caviumnetworks.com>
1540
1541         * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
1542         * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
1543         (TARGET_OCTEON): New macro.
1544         (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
1545         (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
1546         (ISA_HAS_POP): New macro.
1547         * config/mips/driver-native.c (host_detect_local_cpu): Handle
1548         Octeon.
1549         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
1550         Handle Octeon.
1551         * config/mips/mips.md (cpu): Add octeon.
1552         (type): Add pop attribute value.
1553         (popcount<mode>2): New pattern.
1554         * doc/invoke.texi (-march=@var{arch}): Add octeon.
1555
1556 2008-08-24  Jan Hubicka  <jh@suse.cz>
1557
1558         * doc/invoke.texi (-fipa-cp-clone): New option.
1559         (-fipa-cp): Update docs.
1560         (--param ipcp-unit-growth):New.
1561         * ipa-cp.c: Include fibheap.h, params.h
1562         (ipcp_initialize_node_lattices): When not cloning, all externally
1563         visible functions are bottom.
1564         (ipcp_need_redirect_p): Accept clones.
1565         (ipcp_insert_stage): Use cost driven heuristics.
1566         (max_count, dead_nodes): New static vars.
1567         (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
1568         ipcp_const_param_count): New functions.
1569         * common.opt (ipa-cp-clone): New command line option.
1570         * params.def (ipcp-unit-growth): New.
1571
1572 2008-08-24  Jan Hubicka  <jh@suse.cz>
1573
1574         * tree-inline.c (tree_function_versioning): Look harder
1575         for referenced vars.
1576
1577 2008-08-24  Razya Ladelsky  <razya@il.ibm.com>
1578
1579         PR tree-optimization/37185
1580         * matrix-reorg.c (transform_access_sites): Update changed stmt.
1581
1582 2008-08-23  Jan Hubicka  <jh@suse.cz>
1583
1584         * ipa-cp.c (ipcp_analyze_node): New function.
1585         (ipcp_update_cloned_node): Use it.
1586         (ipcp_init_stage): Likewise.
1587         * ipa-inline.c (function_insertion_hook_holder): New static var.
1588         (analyze_function): Break out from ....
1589         (inline_generate_summary): Here; register insertion hook.
1590         (cgraph_decide_inlining): Remove hook.
1591         (add_new_function): New function.
1592
1593 2008-08-23  Jan Hubicka  <jh@suse.cz>
1594
1595         * opts.c (decode_options): Revert accidental change enabling ipa-cp.
1596
1597 2008-08-23  Jan Hubicka  <jh@suse.cz>
1598
1599         * ipa-cp.c (constant_val_insert): Remove.
1600         (ipcp_propagate_one_const): Remove.
1601         (ipcp_create_replace_map): Always insert replacements to the map.
1602         (ipcp_insert_stage): Do not try to insert statements by hand.
1603         * tree-inline.c (insert_init_stmt): Break out from ...
1604         (setup_one_parameter): ... here; allow NULL BB pointer.
1605         (tree_function_versioning): Use setup_one_parameter to process
1606         replacement map.
1607
1608 2008-08-23  Jan Hubicka  <jh@suse.cz>
1609
1610         * tree.c (decl_address_ip_invariant_p): New function.
1611         * tree.h (decl_address_ip_invariant_p): Declare.
1612         * gimple.c (strip_invariant_refs): Break out from ...
1613         (is_gimple_invariant_address): ... here
1614         (is_gimple_ip_invariant_address): New function.
1615         (is_gimple_ip_invariant): New function.
1616         * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
1617         Declare.
1618
1619         * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
1620         (ipcp_lat_is_insertable): All constants are insertable.
1621         (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
1622         IPA_CONST_VALUE_REF.
1623         (ipcp_initialize_node_lattices): Propagate all types of operands.
1624         (build_const_val): Do not handle IPA_CONST_VALUE_REF.
1625         (ipcp_create_replace_map): Reformat.
1626         (ipcp_need_redirect_p): Simplify.
1627         (ipcp_insert_stage): Check that argument is used before clonning.
1628         * ipa-prop.c (ipa_print_node_jump_functions): Do not handle IPA_CONST_REF.
1629         (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
1630         (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
1631         (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
1632         * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
1633         (jump_func_type): Remove IPA_CONST_VALUE_REF.
1634         * tree-inline.c (tree_function_versioning): Add variables referenced by
1635         replacing trees.
1636
1637 2008-08-23  Jan Hubicka  <jh@suse.cz>
1638
1639         PR target/37094
1640         * i386.c (standard_80387_constant_p): Use optimize_size.
1641
1642 2008-08-23  Ira Rosen  <irar@il.ibm.com>
1643
1644         PR tree-optimization/37161
1645         * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
1646         * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
1647         (vect_determine_vectorization_factor): Move the scalar type
1648         retrieval to vect_get_smallest_scalar_type.
1649         (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
1650         scalar type. Remove redundant computation.
1651         * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
1652         (vect_get_slp_defs): Take the type of RHS into account if
1653         necessary by calling vect_get_smallest_scalar_type. Call
1654         vect_get_constant_vectors with additional argument.
1655
1656 2008-08-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1657
1658         PR 35648
1659         * doc/invoke.texi (Wwrite-strings): Clarify description.
1660         
1661 2008-08-23  Ira Rosen  <irar@il.ibm.com>
1662
1663         PR tree-optimization/37174
1664         * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
1665         def stmt is a part of the loop before accessing its stmt_vec_info.
1666
1667 2008-08-22  Anatoly Sokolov  <aesok@post.ru>
1668
1669         PR target/11259
1670         * config/avr/avr.md (UNSPEC_SWAP): New constants.
1671         (*swap): New insn pattern.
1672         (*ashlqi3): Rename from ashlqi3 insn pattern.
1673         (ashlqi3): New expanders.
1674         (*lshrqi3): Rename from lshrqi3 insn pattern.
1675         (lshrqi3): New expanders.       
1676         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
1677         lshrqi3_const5, lshrqi3_const6): New splitters.
1678         (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
1679         lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
1680         peephole2 patterns.
1681
1682 2008-08-22  Richard Guenther  <rguenther@suse.de>
1683
1684         PR tree-optimization/37078
1685         * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
1686         [+INF, +INF] ranges.
1687
1688 2008-08-22  Richard Guenther  <rguenther@suse.de>
1689
1690         PR tree-optimization/37143
1691         * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
1692         a conversion statement instead of a copy.
1693
1694 2008-08-22  Uros Bizjak  <ubizjak@gmail.com>
1695
1696         PR target/37184
1697         * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
1698         CCCmode, CCOmode and CCSmode destination modes.
1699
1700         PR target/37191
1701         * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
1702         from different units in a single alternative.
1703         (*vec_extractv2sf_1): Ditto.
1704         (*vec_extractv2si_0): Ditto.
1705         (*vec_extractv2si_1): Ditto.
1706         * config/i386/sse.md (sse2_storehpd): Ditto.
1707         (sse2_storelpd): Ditto.
1708         (sse2_loadhpd): Ditto.
1709         (sse2_loadlpd): Ditto.
1710
1711         PR target/37197
1712         * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
1713         (popcountsi2): Ditto.
1714         (clzdi2_abm): Ditto.
1715         (popcountdi2): Ditto.
1716         (clzhi2_abm): Ditto.
1717         (popcounthi2): Ditto.
1718
1719 2008-08-22  Richard Guenther  <rguenther@suse.de>
1720
1721         PR middle-end/36548
1722         PR middle-end/37125
1723         * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
1724         if the multiplication does not overflow.
1725
1726 2008-08-21  Nathan Sidwell  <nathan@codesourcery.com>
1727
1728         * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
1729
1730 2008-08-21  Richard Henderson  <rth@redhat.com>
1731
1732         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
1733         spurrious comma from test.
1734         * configure: Rebuild.
1735
1736 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1737
1738         PR 30457
1739         * builtins.c (fold_builtin_next_arg): Add warning about undefined
1740         behaviour.
1741         
1742 2008-08-21  Aldy Hernandez  <aldyh@redhat.com>
1743
1744         * c-tree.h (grokfield): New argument.
1745         * c-decl.c (grokfield): Handle new location argument.
1746         * c-parser.c (c_parser_struct_declaration): Pass location to
1747         grokfield.
1748
1749 2008-08-21  Richard Guenther  <rguenther@suse.de>
1750
1751         * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
1752
1753 2008-08-21  Jan Hubicka  <jh@suse.cz>
1754
1755         * cgraph.c (first_cgraph_function_insertion_hook): New variable.
1756         (cgraph_add_function_insertion_hook,
1757         cgraph_remove_function_insertion_hook,
1758         cgraph_call_function_insertion_hooks): New functions.
1759         * cgraph.h (cgraph_add_function_insertion_hook,
1760         cgraph_remove_function_insertion_hook,
1761         cgraph_call_function_insertion_hooks): Declare.
1762         * ipa-reference.c (function_insertion_hook_holder): New variable.
1763         (check_operand, look_for_address_of): When checking late, do not care
1764         about module bitmaps.
1765         (add_new_function): New function.
1766         (generate_summary): Register hooks; zero module bitmaps.
1767         (propagate): Unregister hooks.
1768         * ipa-pure-const.c (function_insertion_hook_holder): New variable.
1769         (add_new_function): New function.
1770         (generate_summary): Register hook.
1771         (propagate): Remove hook.
1772
1773         * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
1774
1775         * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
1776         * ipa-cp.c (ipcp_update_cloned_node): New function.
1777         (build_const_val): Handle functions correctly; bring type logic
1778         into sync with tree-inline.c
1779         (ipcp_init_stage):  Take care of computing stuff needed by
1780         indirect inlining; update clones.
1781         (ipcp_generate_summary): Break out of ipcp_driver.
1782         (ipcp_driver): Do only execution and transformation.
1783         (pass_ipa_cp): Make IPA_PASS.
1784         * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
1785         offset to address.
1786         * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
1787         ipcp, some info is already available.
1788         * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
1789         * tree-inline.c (remap_ssa_name): Unshare expression.
1790
1791 2008-08-21  Richard Guenther  <rguenther@suse.de>
1792
1793         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
1794         a PHI ask VN if it is already available.
1795         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
1796         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
1797
1798 2008-08-21  Richard Guenther  <rguenther@suse.de>
1799
1800         PR middle-end/36817
1801         * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
1802         makes sure to produce a result of the correct type.
1803
1804 2008-08-21  Jan Hubicka  <jh@suse.cz>
1805         Backport from LTO branch:
1806
1807         2008-05-05  Kenneth Zadeck <zadeck@naturalbridge.com>
1808                     Jan Hubicka  <jh@suse.cz>
1809         
1810         * ipa-pure-const.c
1811         (init_state, finish_state, set_function_state, generate_summary):
1812         New functions.
1813         (scan_stmt): Renamed from scan_function.  Changed to keep state in
1814         local static vars rather than cgraph aux field.
1815         (propagate): Renamed from static_execute. Changed to keep state in
1816         local static vars rather than cgraph aux field.
1817         (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
1818         * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
1819
1820         2008-07-15  Kenneth Zadeck <zadeck@naturalbridge.com>
1821
1822         * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
1823         * ipa-reference.c (init_function_info, generate_summary, 
1824         propagate): New functions.
1825         (analyze_function):  Call init_function_info.
1826         (static_execute): Stripped into generate_summary and propagate.
1827         (pass_ipa_reference): Made into ipa_opt_pass.
1828
1829 2008-08-21  Richard Guenther  <rguenther@suse.de>
1830
1831         PR tree-optimization/37181
1832         * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
1833         folding result.
1834         (extract_range_from_unary_expr): Likewise.
1835
1836 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1837
1838         * diagnostic.c (pedwarn_at): Rename as pedwarn.
1839         (pedwarn): Delete.
1840         * toplev.h (pedwarn_at): Likewise.
1841         * builtins.c: Update all calls to pedwarn.
1842         * c-lex.c: Likewise.
1843         * toplev.c: Likewise.
1844         * c-tree.h: Likewise.
1845         * c-decl.c: Likewise.
1846         * c-errors.c: Likewise.
1847         * c-typeck.c: Likewise.
1848         * c-common.c: Likewise.
1849         * c-parser.c: Likewise.
1850
1851 2008-08-20  Joseph Myers  <joseph@codesourcery.com>
1852
1853         PR target/31070
1854         * config/sparc/sparc.c (function_arg_slotno): Handle structure
1855         with MODE_VECTOR_INT mode.
1856
1857 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1858
1859         PR middle-end/179
1860         * tree-ssa.c (warn_uninit): Do not warn for variables that can be
1861         initialized outside the current module.
1862         (warn_uninitialized_var): Ignore left-hand side when walking the
1863         trees. Ignore address expressions. Examine VUSE operands in gimple
1864         statements with a variable declaration on the right-hand side.
1865
1866 2008-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
1867
1868         PR bootstrap/37155
1869         * rtlanal.c (subreg_offset_representable_p): Revert last change.
1870
1871 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1872
1873         PR 35701
1874         * c-common.c (conversion_warning): Do not warn if applying bit-and
1875         operator to unsigned constant that fits in the target type.
1876
1877 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1878
1879         PR c++/35602
1880         * c-common.c (conversion_warning): Do not warn for artificial
1881         expressions.
1882
1883 2008-08-20  Richard Guenther  <rguenther@suse.de>
1884
1885         * tree-vrp.c (op_with_constant_singleton_value_range): New function.
1886         (extract_range_from_binary_expr): Fall back to constant propagation.
1887         (extract_range_from_unary_expr): Likewise.
1888
1889 2008-08-20  Richard Guenther  <rguenther@suse.de>
1890
1891         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
1892         with TREE_THIS_VOLATILE on shared nodes.
1893         (fold_stmt_r): Likewise.
1894
1895 2008-08-20  Jakub Jelinek  <jakub@redhat.com>
1896
1897         PR c/37171
1898         * c-parser.c (c_parser_attributes): For keywords use canonical
1899         spelling for attr_name.
1900
1901 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1902
1903         * value-prof.c (check_counter): Revert wrong call to error.
1904         
1905 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1906
1907         * profile.c: Update calls to inform.
1908         * value-prof.c: Update calls to inform.
1909         
1910 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1911
1912         * diagnostic.c (inform): Add an explicit location_t parameter.
1913         * toplev.h (inform): Update declaration.
1914         * builtins.c: Update all calls to inform.
1915         * c-common.c: Likewise.
1916         * c-decl.c: Likewise.
1917         * c-opts.c: Likewise.
1918         * c-pch.c: Likewise.
1919         * c-pragma.c: Likewise.
1920         * c-typeck.c: Likewise.
1921         * coverage.c: Likewise.
1922         * opts.c: Likewise.
1923         * toplev.c: Likewise.
1924         * tree-cfg.c: Likewise.
1925         * tree-ssa.c: Likewise.
1926
1927 2008-08-20  H.J. Lu  <hongjiu.lu@intel.com>
1928
1929         PR target/37169
1930         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
1931         V2DI mode, for SSE4.1, use movq instead of vector set if the
1932         second element is zero and inter-unit moves are OK.
1933
1934 2008-08-20  Richard Guenther  <rguenther@suse.de>
1935
1936         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
1937         properly handle conversion/copy chains after tuplification.
1938
1939 2008-08-20  Richard Guenther  <rguenther@suse.de>
1940
1941         * passes.c (init_optimization_passes): Move the second
1942         forwprop pass before alias computation.  Remove the second
1943         DCE pass.  Remove the first dominator and phi copy/const
1944         prop passes.
1945
1946 2008-08-20  Nick Clifton  <nickc@redhat.com>
1947
1948         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
1949         support of this feature.  Do not assume that a sufficiently new
1950         assembler will support the feature regardless of the target type.
1951         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
1952         * configure: Regenerate.
1953
1954 2008-08-20  Richard Guenther  <rguenther@suse.de>
1955
1956         * tree-vrp.c (found_in_subgraph): Remove.
1957         (live): New global static.
1958         (live_on_edge): New function.
1959         (blocks_visited): Remove.
1960         (register_edge_assert_for_2): Use live_on_edge.
1961         (find_conditional_asserts): Remove code dealing with
1962         found_in_subgraph.  Do not walk the CFG.
1963         (find_switch_asserts): Likewise.
1964         (find_assert_locations_1): Renamed from find_assert_locations.
1965         Move finding assert locations for conditional and switch
1966         statements first.  Update live bitmap.  Do not walk the CFG.
1967         (find_assert_locations): New function.
1968         (insert_range_assertions): Remove entry of CFG walk.
1969         Adjust call to find_assert_locations.
1970         * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
1971         that only can appear because of fake exit edges but assert we
1972         never try to insert on those.
1973         (fini_pre): Do not remove fake exit edges here...
1974         (execute_pre): ...but here, before committing edge inserts.
1975
1976 2008-08-19  Richard Guenther  <rguenther@suse.de>
1977
1978         * passes.c (init_optimization_passes): Exchange store-ccp
1979         with a ccp pass.
1980
1981 2008-08-19  Rafael Espindola  <espindola@google.com>
1982
1983         * varasm.c (weak_decls): Move earlier in the file.
1984         (assemble_external): Add weak decls to the weak_decls list.
1985         (declare_weak): Don't add decls to the weak_decls list.
1986
1987 2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>
1988
1989         PR target/37157
1990         * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
1991         before (sse2_shufpd_<mode>).
1992
1993 2008-08-19  Jakub Jelinek  <jakub@redhat.com>
1994
1995         PR debug/37156
1996         * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
1997         * tree.c (block_nonartificial_location): Likewise.
1998
1999 2008-08-19  Richard Guenther  <rguenther@suse.de>
2000
2001         PR tree-optimization/35972
2002         PR tree-optimization/23094
2003         * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
2004         parameter.
2005         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
2006         handle MISALIGNED_INDIRECT_REF.
2007         (get_ref_from_reference_ops): New helper.
2008         (vn_reference_lookup_pieces): Walk the use-def chain using the
2009         alias-oracle if requested.
2010         * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
2011         walking the use-def chain.
2012         (compute_avail): But not here.
2013         (create_component_ref_by_pieces_1): Properly handle
2014         MISALIGNED_INDIRECT_REF.
2015         (do_regular_insertion): Handle fully redundant
2016         expressions after PHI-translation also for SSA_NAME values, not
2017         only constants.  Correctly use edoubleprime for that.
2018
2019 2008-08-19  Ira Rosen  <irar@il.ibm.com>
2020
2021         * tree-vectorizer.c (supportable_widening_operation): Support
2022         multi-step conversion, return the number of steps in such conversion
2023         and the required intermediate types.
2024         (supportable_narrowing_operation): Likewise.
2025         * tree-vectorizer.h (vect_pow2): New function.
2026         (supportable_widening_operation): Change argument types.
2027         (supportable_narrowing_operation): Likewise.
2028         (vectorizable_type_promotion): Add an argument.
2029         (vectorizable_type_demotion): Likewise.
2030         * tree-vect-analyze.c (vect_analyze_operations): Call 
2031         vectorizable_type_promotion and vectorizable_type_demotion with
2032         additional argument.
2033         (vect_get_and_check_slp_defs): Detect patterns.
2034         (vect_build_slp_tree): Add an argument, don't fail in case of multiple
2035         types. 
2036         (vect_analyze_slp_instance): Don't fail in case of multiple types. Call
2037         vect_build_slp_tree with correct arguments. Calculate unrolling factor
2038         according to the smallest type in the loop.
2039         (vect_detect_hybrid_slp_stmts): Include statements from patterns.
2040         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call 
2041         supportable_widening_operation with correct arguments. 
2042         * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector 
2043         operands lists according to the number of vector statements in left
2044         or right node, if exists.
2045         (vect_gen_widened_results_half): Remove unused argument.
2046         (vectorizable_conversion): Call supportable_widening_operation, 
2047         supportable_narrowing_operation, and vect_gen_widened_results_half
2048         with correct arguments. 
2049         (vectorizable_assignment): Change documentation, support multiple
2050         types in SLP. 
2051         (vectorizable_operation): Likewise.
2052         (vect_get_loop_based_defs): New function.
2053         (vect_create_vectorized_demotion_stmts): Likewise.
2054         (vectorizable_type_demotion): Support loop-aware SLP and general
2055         multi-step conversion. Call vect_get_loop_based_defs and
2056         vect_create_vectorized_demotion_stmts for transformation.
2057         (vect_create_vectorized_promotion_stmts): New function.
2058         (vectorizable_type_promotion): Support loop-aware SLP and general
2059         multi-step conversion. Call vect_create_vectorized_promotion_stmts
2060         for transformation.     
2061         (vectorizable_store): Change documentation, support multiple
2062         types in SLP. 
2063         (vectorizable_load): Likewise.
2064         (vect_transform_stmt): Pass SLP_NODE to 
2065         vectorizable_type_promotion and vectorizable_type_demotion.
2066         (vect_schedule_slp_instance): Move here the calculation of number
2067         of vectorized statements for each node from...
2068         (vect_schedule_slp): ... here.
2069         (vect_transform_loop): Call vect_schedule_slp without the last
2070         argument.
2071
2072 2008-08-19  Dorit Nuzman  <dorit@il.ibm.com>
2073
2074         PR bootstrap/37152
2075         * tree-vect-transform.c (vect_create_epilog_for_reduction): Change = 
2076         to == in assert statement.
2077         (vectorizable_reduction): Fix typo.
2078
2079 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
2080
2081         PR bootstrap/37153
2082         * value-prof.c (check_counter): Dereference pointer to overall
2083         count when printing it.
2084
2085 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
2086
2087         * profile.h: Really add it.
2088
2089 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
2090
2091         * mcf.c: Really add it.
2092
2093 2008-08-18  Paul Yuan  <yingbo.com@gmail.com>
2094             Vinodha Ramasamy  <vinodha@google.com>
2095
2096         * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
2097         count_scale.
2098         * value-prof.c (check_counter): Fix the counter if
2099         flag_profile_correction is true.
2100         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
2101         tree_mod_subtract_transform):
2102         Follow check_counter parameter change.
2103         * common.opt (fprofile-correction): New option.
2104         * mcf.c: New file.
2105         * profile.h: Likewise.
2106         * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
2107         (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
2108         is_inconsistent, set_bb_counts, read_profile_edge_counts): New
2109         functions.
2110         (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
2111         flag_profile_correction is set.
2112
2113 2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
2114
2115         * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
2116
2117 2008-08-18  Tomas Bily  <tbily@suse.cz>
2118
2119         * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
2120         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
2121         CONVERT_EXPR_P.
2122         * tree-data-ref.c (split_constant_offset_1): Likewise.
2123         * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
2124         * tree-sra.c (sra_walk_expr): Likewise.
2125         * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
2126         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
2127         * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
2128         * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
2129         Likewise.
2130         * gimple.c (gimple_assign_unary_nop_p): Likewise.
2131         * tree-vect-transform.c (vectorizable_type_demotion)
2132         (vectorizable_type_promotion): Likewise.
2133         * tree-inline.c (expand_call_inline): 
2134         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
2135         (forward_propagate_addr_expr_1, forward_propagate_comparison)
2136         (tree_ssa_forward_propagate_single_use_vars): Likewise.
2137         * expr.c (expand_expr_real_1): Likewise.
2138         * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
2139         (gimple_assign_unary_useless_conversion_p): Likewise.
2140         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
2141         * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
2142         * fold-const.c (fold_unary): Likewise.
2143         * tree.h (CONVERT_EXPR_P): Likewise.
2144         * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
2145         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
2146         * tree-vrp.c: 
2147         (register_edge_assert_for_2, extract_range_from_unary_expr)
2148         (register_edge_assert_for_1): Likewise.
2149         
2150 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2151
2152         * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
2153         dconst_third_ptr, dconst_sqrt2_ptr): Declare.
2154         (enum real_value_const): Delete.
2155         (get_real_const): Delete.
2156         * real.c (get_real_const): Delete.
2157         (dconst_e_ptr): Define.
2158         (dconst_third_ptr): Define.
2159         (dconst_sqrt2_ptr): Define.
2160         * builtins.c: Update all callers.
2161
2162 2008-08-18  Richard Guenther  <rguenther@suse.de>
2163
2164         * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
2165         statement iterator after statement removal.
2166
2167 2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>
2168
2169         * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
2170         (detect_processor_freebsd): Likewise.
2171         (host_detect_local_cpu): Call newly added functions for FreeBSD.
2172
2173 2008-08-18  Richard Guenther  <rguenther@suse.de>
2174
2175         * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
2176         and loads have the correct types.
2177
2178 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2179
2180         PR cpp/7263
2181         * c-opts.c (cpp_opts): Remove static.
2182         * c-parser.c (cpp_opts): Declare it extern.
2183         (disable_extension_diagnostics): Handle cpp options.
2184         (enable_extension_diagnostics): Likewise.
2185
2186 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2187
2188         * diagnostics.c (permerror_at): Rename as permerror.
2189         (permerror): Delete.
2190         * toplev.h: Likewise.
2191
2192 2008-08-18  Richard Guenther  <rguenther@suse.de>
2193
2194         * passes.c (init_optimization_passes): Remove cleanup_cfg1,
2195         sdse1 and addressables2 passes.  Replace dce1 with cddce1.
2196         Move call_cdce before build_alias.  Move copyrename2,
2197         cunrolli and ccp2 beafore build_alias.  Re-add addressable2
2198         right after final inlining.
2199         * tree-cfg.c (build_gimple_cfg): Do not dump function here.
2200         (pass_build_cfg): But instead via TODO_dump_func.
2201
2202 2008-08-18  Richard Guenther  <rguenther@suse.de>
2203
2204         * tree-sra.c (generate_element_init_1): Deal with NULL constructor
2205         element index.
2206         (scalarize_init): If we failed to generate some initializers
2207         do not generate zeros for not instantiated members.  Instead
2208         rely on the copy out.
2209         * tree-ssa-operands.c (get_addr_dereference_operands): Warn
2210         about missing flow-sensitive alias info only if we have
2211         aliases computed.
2212
2213 2008-08-17  Nick Clifton  <nickc@redhat.com>
2214
2215         * doc/extend.texi (Function Attributes): Fix typo in description
2216         if hot function attribute.
2217
2218 2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
2219             Richard Sandiford  <rdsandiford@googlemail.com>
2220
2221         * doc/install.texi (--with-mips-plt): Document.
2222         * doc/invoke.texi (-mplt, -mno-plt): Document.
2223         * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
2224         and handle ${with_mips_plt}.
2225         * config/mips/mips.opt (mplt): New option.
2226         * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
2227         (TARGET_ABICALLS_PIC2): Likewise.
2228         (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
2229         (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
2230         (ASM_SPEC): Use !mabi=* instead of !mabi*.
2231         (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
2232         to decide whether to output ".option picX" directives.
2233         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
2234         Pass -call_nonpic rather than -KPIC for -mplt.
2235         (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
2236         on the command line.  Also remove it when -mabi=64 is used without
2237         -msym32.
2238         * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
2239         * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
2240         TARGET_ABICALLS_PIC0.
2241         (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
2242         TARGET_ABICALLS.
2243         (mips16_build_function_stub): Only output ".option pic" directives
2244         and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
2245         (mips16_build_call_stub): Fix comment and remove redundant
2246         ".set at"/"set .noat" directives.
2247         (mips_function_rodata_section): Use the default behaviour for
2248         TARGET_ABSOLUTE_ABICALLS.
2249         (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
2250         (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
2251         (mips_restore_gp): Do nothing if the current function doesn't use
2252         a global pointer.
2253         (mips_expand_prologue): Only save $gp if the current function uses it.
2254         Use a normal move for TARGET_ABICALLS_PIC0.
2255         (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
2256
2257 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
2258
2259         * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
2260         of function when handling GLOBAL_POINTER_REGNUM.
2261
2262 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
2263
2264         PR ada/20548
2265         * common.opt (-fstack-check): Do not declare the variable here.
2266         (-fstack-check=): New option variant.
2267         * doc/invoke.texi (Code Gen Options): Document it.
2268         * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
2269         (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
2270         (STACK_CHECK_STATIC_BUILTIN): New macro.
2271         * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
2272         * opts.c: Include expr.h.
2273         (common_handle_option) <OPT_fold_stack_check_>: New case.
2274         <OPT_fstack_check>: Likewise.
2275         * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
2276         consistently in the test for variable-sized types.  Adjust for
2277         new behaviour of flag_stack_check.
2278         * explow.c: Include except.h.
2279         (allocate_dynamic_stack_space): Do not take into account
2280         STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
2281         * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
2282         for variable-sized parameters.  Treat all parameters whose size is
2283         greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
2284         stack checking is enabled.
2285         * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
2286         size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
2287         if generic stack checking is enabled.
2288         (expand_function_end): Adjust for new behaviour of flag_stack_check.
2289         * reload1.c (reload): Likewise.
2290         * stmt.c (expand_decl): Assert that all automatic variables have
2291         fixed size at this point and remove dead code.
2292         * flags.h (stack_check_type): New enumeration type.
2293         (flag_stack_check): Declare.
2294         * toplev.c (flag_stack_check): New global variable.
2295         * Makefile.in (opts.o): Add dependency on EXPR_H.
2296         (explow.o): Add dependency on except.h.
2297
2298 2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>
2299
2300         * config/avr/avr.c (avr_override_options): Reduce value of 
2301         PARAM_INLINE_CALL_COST.
2302
2303 2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>
2304
2305         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
2306         to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
2307         lieu of TYPE_MODE (type) throughout.
2308
2309 2008-08-15  Joseph Myers  <joseph@codesourcery.com>
2310
2311         * config/arm/arm.c (add_minipool_backward_ref): Check for
2312         8-byte-aligned entries in second case of forcing insertion after a
2313         particular entry.  Change third case to avoid inserting
2314         non-8-byte-aligned entries before 8-byte-aligned ones.
2315
2316 2008-08-15  Richard Guenther  <rguenther@suse.de>
2317
2318         * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
2319         strip components for unknown size accesses.
2320
2321 2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
2322
2323         * config/s390/2097.md New file.
2324         * config/s390/s390.md ("z10prop" attribute): Define none,
2325         z10_super, z10_super_E1, z10_super_A1, z10_super_c,
2326         z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
2327         z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
2328         possible values and apply them to insns as appropriate.
2329         ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
2330         ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
2331         fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
2332         fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible
2333         values.
2334         ("bfp" mode attribute): Removed.  Every occurence replaced
2335         with <mode>.
2336         * config/s390/s390.c (struct "z10_cost"): Updated entries.
2337         * config/s390/2084.md (insn_reservation "x_itof"): Updated
2338           type attribute.
2339
2340 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2341
2342         PR c/28152
2343         * c-parser.c (c_lex_one_token): Do not store the canonical spelling
2344         for keywords.
2345         
2346 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
2347
2348         * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
2349         additional argument. Support reduction when duplication is needed due
2350         to data-types of different sizes in the loop.
2351         (get_initial_def_for_induction): Fix printout.
2352         (vect_get_vec_def_for_stmt_copy): Support case where the
2353         vec_stmt_for_operand is a phi node.
2354         (vectorizable_reduction): Support reduction when duplication is needed 
2355         due to data-types of different sizes in the loop.
2356         (vectorizable_call): Remove restriction to not vectorize in case we 
2357         have data-types of different sizes in the loop.
2358         (vectorizable_conversion): Likewise.
2359         (vectorizable_operation): Likewise.
2360         (vectorizable_type_demotion): Likewise.
2361         (vectorizable_type_promotion): Likewise.
2362         (vectorizable_induction): Add restriction to not vectorize in case 
2363         we have data-types of different sizes in the loop.
2364
2365 2008-08-14  Christophe Saout  <christophe@saout.de>
2366             Uros Bizjak  <ubizjak@gmail.com>
2367
2368         PR target/37101
2369         * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
2370         (*vec_concatv2di_rex64_sse4_1): Ditto.
2371         (*vec_concatv2di_rex64_sse): Ditto.
2372
2373 2008-08-14  Jakub Jelinek  <jakub@redhat.com>
2374
2375         PR middle-end/37103
2376         * fold-const.c (fold_widened_comparison): Do not allow
2377         sign changes that change the result even if shorter type
2378         is wider than arg1_unw's type.
2379
2380 2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
2381
2382         * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
2383         Skip if the multilib testing specifies -march that does not
2384         agree with the one specified in the testcase.
2385
2386 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
2387
2388         * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
2389         zero extend SImode values being converted to TFmode before passing
2390         to libcalls.
2391
2392 2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2393
2394         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
2395         __PPU__ when targeting the Cell/B.E. PPU processor.
2396
2397 2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
2398
2399         * gimple.h (gimple_call_set_chain): Accept SSA variables.
2400         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
2401         Rematerialize the static chain, if any.
2402         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
2403         static chain.
2404
2405 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
2406
2407         * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
2408         (new_loc_descr): Likewise.
2409         (add_loc_descr): Likewise.
2410         (size_of_loc_descr): Likewise.
2411         (size_of_locs): Likewise.
2412         (output_loc_operands): Likewise.
2413         (output_loc_sequence): Likewise.
2414         (new_reg_loc_descr): New.
2415         (build_cfa_loc): Use it.
2416         (build_cfa_aligned_loc): Likewise.
2417         (one_reg_loc_descriptor): Likewise.
2418         (based_loc_descr): Likewise.
2419
2420 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2421
2422         PR 30551
2423         * doc/invoke.texi (Wmain): Update.
2424         * c-decl.c (start_decl): warn_main is only 0 or 1.
2425         (start_function): Likewise. Fix formatting.
2426         (finish_function): Delete redundant warning.
2427         * c.opt (Wmain): Add Var(warn_main) and Init(-1).
2428         * c-opts (c_common_handle_option): -Wall only has effect if
2429         warn_main is uninitialized. OPT_Wmain is automatically
2430         handled. -pedantic also enables Wmain.
2431         (c_common_post_options): Handle all logic for Wmain here.
2432         * c-common.c (warn_main): Delete.
2433         (check_main_parameter_types): Make pedwarns conditional on
2434         OPT_Wmain.
2435         * c-common.h (warn_main): Delete.
2436
2437 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
2438
2439         PR middle-end/36701
2440         * expr.c (emit_group_store): Allocate stack temp with the
2441         largest alignment when copying from register to stack.
2442
2443 2008-08-13  Richard Guenther  <rguenther@suse.de>
2444
2445         * tree.h (maybe_fold_offset_to_address): Declare.
2446         * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
2447         (ccp_fold): Handle pointer conversions the same as fold_stmt.
2448         Likewise for POINTER_PLUS_EXPR.
2449         (maybe_fold_offset_to_reference): Enable disabled code.
2450         (maybe_fold_offset_to_address): New function.
2451         (fold_stmt_r): Use it.
2452         (fold_gimple_assign): Likewise.
2453         * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
2454         (gimplify_expr): Likewise.
2455
2456 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2457
2458         * toplev.h (pedwarn_at): Fix declaration.
2459         
2460 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
2461
2462         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
2463         LINK_SPEC): Use %R in -Y P argument.
2464
2465 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2466
2467         PR c/15236
2468         * diagnostic.c (pedwarn_at): New.
2469         * toplev.h (pedwarn_at): Declare.
2470         * c-tree.h (build_enumerator): Update declaration.
2471         * c-decl.c (finish_enum): Update comment.
2472         (build_enumerator): Take a location parameter. Give a pedwarn but do
2473         not perform any conversion.
2474         * c-parser.c (c_parser_enum_specifier): Set correct location for
2475         enumerator.
2476
2477 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2478
2479         PR 35635
2480         * c-common.c (conversion_warning): Use a switch. Ignore boolean
2481         expressions except for conversions to signed:1 bitfields. Handle
2482         COND_EXPR with constant operands.
2483         
2484 2008-08-13  Richard Guenther  <rguenther@suse.de>
2485
2486         PR tree-optimization/15255
2487         * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
2488         (struct oecount_s): New struct and VEC types.
2489         (cvec): New global.
2490         (oecount_hash): New function.
2491         (oecount_eq): Likewise.
2492         (oecount_cmp): Likewise.
2493         (zero_one_operation): New function.
2494         (build_and_add_sum): Likewise.
2495         (undistribute_ops_list): Perform un-distribution of multiplication
2496         and division on the chain of summands.
2497         (should_break_up_subtract): Also break up subtracts for factors.
2498         (reassociate_bb): Delete dead visited statements.
2499         Call undistribute_ops_list.  Re-sort and optimize if it did something.
2500         * passes.c (init_optimization_passes): Move DSE before
2501         reassociation.
2502         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
2503         PHI nodes.
2504
2505 2008-08-12  Janis Johnson  <janis187@us.ibm.com>
2506
2507         * doc/invoke.texi (-fipa-pta): Say the option is experimental.
2508
2509         * doc/invoke.texi: Revert unintended checkin.
2510
2511 2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
2512
2513         PR libgomp/26165
2514         * gcc.c (include_spec_function): Tweak call to find_a_file.
2515
2516 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
2517
2518         PR middle-end/37014
2519         * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
2520         and TRUTH_ORIF_EXPR.
2521         * dojump.c (do_jump): Likewise.
2522
2523         PR tree-optimization/37084
2524         * tree-inline.c (copy_bb): Call gimple_regimplify_operands
2525         if id->regimplify, don't assume stmt is a cast assignment.
2526
2527 2008-08-12  Anatoly Sokolov  <aesok@post.ru>
2528
2529         * final.c (final_scan_insn): Use app_enable/app_disable functions.
2530
2531 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2532
2533         PR bootstrap/37097
2534         * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
2535         by last change.
2536
2537 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2538
2539         * defaults.h (TARGET_FLOAT_FORMAT): Remove.
2540         (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
2541
2542         * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
2543         * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
2544         * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
2545         * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
2546         * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
2547
2548         * doc/tm.texi (Storage Layout): Remove documentation for
2549         TARGET_FLOAT_FORMAT.
2550
2551         * simplify-rtx.c (simplify_binary_operation_1): Replace
2552         TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
2553
2554 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2555
2556         * real.h (struct real_format): New member has_sign_dependent_rounding.
2557         * real.c (ieee_single_format, mips_single_format, motorola_single_format,
2558         spu_single_format, ieee_double_format, mips_double_format,
2559         motorola_double_format, ieee_extended_motorola_format,
2560         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
2561         ieee_extended_intel_96_round_53_format, ibm_extended_format,
2562         mips_extended_format, ieee_quad_format, mips_quad_format,
2563         vax_f_format, vax_d_format, vax_g_format): Initialize it.
2564         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
2565
2566         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
2567         MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
2568         * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
2569         MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
2570         (ROUND_TOWARDS_ZERO): Likewise.
2571
2572         * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
2573         (FLOAT_MODE_FORMAT): New macro.
2574         (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
2575         (MODE_COMPOSITE_P): ... this new macro.
2576         (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
2577         MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
2578         * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
2579
2580         * flags.h: Include "real.h".
2581
2582         * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
2583         REAL_MODE_FORMAT_COMPOSITE_P.
2584         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
2585
2586         * doc/tm.texi (Storage Layout): Remove documentation of
2587         MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
2588         MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
2589         ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
2590         they only apply to libgcc2.a.
2591
2592 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2593
2594         * config/spu/float_disf.c: New file.
2595         * config/spu/float_unsdisf.c: New file.
2596         * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
2597         (LIB2FUNCS_EXCLUDE): Define.
2598
2599 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2600             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2601
2602         * real.h (struct real_format): New member round_towards_zero.
2603         * real.c (round_for_format): Respect fmt->round_towards_zero.
2604         (ieee_single_format, mips_single_format, motorola_single_format,
2605         spu_single_format, ieee_double_format, mips_double_format,
2606         motorola_double_format, ieee_extended_motorola_format,
2607         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
2608         ieee_extended_intel_96_round_53_format, ibm_extended_format,
2609         mips_extended_format, ieee_quad_format, mips_quad_format,
2610         vax_f_format, vax_d_format, vax_g_format): Initialize it.
2611         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
2612
2613         * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
2614         real_format to choose rounding mode when calling MPFR functions.
2615         (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
2616         (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
2617
2618         * real.h (real_to_decimal_for_mode): Add prototype.
2619         * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
2620         Respect target rounding mode when generating decimal representation.
2621         (real_to_decimal): New stub for backwards compatibility.
2622         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
2623         real_to_decimal_for_mode instead of real_to_decimal.
2624
2625         * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
2626
2627 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2628             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2629
2630         * real.c (spu_single_format): New variable.
2631         * real.h (spu_single_format): Declare.
2632
2633         * config/spu/spu.c (spu_override_options): Install SFmode format.
2634         (spu_split_immediate): Use integer mode to operate on pieces of
2635         floating-point values in all cases.
2636
2637         * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
2638         ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
2639         ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
2640
2641 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2642
2643         * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
2644
2645 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2646
2647         * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
2648
2649 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
2650
2651         PR c++/36688
2652         * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
2653         on the VAR_DECL instead of TYPE_READONLY on its type.
2654
2655 2008-08-12  Ira Rosen  <irar@il.ibm.com>
2656
2657         * tree-vectorizer.c: Depend on langhooks.h.
2658         (supportable_widening_operation): Add two arguments. Support double
2659         type conversions.
2660         (supportable_narrowing_operation): Likewise.
2661         * tree-vectorizer.h (supportable_widening_operation): Add two 
2662         arguments.
2663         (supportable_narrowing_operation): Likewise.
2664         * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
2665         supportable_widening_operation with correct arguments.
2666         * tree-vect-transform.c (vectorizable_conversion): Likewise.
2667         (vectorizable_type_demotion): Support double type conversions.
2668         (vectorizable_type_promotion): Likewise.
2669         * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
2670
2671 2008-08-11  Michael Matz  <matz@suse.de>
2672
2673         * i386/i386.c (override_options): Move initialisation from
2674         flag_schedule_insns_after_reload to here from ...
2675         (optimization_options): ... here.
2676
2677 2008-08-11  Jakub Jelinek  <jakub@redhat.com>
2678
2679         PR rtl-optimization/36998
2680         * dwarf2out.c (compute_barrier_args_size_1,
2681         compute_barrier_args_size): Temporarily remove assertions.
2682
2683 2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2684
2685         PR middle-end/20644
2686         * tree-ssa.c (struct walk_data): Add new flag
2687         warn_possibly_uninitialized.
2688         (warn_uninitialized_var): Use it.
2689         (warn_uninitialized_vars): New.
2690         (execute_early_warn_uninitialized): Call it.
2691         (execute_late_warn_uninitialized): Likewise.
2692
2693 2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2694
2695         PR middle-end/36238
2696         * reload1.c (gen_reload): Guard calls to get_secondary_mem
2697         for memory subregs.
2698
2699 2008-08-09  Jan Hubicka  <jh@suse.cz>
2700
2701         PR target/37055
2702         * optabs.c (maybe_emit_unop_insn): Remove produced code if
2703         expansion failed.
2704         (expand_fix): Be prepared for expansion to fail.
2705         (expand_sfix_optab): Remove instructions if expansion failed.
2706
2707 2008-08-09  Anatoly Sokolov  <aesok@post.ru>
2708
2709         * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
2710         avr31 architecture.
2711         * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
2712         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2713
2714 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2715
2716         * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
2717         mips/t-libgcc-mips16 to tmake_file.
2718         * config/mips/mips-protos.h (mips_call_type): New enum.
2719         (mips_pic_base_register, mips_got_load): Declare.
2720         (mips_restore_gp): Take an rtx argument.
2721         (mips_use_pic_fn_addr_reg_p): Declare.
2722         (mips_expand_call): Replace the sibcall_p argument with
2723         a mips_call_type argument.  Add a lazy_p parameter.
2724         (mips_split_call): Declare.
2725         * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
2726         (MIPS16_PIC_TEMP): Likewise.
2727         (reg_class): Delete M16_NA_REGS.
2728         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
2729         (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
2730         (mips_split_hi_p): Declare.
2731         * config/mips/mips.c (mips_split_hi_p): New array.
2732         (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
2733         (mips_got_symbol_type_p): New function.
2734         (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
2735         (mips16_stub_function_p): New function.
2736         (mips16_local_function_p): Likewise.
2737         (mips_use_pic_fn_addr_reg_p): Likewise.
2738         (mips_cannot_force_const_mem): Return false for HIGHs.
2739         Extend CONST_INT and symbolic handling to MIPS16, using
2740         mips_symbol_insns to check that the base symbol type is a
2741         legitimate constant.  Reject GOT-based constants if
2742         TARGET_MIPS16_PCREL_LOADS.
2743         (mips_const_insns): Check targetm.cannot_force_const_mem when
2744         decomposing a symbolic base and a large offset.
2745         (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
2746         When calling a function that needs $25 from MIPS16 code,
2747         move the target address into $25 separately and add a USE
2748         to the call insn.
2749         (mips16_gp_pseudo_reg): Insert the initializer immediately
2750         before the first real insn.
2751         (mips_pic_base_register, mips_got_load): New functions.
2752         (mips_split_symbol): Generalize the name of the LO_SUM_OUT
2753         parameter to LOW_OUT.  Say that it can be any valid SET_SRC
2754         when splitting a load-address operation.  Split SYMBOL_GOT_DISP
2755         constants and highs of SYMBOL_GOT_PAGE_OFST constants.
2756         (mips_call_tls_get_addr): Update the call to mips_expand_call,
2757         also passing NULL_RTX rather than const0_rtx as the aux argument.
2758         (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
2759         instead of TARGET_EXPLICIT_RELOCS.
2760         (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
2761         (mips_load_call_address): Replace the sibcall_p argument with
2762         a mips_call_type argument.  Use mips_got_load.
2763         (mips16_local_alias): New structure.
2764         (mips16_local_aliases): New variable.
2765         (mips16_local_aliases_hash): New function.
2766         (mips16_local_aliases_eq): Likewise.
2767         (mips16_local_alias): Likewise.
2768         (mips16_stub_function): Likewise.
2769         (mips16_build_function_stub): Create a local alias for the target
2770         function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
2771         .cpload directive and an R_MIPS_NONE relocation for the target
2772         function, then load the alias rather than the function itself.
2773         Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
2774         (mips16_copy_fpr_return_value): Use mips16_stub_function and
2775         mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
2776         (mips16_build_call_stub): Replace the FN parameter with an
2777         FN_PTR parameter.  Force the address into a register if it
2778         isn't a call_insn_operand; don't rely on the caller to do this.
2779         If a call to a locally-defined and locally-binding MIPS16
2780         function must be made indirectly, redirect the call to the
2781         function's local alias.  Use mips16_stub_function_p,
2782         mips16_stub_function, mips_expand_call and use_reg.
2783         Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
2784         Use explicit %hi and %lo accesses where possible.
2785         Use MIPS_CALL to generate the correct code form of a
2786         jal instruction.  Add clobbers of $18 instead of uses.
2787         Update the call to mips_emit_call_insn.
2788         (mips_expand_call): Replace the SIBCALL_P argument with a
2789         mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
2790         Take a LAZY_P parameter.  Call mips16_build_call_stub first,
2791         allowing it to modify the call address.  Update the calls to
2792         mips_load_call_address and mips_emit_call_insn.
2793         (mips_split_call): New function.
2794         (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
2795         !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
2796         SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
2797         (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
2798         (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
2799         if TARGET_MIPS16.
2800         (mips_cprestore_slot): New function.
2801         (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
2802         and use mips_cprestore_slot.
2803         (mips_output_function_prologue): Handle TARGET_MIPS16 for
2804         LOADGP_OLDABI.
2805         (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
2806         then use a copygp_mips16 instruction to set up $28.
2807         (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
2808         (mips16_lay_out_constants): Call split_all_insns_noflow.
2809         (mips_reorg_process_insns): Explicitly set all_noreorder_p to
2810         false if TARGET_MIPS16.
2811         (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
2812         (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
2813         mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
2814         (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
2815         MIPS16 code.  Allow MIPS16 o32 PIC.
2816         (mips_override_options): Allow MIPS16 o32 PIC.
2817         * config/mips/mips.md: Lower CONST_GP_P moves into register moves
2818         after reload if TARGET_USE_GOT.
2819         (UNSPEC_COPYGP): New constant.
2820         (length): Use a default length of 8 for MIPS16 GOT loads.
2821         (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
2822         (*got_page<mode>): Check mips_split_hi_p.
2823         (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
2824         (unspec_got<mode>, unspec_call<mode>): New expanders.
2825         (load_got<mode>, load_call<mode>): Remove the length attributes.
2826         Use a got attribute instead of a type attribute.
2827         (copygp_mips16): New insn.
2828         (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
2829         (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
2830         (sibcall, sibcall_value, call, call_value): Update the calls
2831         to mips_expand_call.
2832         (call_internal, call_value_internal): Use mips_split_call.
2833         (call_value_multiple_internal): Likewise.
2834         (call_split): Move after call_internal (the insn it is split from).
2835         (call_internal_direct, call_value_internal_direct): Turn into
2836         define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
2837         (call_direct_split, call_value_direct_split): New patterns.
2838         * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
2839         and use M16_REGS instead of M16_NA_REGS.
2840         * config/mips/predicates.md (const_call_insn_operand): Replace
2841         the TARGET_ABSOLUTE_ABICALLS-based check with a more general
2842         mips_use_pic_fn_addr_reg_p check.
2843         (move_operand): Reject HIGHs if mips_split_hi_p.
2844         * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
2845         (__mips16_floatunsisf): Inline __mips16_floatsisf.
2846         (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
2847         * config/mips/libgcc-mips16.ver: New file.
2848         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
2849         $(srcdir)/config/mips/libgcc-mips16.ver.
2850
2851 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2852
2853         * config/mips/mips.c (mips_unspec_address_offset): Move earlier in file.
2854         (mips_unspec_address, mips_unspec_offset_high): Likewise.
2855         (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
2856         (mips16_cfun_returns_in_fpr_p): Likewise.
2857
2858 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2859
2860         * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
2861         * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
2862         rather than 4 to PC.
2863
2864 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2865
2866         * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
2867         (FUNCTION_PROFILER): Save the static chain pointer into $2
2868         beforehand and restore it aftewards.
2869         (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
2870         address directly into $25 and call the function through $25;
2871         do not clobber $3.  Pad the DImode version to cover the space
2872         left by the deleted $25 <- $3 move.
2873         (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
2874         the removal of the $25 <- $3 move.
2875         (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
2876         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
2877
2878 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2879             Daniel Jacobowitz  <dan@codesourcery.com>
2880
2881         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
2882         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
2883         (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
2884         * config/mips/mips.c (mips_start_function_definition): New function.
2885         (mips_end_function_definition): Likewise.
2886         (mips_output_function_prologue): Use mips_start_function_definition.
2887         (mips_output_function_epilogue): Use mips_end_function_definition.
2888         (build_mips16_function_stub): Use mips_start_function_definition
2889         and mips_end_function_definition.
2890         (build_mips16_call_stub): Likewise.
2891
2892 2008-08-09  Richard Guenther  <rguenther@suse.de>
2893
2894         * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
2895         * gimple.h (gimple_call_fn): Adjust comment.
2896         (gimple_call_set_fndecl): New function.
2897         (gimple_call_fndecl): Adjust for GIMPLE_CALL no
2898         longer having bare FUNCTION_DECL operand.
2899         (gimple_call_return_type): Likewise.
2900         * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
2901
2902         * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
2903         (gimple_mod_pow2): Likewise.
2904         (gimple_mod_subtract): Likewise.
2905         (gimple_ic): Likewise.
2906         (gimple_stringop_fixed_value): Likewise.
2907         (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
2908         longer having bare FUNCTION_DECL operand.
2909         * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
2910         * omp-low.c (optimize_omp_library_calls): Likewise.
2911         * cgraphunit.c (update_call_expr): Likewise.
2912         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
2913         (execute_convert_to_rsqrt): Likewise.
2914         * cfgexpand.c (gimple_to_tree): Simplify.
2915         (release_stmt_tree): Fix for GIMPLE_CALL no longer having
2916         bare FUNCTION_DECL operand.
2917         * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
2918         (convert_gimple_call): Use gimple_call_fndecl.
2919         * c-common.c (c_warn_unused_result): Likewise.
2920
2921 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2922
2923         PR c/17880
2924         * c-typeck.c (digest_init): Call verify_sequence_points from here.
2925         (c_finish_return): Likewise.
2926         (c_start_case): Likewise.
2927         * c-common.c (warn_for_collisions_1): Use explicit location in
2928         warning.
2929         * c-parser.c (c_parser_condition): New. Call
2930         verify_sequence_points.
2931         (c_parser_paren_condition): Call c_parser_condition.
2932         (c_parser_for_statement): Call c_parser_condition.
2933
2934 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2935
2936         PR 36901
2937         * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.  
2938         * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
2939         Moved from diagnostic.h
2940         (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
2941         DK_PERMERROR.
2942         (emit_diagnostic): New.
2943         (warning0, pedwarn0): Delete.
2944         (warning, warning_at, pedwarn, permerror): Return bool.  
2945         * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
2946         Moved to diagnostic.c.
2947         (struct diagnostic_context): Use correct type for
2948         classify_diagnostic.
2949         (diagnostic_report_diagnostic): Update declaration.
2950         (emit_diagnostic): Declare.
2951         * errors.c (warning): Return bool.  
2952         * errors.h (warning): Update declaration.
2953         * toplev.h (warning0, pedwarn0): Delete.
2954         (warning, warning_at, pedwarn, permerror): Return bool.
2955         * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
2956         * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
2957         inform. Update all calls.
2958         (diagnose_mismatched_decls): Check return value of warning/pedwarn
2959         before giving informative note.
2960         (implicit_decl_warning): Likewise.  
2961         * c-typeck.c (build_function_call): Likewise.  
2962         * tree-sssa.c (warn_uninit): Likewise.  
2963         * builtins.c (gimplify_va_arg_expr): Likewise.
2964
2965 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2966
2967         PR 7651
2968         * doc/invoke.texi (-Wextra): Move warning from here...
2969         (-Wuninitialized): ... to here.
2970         
2971 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2972
2973         PR 28875
2974         * flags.h (set_Wunused): Delete
2975         * toplev.c (process_options): Handle Wunused flags here.
2976         * opts.c (maybe_warn_unused_parameter): Delete.
2977         (common_handle_option): Replace set_Wunused by warn_unused.
2978         (set_Wextra): Do not handle Wunused-parameter here.
2979         (set_Wunused): Delete.
2980         * c-opts.c (c_common_handle_option): Replace set_Wunused by
2981         warn_unused.
2982         * common.opt (Wunused): Add Var and Init.
2983         (Wunused-function): Likewise.
2984         (Wunused-label): Likewise.
2985         (Wunused-parameter): Likewise.
2986         (Wunused-value): Likewise.
2987         (Wunused-variable): Likewise.
2988         
2989 2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>
2990
2991         * doc/invoke.texi: Add cpu_type power7.
2992         * config.in (HAVE_AS_VSX): New.
2993         * config.gcc: Add cpu_type power7.
2994         * configure.ac (HAVE_AS_VSX): Check for assembler support of the
2995         VSX instructions.
2996         * configure: Regenerate.
2997         * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
2998         power5.
2999         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
3000         (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
3001         (EXTRA_SPECS): Add asm_cpu_power7 spec string.
3002
3003 2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>
3004
3005         * tree-vect-transform.c (vectorizable_conversion): Pass the integral
3006         type to vectorize.builtin_conversion.
3007         (vectorizable_conversion): Likewise.
3008         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
3009         integral type as input.
3010         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
3011         FIX_TRUNC_EXPR.
3012         (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
3013         and ALTIVEC_BUILTIN_VCTSXS.
3014         (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
3015         formatting. 
3016
3017 2008-08-08  Richard Guenther  <rguenther@suse.de>
3018
3019         * tree-ssa-ccp.c (likely_value): Calls are not all varying.
3020         (surely_varying_stmt_p): Calls are varying only if they are
3021         non-builtin and not indirect or have no result.
3022         (ccp_fold): Re-instantiate code before the tuples merge.
3023
3024 2008-08-08  Richard Guenther  <rguenther@suse.de>
3025
3026         PR tree-optimization/37056
3027         * gimple.h (gimple_assign_rhs_class): New helper function.
3028         * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
3029         unary operations properly.
3030
3031 2008-08-07  Jan Hubicka  <jh@suse.cz>
3032
3033         * i386.h (ix86_size_cost): Declare.
3034         (ix86_cur_cost): New function macro.
3035         * i386.md (peepholes expanding size and splitters): Predicate by
3036         optimize_insn_for_speed_p.
3037         (peepholes reduce size and splitters): Predicate by
3038         optimize_insn_for_size_p.
3039         * i386.c (ix86_size_cost): Rename from ...
3040         (size_cost): This one.
3041         (override_options): Update.
3042         (decide_alg): Likewise.
3043         (ix86_expand_clear): Use RTL profile.
3044         (ix86_pad_returns): Use RTL profile.
3045
3046 2008-08-07  Jan Hubicka  <jh@suse.cz>
3047
3048         * recog.c (split_all_insns): Set RTL profile
3049         (peephole2_optimize): Likewise.
3050         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3051         * combine.c (combine_instructions): Likewise.
3052
3053 2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3054
3055         * c-common.c (c_common_reswords): Also warn about keyword "bool".
3056
3057 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
3058         
3059         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
3060         value in a6 after the set_frame_ptr insn.
3061         
3062 2008-08-07  Richard Henderson  <rth@redhat.com>
3063
3064         PR debug/37033
3065         * gcc.c (cpp_options): Pass along -g*.
3066
3067 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
3068
3069         * config/arm/arm.c (output_move_neon): Update comment describing
3070         big-endian vector layout.
3071         (arm_assemble_integer): Do not handle big-endian NEON vectors
3072         specially.
3073         * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
3074         neon_vget_lane<mode>_sext_internal,
3075         neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
3076         element indices for big-endian.
3077
3078 2008-08-07  Richard Henderson  <rth@redhat.com>
3079
3080         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
3081         * configure, config.in: Rebuild.
3082         * debug.h (dwarf2out_do_cfi_asm): Declare.
3083         * c-cppbuiltin.c (c_cpp_builtins): Use it.
3084         * dwarf2out.c (dwarf2out_do_cfi_asm): New.
3085         (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
3086         dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
3087
3088 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
3089
3090         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
3091         movv2si_internal): Combine into mov<mode>_internal.
3092         (movv2si_internal_2): Remove.
3093
3094 2008-08-07  Jan Hubicka  <jh@suse.cz>
3095
3096         PR target/37048
3097         * i386.md (single stringop patterns): Enable unconditionally. 
3098
3099 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
3100
3101         PR target/36992
3102         * config/i386/emmintrin.h (_mm_move_epi64): Use
3103         __builtin_ia32_movq128.
3104
3105         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
3106         (bdesc_args): Add IX86_BUILTIN_MOVQ128.
3107
3108         * config/i386/sse.md (sse2_movq128): New.
3109
3110         * doc/extend.texi: Document __builtin_ia32_movq128.
3111
3112 2008-08-07  Richard Guenther  <rguenther@suse.de>
3113
3114         PR middle-end/37042
3115         * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
3116         pointers can access anything.
3117
3118 2008-08-06  Jan Hubicka  <jh@suse.cz>
3119
3120         * optabs.c (emit_unop_insn): Break out to ...
3121         (maybe_emit_unop_insn): ... this one.
3122         (expand_sfix_optab): Use maybe variant.
3123         * optabs.h (maybe_emit_unop_insn): Declare.
3124
3125         * i386.md (mov0 patterns): Enable by default.
3126         (FP conversion expanders): Disable expansion of code expanding
3127         sequences when instruction should be optimized for size.
3128         (single strinop patterns): Enable when optimizing for size.
3129         (string expanders): Disable expanding of code expanding sequences
3130         when optimizning instruction for size.
3131         * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
3132         per BB basis.
3133         (ix86_fp_comparison_sahf_cost): Likewise.
3134         (ix86_expand_branch): Likewise.
3135         (ix86_expand_ashl_const): Likewise.
3136         (ix86_split_ashl): Likewise.
3137         (ix86_expand_strlen): Likewise.
3138         (ix86_emit_fp_unordered_jump): Likewie.
3139
3140 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3141
3142         * c-common.c: Fix typo.
3143         (c_common_reswords): Activate more C++ keyword warnings.
3144
3145         * matrix-reorg.c (compute_offset): Avoid C++ keywords.
3146
3147 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3148
3149         PR 26785
3150         * diagnostic.c (permerror_at): New.
3151         * toplev.h (permerror_at): Declare.
3152         
3153 2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
3154             Ira Rosen  <irar@il.ibm.com>
3155
3156         * tree-vect-transform.c (vect_model_simple_cost): Return
3157         immediately if stmt is pure SLP.
3158         (vect_model_store_cost): Ditto.
3159         (vect_model_load_cost): Ditto.
3160         (vectorizable_store): Remove PURE_SLP check before call
3161         to vect_model_store_cost.
3162         (vect_model_store_cost): When checking whether stmt describe
3163         strided access, add a check that it is not slp_node.
3164
3165 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3166
3167         PR 8715
3168         * c-common.c (warn_for_sign_compare): New. Handle separately the
3169         case that 'constant' is zero.
3170         * c-typeck.c (build_binary_op): Move code to c-common.c
3171         
3172 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3173
3174         * config/alpha/alpha.c (alpha_preferred_reload_class,
3175         alpha_secondary_reload, alpha_emit_set_const_1, function_value,
3176         alpha_output_mi_thunk_osf): Avoid C++ keywords.
3177         * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
3178         * config/arm/arm.md: Likewise.
3179         * config/avr/avr-protos.h (preferred_reload_class,
3180         test_hard_reg_class, avr_simplify_comparison_p,
3181         out_shift_with_cnt, class_max_nregs): Likewise.
3182         * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
3183         output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
3184         preferred_reload_class, test_hard_reg_class): Likewise.
3185         * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
3186         bfin_memory_move_cost, bfin_secondary_reload,
3187         bfin_output_mi_thunk): Likewise.
3188         * config/crx/crx.c (crx_secondary_reload_class,
3189         crx_memory_move_cost): Likewise.
3190         * config/frv/frv-protos.h (frv_secondary_reload_class,
3191         frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
3192         * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
3193         frv_secondary_reload_class, frv_class_likely_spilled_p,
3194         frv_class_max_nregs): Likewise.
3195         * config/h8300/h8300.c (h8300_classify_operand,
3196         h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
3197         Likewise.
3198         * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
3199         * config/ia64/ia64.c (ia64_preferred_reload_class,
3200         ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
3201         * config/iq2000/iq2000.c (gen_int_relational): Likewise.
3202         * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
3203         Likewise.
3204         * config/m68hc11/m68hc11.c (preferred_reload_class,
3205         m68hc11_memory_move_cost): Likewise.
3206         * config/mcore/mcore.c (mcore_secondary_reload_class,
3207         mcore_reload_class): Likewise.
3208         * config/mips/mips.c (mips_hard_regno_mode_ok_p,
3209         mips_class_max_nregs, mips_cannot_change_mode_class,
3210         mips_preferred_reload_class, mips_secondary_reload_class,
3211         mips_output_mi_thunk): Likewise.
3212         * config/mmix/mmix.c (mmix_preferred_reload_class,
3213         mmix_preferred_output_reload_class, mmix_secondary_reload_class):
3214         Likewise.
3215         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
3216         Likewise.
3217         * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
3218         pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
3219         * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
3220         * config/rs6000/rs6000.c (paired_expand_vector_init,
3221         rs6000_secondary_reload_class, rs6000_output_mi_thunk,
3222         compare_section_name, rs6000_memory_move_cost): Likewise.
3223         * config/s390/s390.c (s390_emit_compare_and_swap,
3224         s390_preferred_reload_class, s390_secondary_reload,
3225         legitimize_pic_address, legitimize_tls_address,
3226         legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
3227         s390_class_max_nregs): Likewise.
3228         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
3229         * config/s390/s390.md: Likewise.
3230         * config/score/score-protos.h (score_secondary_reload_class,
3231         score_preferred_reload_class): Likewise.
3232         * config/score/score.c (score_preferred_reload_class,
3233         score_secondary_reload_class): Likewise.
3234         * config/score/score3.c (score3_output_mi_thunk,
3235         score3_preferred_reload_class, score3_secondary_reload_class,
3236         score3_hard_regno_mode_ok): Likewise.
3237         * config/score/score3.h (score3_preferred_reload_class,
3238         score3_secondary_reload_class): Likewise.
3239         * config/score/score7.c (score7_output_mi_thunk,
3240         score7_preferred_reload_class, score7_secondary_reload_class,
3241         score7_hard_regno_mode_ok): Likewise.
3242         * config/score/score7.h (score7_preferred_reload_class,
3243         score7_secondary_reload_class): Likewise.
3244         * config/sh/sh.c (prepare_move_operands, output_far_jump,
3245         output_branchy_insn, add_constant, gen_block_redirect,
3246         sh_insn_length_adjustment, sh_cannot_change_mode_class,
3247         sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload):
3248         Likewise.
3249         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
3250         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
3251         xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
3252         xstormy16_preferred_reload_class): Likewise.
3253         * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
3254         xtensa_expand_atomic, override_options,
3255         xtensa_preferred_reload_class, xtensa_secondary_reload_class):
3256         Likewise.
3257         * reorg.c (try_merge_delay_insns): Likewise.
3258         * tree.c (merge_dllimport_decl_attributes): Likewise.
3259
3260         * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
3261
3262 2008-08-06  Michael Matz  <matz@suse.de>
3263
3264         * Makefile.in (write_entries_to_file): Quote words.
3265         * gengtype.c: (read_input_line): Skip over leading white-space.
3266
3267 2008-08-06  Marc Gauthier  <marc@tensilica.com>
3268
3269         * config.gcc: Match more processor names for Xtensa.
3270         * configure.ac: Likewise.
3271         * doc/install.texi (Specific): Likewise.
3272         * configure: Regenerate.
3273
3274 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3275
3276         * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
3277         * calls.c (avoid_likely_spilled_reg): Likewise.
3278         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
3279         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
3280         * config/i386/i386.c (ix86_expand_special_args_builtin,
3281         ix86_secondary_reload): Likewise.
3282         * except.c (struct eh_region, gen_eh_region_catch,
3283         remove_unreachable_regions, duplicate_eh_regions,
3284         assign_filter_values, build_post_landing_pads,
3285         sjlj_find_directly_reachable_regions, remove_eh_handler,
3286         reachable_next_level, foreach_reachable_handler,
3287         can_throw_internal_1, can_throw_external_1,
3288         collect_one_action_chain): Likewise.
3289         * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
3290         * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
3291         * function.c (update_temp_slot_address, instantiate_new_reg,
3292         instantiate_virtual_regs_in_rtx,
3293         instantiate_virtual_regs_in_insn): Likewise.
3294         * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
3295         * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
3296         gimplify_cleanup_point_expr): Likewise.
3297         * ipa-cp.c (ipcp_lattice_changed): Likewise.
3298         * passes.c (next_pass_1): Likewise.
3299         * print-tree.c (print_node_brief, print_node): Likewise.
3300         * profile.c (branch_prob): Likewise.
3301         * tree-dump.c (dump_register): Likewise.
3302         * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
3303         Likewise.
3304         * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
3305         copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
3306         copy_edges_for_bb, copy_cfg_body, copy_tree_r,
3307         copy_arguments_for_versioning, copy_static_chain): Likewise.
3308         * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
3309         add_new_name_mapping, register_new_name_mapping): Likewise.
3310         * tree-mudflap.c (mf_xform_derefs): Likewise.
3311         * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
3312         get_init_expr, combine_chains): Likewise.
3313         * tree-pretty-print.c (dump_generic_node): Likewise.
3314         * tree-ssa-structalias.c (create_variable_info_for): Likewise.
3315         * tree-vrp.c (simplify_cond_using_ranges): Likewise.
3316         * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
3317         * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
3318
3319 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
3320
3321         PR middle-end/37010
3322         * calls.c (expand_call): Use the biggest preferred stack
3323         boundary.
3324
3325 2008-08-06  Michael Matz  <matz@suse.de>
3326
3327         PR target/36613
3328         * reload.c (push_reload): Merge in,out,in_reg,out_reg members
3329         for reused reload, instead of overwriting them.
3330
3331 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
3332
3333         PR middle-end/37009
3334         * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
3335         for incoming stack boundary.
3336
3337         * function.c (assign_parm_find_entry_rtl): Update
3338         parm_stack_boundary.
3339
3340         * function.h (rtl_data): Add parm_stack_boundary.
3341
3342         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
3343         parm_stack_boundary for incoming stack boundary.
3344
3345 2008-08-06  Joseph Myers  <joseph@codesourcery.com>
3346
3347         * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
3348         for unrepresentable subregs or treat them as equal to other regs
3349         or subregs with the same register number.
3350
3351 2008-08-06  Aldy Hernandez  <aldyh@redhat.com>
3352
3353         PR middle-end/35432
3354         * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
3355         if want_value.
3356
3357 2008-08-06  Jan Hubicka  <jh@suse.cz>
3358
3359         * predict.c (maybe_hot_frequency_p): When profile is absent, all
3360         frequencies might be hot.
3361
3362 2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>
3363
3364         * reload.c (find_reloads): Force constants into literal pool
3365         also if they are wrapped in a SUBREG.
3366
3367 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3368
3369         PR target/35659
3370         * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
3371         * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
3372         Don't allow predicated instructions for data speculation.
3373         * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
3374         declaration.
3375
3376 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3377
3378         * haifa-sched.c (extend_global): Split to extend_global_data and
3379         extend_region_data.  Update all uses.
3380         (extend_all): Rename to extend_block_data.
3381
3382 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3383
3384         * sched-rgn.c (new_ready): Check if instruction can be
3385         speculatively scheduled before attempting speculation.
3386         (debug_rgn_dependencies): Remove wrongful assert.
3387
3388 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
3389
3390         * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
3391         
3392 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
3393         
3394         * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
3395         (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
3396         va_size, and type_size.
3397         
3398 2008-08-04  Jason Merrill  <jason@redhat.com>
3399
3400         PR c++/37016
3401         * tree-ssa.c (useless_type_conversion_p_1): Call langhook
3402         if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
3403
3404 2008-08-05  Richard Henderson  <rth@redhat.com>
3405
3406         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
3407         * configure: Rebuild.
3408
3409 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3410
3411         PR tree-opt/37024
3412         * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
3413         instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
3414         is a conversion.
3415
3416 2008-08-05  Richard Henderson  <rth@redhat.com>
3417
3418         * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
3419         * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
3420         * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
3421         * common.opt (fdwarf2-cfi-asm): New.
3422         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
3423         * config.in, configure: Rebuild.
3424         * dwarf2asm.c (dw2_asm_output_data_raw): New.
3425         (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw): New.
3426         (dw2_force_const_mem): Externalize.
3427         * dwarf2asm.h: Update.
3428         * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
3429         generate a real label.
3430         (output_cfi_directive): New.
3431         (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
3432         (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
3433         (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
3434         and .cfi_lsda.
3435         (dwarf2out_end_epilogue): Emit .cfi_endproc.
3436         (output_loc_operands_raw, output_loc_sequence_raw): New.
3437         (output_cfa_loc_raw): New.
3438         
3439 2008-08-05  Paul Brook  <paul@codesourcery.com>
3440
3441         * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
3442         * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
3443         (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
3444         (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
3445         * config/arm/arm.h (TARGET_VFPD32): Define.
3446         (TARGET_VFP3): Use TARGET_VFPD32.
3447         (fputype): Add FPUTYPE_VFP3D16.
3448         (LAST_VFP_REGNUM): Use TARGET_VFPD32.
3449         * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
3450         * config/arm/arm-cores.def: Add cortex-r4f.
3451         * config/arm/arm-tune.md: Regenerate.
3452
3453 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3454
3455         * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
3456         Reword some comments throughout the file.
3457
3458         (MFC_MIN_DMA_LIST_ELEMENTS): New define.
3459         (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
3460         (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of MFC_MIN_DMA_LIST_ELEMENTS.
3461         (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of MFC_MAX_DMA_LIST_ELEMENTS.
3462
3463         (MFC_START_ENABLE): Remove PPU-only define.
3464         (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
3465         (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
3466
3467         (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
3468         (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
3469         (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
3470         (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
3471         (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
3472         (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
3473         (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
3474
3475         (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
3476         (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
3477         (mfc_sdcrt, mfc_sdcrtst): Likewise.
3478         (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
3479
3480         (spu_read_machine_status): Fix typo.
3481
3482 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3483
3484         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
3485         SUBREG of multi-word hard register.
3486         * config/spu/spu.c (valid_subreg): Likewise.
3487         (adjust_operand): Handle SUBREGs of multi-word hard registers.
3488
3489 2008-08-04  Richard Guenther  <rguenther@suse.de>
3490
3491         * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
3492         the candidate with the stripped base if that base is different
3493         from the original base even for offset zero.
3494
3495 2008-08-04  Richard Guenther  <rguenther@suse.de>
3496
3497         PR middle-end/36691
3498         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
3499         check for no_overflow.
3500
3501 2008-08-04  Richard Guenther  <rguenther@suse.de>
3502
3503         * tree-vect-transform.c (vectorizable_call): Fix tuplification.
3504
3505 2008-08-04  Paul Brook  <paul@codesourcery.com>
3506
3507         * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
3508         (arm_order_regs_for_local_alloc): New function.
3509         * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
3510         prototype.
3511         * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
3512
3513 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
3514
3515         PR target/37012
3516         * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
3517         instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
3518         (ix86_expand_epilogue): Likewise.
3519
3520 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
3521
3522         * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
3523         in comments.
3524
3525 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
3526
3527         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
3528         to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
3529         (*movv2sf_internal_rex64): Ditto.
3530
3531 2008-08-03  Jan Hubicka  <jh@suse.cz>
3532
3533         * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
3534         expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
3535         * expmed.c (expand_smod_pow2): Likewise.
3536
3537 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
3538
3539         PR target/36992
3540         * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
3541         alternative 0 of operand 1.
3542         (*vec_concatv2di_rex64_sse): Ditto.
3543         (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
3544         of operand 1.
3545         (*sse2_storeq_rex64): Penalize allocation of "r" registers.
3546         * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
3547         of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
3548         (*movv2sf_internal_rex64): Ditto.
3549
3550 2008-08-02  Richard Guenther  <rguenther@suse.de>
3551
3552         PR target/35252
3553         * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
3554         (ssedoublesizemode): New mode attribute.
3555         (sse_shufps): Call gen_sse_shufps_v4sf.
3556         (sse_shufps_1): Macroize.
3557         (sse2_shufpd): Call gen_Sse_shufpd_v2df.
3558         (sse2_shufpd_1): Macroize.
3559         (vec_extract_odd, vec_extract_even): New expanders.
3560         (vec_interleave_highv4sf, vec_interleave_lowv4sf,
3561         vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
3562         * i386.c (ix86_expand_vector_init_one_nonzero): Call
3563         gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
3564         (ix86_expand_vector_set): Likewise.
3565         (ix86_expand_reduc_v4sf): Likewise.
3566
3567 2008-08-01  Doug Kwan  <dougkwan@google.com>
3568
3569         * matrix-reorg.c: Re-enable all code.
3570         (struct malloc_call_data): Change CALL_STMT to gimple type.
3571         (collect_data_for_malloc_call): Tuplify.
3572         (struct access_site_info): Change STMT to gimple type.
3573         (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
3574         and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
3575         (struct free_info): Change STMT to gimple type.
3576         (struct matrix_access_phi_node):  Change PHI to gimple type.
3577         (get_inner_of_cast_expr): Remove.
3578         (may_flatten_matrices_1): Tuplify.
3579         (may_flatten_matrices): Ditto.
3580         (mark_min_matrix_escape_level): Ditto.
3581         (ssa_accessed_in_tree): Refactor statement RHS related code into ...
3582         (ssa_accessed_in_call_rhs): New
3583         (ssa_accessed_in_assign_rhs): New
3584         (record_access_alloc_site_info): Tuplify.
3585         (add_allocation_site): Ditto.
3586         (analyze_matrix_allocation_site): Ditto.
3587         (analyze_transpose): Ditto.
3588         (get_index_from_offset): Ditto.
3589         (update_type_size): Ditto.
3590         (analyze_accesses_for_call_expr): Tuplify and renamed into ...
3591         (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
3592         (analyze_accesses_for_phi_node): Tuplify.
3593         (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
3594         (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
3595         (analyze_matrix_accesses): Tuplify.
3596         (check_var_data): New call-back type for check_var_notmodified_p.
3597         (check_var_notmodified_p): Tuplify and use call-back struct to
3598         return statement found.
3599         (can_calculate_expr_before_stmt): Factor out statement related code
3600         into ...
3601         (can_calculate_stmt_before_stmt): New.
3602         (check_allocation_function): Tuplify.
3603         (find_sites_in_func): Ditto.
3604         (record_all_accesses_in_func): Ditto.
3605         (transform_access_sites): Ditto.
3606         (transform_allocation_sites): Ditto.
3607         (matrix_reorg): Re-enable.
3608         (gate_matrix_reorg): Re-enable.
3609
3610 2008-08-01  Jakub Jelinek  <jakub@redhat.com>
3611
3612         * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
3613         for labels for which it hasn't been set yet.  If it has been set,
3614         stop walking insns and continue with next worklist item.
3615         (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
3616         if the only BARRIER is at the very end of a function.
3617
3618 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
3619
3620         * cfgexpand.c (expand_stack_alignment): Assert that
3621         stack_realign_drap and drap_rtx must match.
3622
3623         * function.c (instantiate_new_reg): If DRAP is used to realign
3624         stack, replace virtual_incoming_args_rtx with internal arg
3625         pointer.
3626
3627 2008-08-01  Richard Guenther  <rguenther@suse.de>
3628
3629         * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
3630         loop information only if we initialized it.
3631         (execute_pre): Call fini_pre with in_fre.
3632         * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
3633         if we do not unroll because we hit max-completely-peeled-insns.
3634         Use our estimation for consistency, do allow shrinking.
3635
3636 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
3637
3638         * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
3639         with MIN_STACK_BOUNDARY.
3640         (ix86_update_stack_boundary): Likewise.
3641         (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
3642         STACK_BOUNDARY.
3643
3644         * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
3645         (MIN_STACK_BOUNDARY): This.
3646
3647 2008-08-01  Richard Guenther  <rguenther@suse.de>
3648
3649         PR middle-end/36997
3650         * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
3651
3652 2008-08-01  Richard Guenther  <rguenther@suse.de>
3653
3654         PR tree-optimization/36988
3655         * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
3656         do not matter if that doesn't change volatile qualification.
3657
3658 2008-08-01  Paolo Bonzini  <bonzini@gnu.org>
3659
3660         * configure.ac: Do not generate libada-mk.  Do not subst
3661         host_cc_for_libada.
3662         * libada-mk.in: Remove.
3663         * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
3664         * configure: Regenerate.
3665
3666 2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>
3667
3668         * tree-pass.h: Added comment about not dumping passes with name
3669         starting with star in struct opt_pass.
3670         * passes.c (register_dump_files_1): Don't do dump for a pass with
3671         name starting with star.
3672         * doc/passes.texi (Pass manager): Mention pass names and special
3673         meaning of star prefix to avoid dump.
3674
3675 2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>
3676
3677         * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
3678         to MIPS64r2.
3679         * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
3680         (ISA_MIPS64R2): New macro.
3681         (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
3682         (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
3683         ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
3684         ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
3685         ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
3686         ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
3687         ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
3688         (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
3689         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
3690         Move up to keep list alphabetically sorted.
3691         (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
3692         * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
3693         processor.
3694         * doc/invoke.texi (MIPS Options): Add -mips64r2.
3695         (-march=@var{arch}): Add mips64r2.
3696
3697 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3698
3699         * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
3700
3701 2008-07-31  Steve Ellcey  <sje@cup.hp.com>
3702
3703         * expr.c (expand_assignment): Check for complete type.
3704
3705 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3706
3707         PR debug/36977
3708         * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
3709
3710         * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
3711         for stack alignment.
3712
3713         * function.h (rtl_data): Add stack_realign_tried.  Update comments.
3714
3715 2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
3716
3717         * config/sh/sh.c (sh_canonical_va_list_type): Remove.
3718         (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
3719
3720 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
3721
3722         PR rtl-optimization/36419
3723         * dwarf2out.c (barrier_args_size): New variable.
3724         (compute_barrier_args_size, compute_barrier_args_size_1): New
3725         functions.
3726         (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
3727         if not called yet in the current function, use barrier_args_size
3728         array to find the new args_size value.
3729         (dwarf2out_frame_debug): Free and clear barrier_args_size.
3730
3731 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3732
3733         PR debug/36980
3734         * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
3735         rule 19.
3736
3737 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3738
3739         PR debug/36976
3740         * dwarf2out.c (dwarf2out_args_size_adjust): New.
3741         (dwarf2out_stack_adjust): Use it.
3742         (dwarf2out_frame_debug_expr): Likewise.
3743
3744 2008-07-31  Richard Guenther  <rguenther@suse.de>
3745
3746         PR tree-optimization/36978
3747         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
3748         the generated condition.
3749
3750 2008-07-31  Richard Guenther  <rguenther@suse.de>
3751
3752         * passes.c (init_optimization_passes): Always call
3753         pass_early_warn_uninitialized.
3754         * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
3755         * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
3756         * doc/passes.texi (Warn for uninitialized variables): Adjust.
3757
3758 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
3759
3760         PR c/36970
3761         * builtins.c (maybe_emit_free_warning): New function.
3762         (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
3763         maybe_emit_free_warning for BUILT_IN_FREE.
3764
3765         PR debug/36278
3766         * dwarf2out.c (get_context_die): New function.
3767         (force_decl_die, force_type_die): Use it.
3768         (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
3769         returns NULL, force generation of DW_TAG_typedef and put that into
3770         DW_AT_import.
3771
3772         PR preprocessor/36649
3773         * c-pch.c (c_common_read_pch): Save and restore
3774         line_table->trace_includes across PCH restore.
3775
3776 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
3777
3778         PR ada/36554
3779         * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
3780
3781 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
3782
3783         PR 36974
3784         * final.c (call_from_call_insn): Handle COND_EXEC.
3785
3786 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
3787
3788         * builtins.c (std_gimplify_va_arg_expr): Replace
3789         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
3790         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
3791
3792 2008-07-30  Joey Ye  <joey.ye@intel.com>
3793             H.J. Lu  <hongjiu.lu@intel.com>
3794
3795         * builtins.c (expand_builtin_setjmp_receiver): Replace
3796         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
3797         (expand_builtin_apply_args_1): Likewise.
3798         (expand_builtin_longjmp): Need DRAP for stack alignment.
3799         (expand_builtin_apply): Likewise.
3800
3801         * caller-save.c (setup_save_areas): Call assign_stack_local_1
3802         instead of assign_stack_local to allow alignment reduction.
3803
3804         * calls.c (emit_call_1): Need DRAP for stack alignment if
3805         return pops.
3806         (expand_call): Replace virtual_incoming_args_rtx with
3807         crtl->args.internal_arg_pointer.
3808         * stmt.c (expand_nl_goto_receiver): Likewise.
3809
3810         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
3811         alignment and store to stack_alignment_estimated and
3812         max_used_stack_slot_alignment.
3813         (expand_one_var): Likewise.
3814         (expand_stack_alignment): New function.
3815         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
3816         and stack_alignment_estimated fields in rtl_data.  Call
3817         expand_stack_alignment at end.
3818
3819         * defaults.h (INCOMING_STACK_BOUNDARY): New.
3820         (MAX_STACK_ALIGNMENT): Likewise.
3821         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
3822         (SUPPORTS_STACK_ALIGNMENT): Likewise.
3823
3824         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
3825         stack alignment when generating virtual registers.
3826
3827         * function.c (assign_stack_local): Renamed to ...
3828         (assign_stack_local_1): This.  Add a parameter to indicate
3829         if it is OK to reduce alignment.
3830         (assign_stack_local): Use it.
3831         (instantiate_new_reg): Instantiate virtual incoming args rtx
3832         to vDRAP if stack realignment and DRAP is needed.
3833         (assign_parms): Collect parameter/return type alignment and
3834         contribute to stack_alignment_estimated.
3835         (locate_and_pad_parm): Likewise.
3836         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
3837         with crtl->args.internal_arg_pointer.
3838
3839         * function.h (rtl_data): Add new field drap_reg,
3840         max_used_stack_slot_alignment, stack_alignment_estimated,
3841         stack_realign_needed, need_drap, stack_realign_processed and
3842         stack_realign_finalized.
3843         (stack_realign_fp): New macro.
3844         (stack_realign_drap): Likewise.
3845
3846         * global.c (compute_regsets): Frame pointer is needed when
3847         stack is realigned.  Can eliminate frame pointer when stack is
3848         realigned and dynamic realigned argument pointer isn't used.
3849
3850         * reload1.c (update_eliminables):  Frame pointer is needed
3851         when stack is realigned.
3852         (init_elim_table): Can eliminate frame pointer when stack is
3853         realigned and dynamic realigned argument pointer isn't used.
3854
3855         * rtl.h (assign_stack_local_1): Declare new funtion.
3856
3857         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
3858         (TARGET_GET_DRAP_RTX): Likewise.
3859         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
3860         TARGET_GET_DRAP_RTX.
3861
3862         * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
3863
3864         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
3865         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
3866
3867 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
3868             H.J. Lu  <hongjiu.lu@intel.com>
3869
3870         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
3871         vdrap_reg, stack_realign and drap_reg_saved.
3872         (add_cfi): Don't allow redefining CFA when DRAP is used.
3873         (reg_save): Handle stack alignment.
3874         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
3875         alignment.  Don't generate DWARF information for (set fp sp)
3876         when DRAP is used.
3877         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
3878         to INVALID_REGNUM.
3879         (int_loc_descriptor): Move prototype forward.  Also define if
3880         DWARF2_UNWIND_INFO is true.
3881         (output_cfa_loc): Handle DW_CFA_expression.
3882         (build_cfa_aligned_loc): New.
3883         (based_loc_descr): Update assert for stack realign.  For local
3884         variables, use sp+offset when stack is aligned without drap and
3885         fp+offset when stack is aligned with drap.  For arguments, use
3886         cfa+offset when drap is used to align stack.
3887
3888 2008-07-30  Joey Ye  <joey.ye@intel.com>
3889             H.J. Lu  <hongjiu.lu@intel.com>
3890
3891         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
3892         Break long line.
3893         (ix86_gen_andsp): New.
3894         (ix86_user_incoming_stack_boundary): Likewise.
3895         (ix86_default_incoming_stack_boundary): Likewise.
3896         (ix86_incoming_stack_boundary): Likewise.
3897         (ix86_can_eliminate): Likewise.
3898         (find_drap_reg): Likewise.
3899         (ix86_update_stack_boundary): Likewise.
3900         (ix86_get_drap_rtx): Likewise.
3901         (ix86_finalize_stack_realign_flags): Likewise.
3902         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
3903         (TARGET_GET_DRAP_RTX): Likewise.
3904         (override_options): Overide option value for new options.
3905         (ix86_function_ok_for_sibcall): Remove check for
3906         force_align_arg_pointer.
3907         (ix86_handle_cconv_attribute): Likewise.
3908         (ix86_function_regparm): Likewise.
3909         (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
3910         (ix86_va_start): Replace virtual_incoming_args_rtx with
3911         crtl->args.internal_arg_pointer.
3912         (ix86_select_alt_pic_regnum): Check DRAP register.
3913         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
3914         (ix86_compute_frame_layout): Compute frame layout wrt stack
3915         realignment.
3916         (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
3917         (ix86_expand_prologue): Decide if stack realignment is needed
3918         and generate prologue code accordingly.
3919         (ix86_expand_epilogue): Generate epilogue code wrt stack
3920         realignment is really needed or not.
3921         
3922         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
3923         (ABI_STACK_BOUNDARY): Likewise.
3924         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
3925         (STACK_REALIGN_DEFAULT): Likewise.
3926         (INCOMING_STACK_BOUNDARY): Likewise.
3927         (MAX_STACK_ALIGNMENT): Likewise.
3928         (ix86_incoming_stack_boundary): Likewise.
3929         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
3930         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
3931         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
3932         (machine_function): Remove force_align_arg_pointer.
3933
3934         * config/i386/i386.md (BX_REG): New.
3935         (R13_REG): Likewise.
3936
3937         * config/i386/i386.opt (mforce_drap): New.
3938         (mincoming-stack-boundary): Likewise.
3939         (mstackrealign): Add Init(-1).
3940
3941         * config/i386/i386-protos.h (ix86_can_eliminate): New
3942
3943 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
3944
3945         * doc/extend.texi: Update force_align_arg_pointer.
3946
3947         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
3948         -mstackrealign.
3949
3950         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
3951         (INCOMING_STACK_BOUNDARY): Likewise.
3952         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
3953         (TARGET_GET_DRAP_RTX): Likewise.
3954
3955 2008-07-30  Andreas Schwab  <schwab@suse.de>
3956
3957         PR rtl-optimization/36929
3958         * dse.c (replace_inc_dec): Use emit_insn_before instead of
3959         add_insn_before and fix argument order.
3960         (replace_inc_dec_mem): Handle NULL rtx.
3961
3962 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
3963
3964         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
3965         function.
3966         (arm_compute_initial_elimination_offset): Use it.
3967         (arm_compute_save_reg_mask): Include static chain save slot when
3968         calculating alignment.
3969         (arm_get_frame_offsets): Ditto.
3970         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
3971         that we can use to decrement the stack when the stack decrement
3972         could be too big for an immediate value in a single insn.
3973         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
3974
3975 2008-07-30  Richard Guenther  <rguenther@suse.de>
3976
3977         PR tree-optimization/36967
3978         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
3979         Release defs of statements we remove.
3980
3981 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
3982
3983         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
3984         instead of NULL_RTVEC.
3985
3986 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
3987
3988         PR target/35866
3989
3990         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
3991         vector modes.
3992
3993 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
3994
3995         * final.c (call_from_call_insn): New.
3996         (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
3997
3998 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
3999
4000         * configure.ac: Substitute ADA_CFLAGS.
4001         * configure: Regenerate.
4002         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
4003         * Makefile.in: Remove mention of X_* variables.
4004         * config/pa/x-ada-hpux10: Remove.
4005         * config/pa/x-ada: Remove.
4006
4007         * doc/fragments.texi: Update.
4008
4009 2008-07-30  Olivier Hainque  <hainque@adacore.com>
4010
4011         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
4012         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
4013         __dso_handle explicitly here.
4014
4015 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4016
4017         PR 34389
4018         * c-typeck.c (build_binary_op): Encapsulate code into...
4019         * c-common.c (shorten_binary_op): ...this new function.
4020         (conversion_warning): Use the new function. Handle non-negative
4021         constant in bitwise-and.
4022         * c-common.h (shorten_binary_op): Declare.
4023
4024 2008-07-30  Olivier Hainque  <hainque@adacore.com>
4025
4026         * scan.c (make_sstring_space): Add explicit conversions of
4027         allocator's return value.
4028         * fix-header.c (recognized_function): Likewise.
4029
4030 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4031
4032         * doc/cpp.texi: Update to GFDL 1.2.
4033         * doc/gcc.texi: Do not list GPL as Invariant Section.
4034         * doc/gccint.texi: Likewise.  Update copyright years.
4035         * doc/install.texi: Update copyright years.
4036
4037 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
4038
4039         PR target/36955
4040         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
4041         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
4042
4043 2008-07-29  Jan Hubicka  <jh@suse.cz>
4044
4045         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
4046         (grokdeclarator): Likewise.
4047         * langhooks.c (lhd_warn_unused_global_decl): Use
4048         DECL_DECLARED_INLINE_P.
4049         * print-tree.c (print_node): Remove DECL_INLINE check.
4050
4051 2008-07-29  Richard Guenther  <rguenther@suse.de>
4052
4053         PR tree-optimization/36945
4054         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
4055         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
4056         Record invariant addresses un-decomposed.
4057         (copy_reference_ops_from_call): Record reference call
4058         arguments properly.  Simplify.
4059         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
4060         helper split out from ...
4061         (create_component_ref_by_pieces): ... here.  Simplify.
4062         Prepare for recursive invocation for call arguments.
4063         (create_expression_by_pieces): Adjust call to
4064         create_component_ref_by_pieces.
4065         (compute_avail): Process operand 2 of reference ops.
4066
4067 2008-07-29  Richard Guenther  <rguenther@suse.de>
4068
4069         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
4070
4071 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
4072
4073         * c-format.c (check_format_types): Revert unwanted checkin.
4074
4075 2008-07-29  Jan Hubicka  <jh@suse.cz>
4076
4077         * flags.h (flag_really_no_inline): Remove.
4078         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
4079         * toplev.c (flag_really_no_inline): Remove.
4080         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
4081         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
4082         (cgraph_decide_inlining_incrementally): Likewise.
4083         (compute_inline_parameters): Likewise.
4084         * opts.c (decode_options): Simplify.
4085         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
4086         * common.opt (finline): Initialize to 1.
4087         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
4088
4089 2008-07-29  Jan Hubicka  <jh@suse.cz>
4090
4091         * predict.c (always_optimize_for_size_p): New function.
4092         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
4093         optimize_edge_for_size_p, optimize_edge_for_speed_p,
4094         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
4095         functions.
4096         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
4097         * function.c (prepare_function_start): Set default profile.
4098         * function.h (rtl_data): Add maybe_hot_insn_p.
4099         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
4100         (construct_exit_block): Likewise.
4101         (tree_expand_cfg): Likewise.
4102         * basic-block.h
4103         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
4104         optimize_edge_for_size_p, optimize_edge_for_speed_p,
4105         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
4106         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
4107         Declare.
4108
4109 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4110
4111         PR 34985
4112         * c-decl.c (merge_decls): Merge USED flags.
4113
4114 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
4115
4116         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
4117         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
4118         next_stack, lab_false and lab_over trees.
4119
4120 2008-07-28  Richard Guenther  <rguenther@suse.de>
4121
4122         PR tree-optimization/36957
4123         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
4124         (useless_type_conversion_p): Remove.
4125         (types_compatible_p): Remove.
4126         * gimple.h (tree_ssa_useless_type_conversion): Declare.
4127         (useless_type_conversion_p): Declare.
4128         (types_compatible_p): Declare.
4129         (gimple_expr_type): Return the base type only if it is
4130         trivially convertible to the subtype.
4131
4132 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
4133
4134         * configure.ac: Use the m4_do macro to concatenate the warnings into
4135         one string in ACX_PROG_CC_WARNING_OPTS,
4136         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and ACX_PROG_CC_WARNINGS_ARE_ERRORS.
4137         * configure: Regenerate.
4138
4139 2008-07-28  Richard Guenther  <rguenther@suse.de>
4140
4141         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
4142         (insert_fake_stores): Remove.
4143         (realify_fake_stores): Likewise.
4144         (execute_pre): Remove dead code.
4145         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
4146         (find_func_aliases): Deal with it here instead.
4147         Re-enable gcc_unreachable call.
4148
4149 2008-07-28  Richard Guenther  <rguenther@suse.de>
4150
4151         Merge from gimple-tuples-branch.
4152
4153         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
4154         * gimple.def: New file.
4155         * gsstruct.def: Likewise.
4156         * gimple-iterator.c: Likewise.
4157         * gimple-pretty-print.c: Likewise.
4158         * tree-gimple.c: Removed.  Merged into ...
4159         * gimple.c: ... here.  New file.
4160         * tree-gimple.h: Removed.  Merged into ...
4161         * gimple.h: ... here.  New file.
4162
4163         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
4164         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
4165         --enable-checking=gimple flag.
4166         * config.in: Likewise.
4167         * configure: Regenerated.
4168
4169         * tree-ssa-operands.h: Tuplified.
4170         * tree-vrp.c: Likewise.
4171         * tree-loop-linear.c: Likewise.
4172         * tree-into-ssa.c: Likewise.
4173         * tree-ssa-loop-im.c: Likewise.
4174         * tree-dump.c: Likewise.
4175         * tree-complex.c: Likewise.
4176         * cgraphbuild.c: Likewise.
4177         * tree-ssa-threadupdate.c: Likewise.
4178         * tree-ssa-loop-niter.c: Likewise.
4179         * tree-pretty-print.c: Likewise.
4180         * tracer.c: Likewise.
4181         * gengtype.c: Likewise.
4182         * tree-loop-distribution.c: Likewise.
4183         * tree-ssa-loop-unswitch.c: Likewise.
4184         * cgraph.c: Likewise.
4185         * cgraph.h: Likewise.
4186         * tree-ssa-loop-manip.c: Likewise.
4187         * value-prof.c: Likewise.
4188         * tree-ssa-loop-ch.c: Likewise.
4189         * tree-tailcall.c: Likewise.
4190         * value-prof.h: Likewise.
4191         * tree.c: Likewise.
4192         * tree.h: Likewise.
4193         * tree-pass.h: Likewise.
4194         * ipa-cp.c: Likewise.
4195         * tree-scalar-evolution.c: Likewise.
4196         * tree-scalar-evolution.h: Likewise.
4197         * target.h: Likewise.
4198         * lambda-mat.c: Likewise.
4199         * tree-phinodes.c: Likewise.
4200         * diagnostic.h: Likewise.
4201         * builtins.c: Likewise.
4202         * tree-ssa-alias-warnings.c: Likewise.
4203         * cfghooks.c: Likewise.
4204         * fold-const.c: Likewise.
4205         * cfghooks.h: Likewise.
4206         * omp-low.c: Likewise.
4207         * tree-ssa-dse.c: Likewise.
4208         * ipa-reference.c: Likewise.
4209         * tree-ssa-uncprop.c: Likewise.
4210         * toplev.c: Likewise.
4211         * tree-gimple.c: Likewise.
4212         * tree-gimple.h: Likewise.
4213         * tree-chrec.c: Likewise.
4214         * tree-chrec.h: Likewise.
4215         * tree-ssa-sccvn.c: Likewise.
4216         * tree-ssa-sccvn.h: Likewise.
4217         * cgraphunit.c: Likewise.
4218         * tree-ssa-copyrename.c: Likewise.
4219         * tree-ssa-ccp.c: Likewise.
4220         * tree-ssa-loop-ivopts.c: Likewise.
4221         * tree-nomudflap.c: Likewise.
4222         * tree-call-cdce.c: Likewise.
4223         * ipa-pure-const.c: Likewise.
4224         * c-format.c: Likewise.
4225         * tree-stdarg.c: Likewise.
4226         * tree-ssa-math-opts.c: Likewise.
4227         * tree-ssa-dom.c: Likewise.
4228         * tree-nrv.c: Likewise.
4229         * tree-ssa-propagate.c: Likewise.
4230         * ipa-utils.c: Likewise.
4231         * tree-ssa-propagate.h: Likewise.
4232         * tree-ssa-alias.c: Likewise.
4233         * gimple-low.c: Likewise.
4234         * tree-ssa-sink.c: Likewise.
4235         * ipa-inline.c: Likewise.
4236         * c-semantics.c: Likewise.
4237         * dwarf2out.c: Likewise.
4238         * expr.c: Likewise.
4239         * tree-ssa-loop-ivcanon.c: Likewise.
4240         * predict.c: Likewise.
4241         * tree-ssa-loop.c: Likewise.
4242         * tree-parloops.c: Likewise.
4243         * tree-ssa-address.c: Likewise.
4244         * tree-ssa-ifcombine.c: Likewise.
4245         * matrix-reorg.c: Likewise.
4246         * c-decl.c: Likewise.
4247         * tree-eh.c: Likewise.
4248         * c-pretty-print.c: Likewise.
4249         * lambda-trans.c: Likewise.
4250         * function.c: Likewise.
4251         * langhooks.c: Likewise.
4252         * ebitmap.h: Likewise.
4253         * tree-vectorizer.c: Likewise.
4254         * function.h: Likewise.
4255         * langhooks.h: Likewise.
4256         * tree-vectorizer.h: Likewise.
4257         * ipa-type-escape.c: Likewise.
4258         * ipa-type-escape.h: Likewise.
4259         * domwalk.c: Likewise.
4260         * tree-if-conv.c: Likewise.
4261         * profile.c: Likewise.
4262         * domwalk.h: Likewise.
4263         * tree-data-ref.c: Likewise.
4264         * tree-data-ref.h: Likewise.
4265         * tree-flow-inline.h: Likewise.
4266         * tree-affine.c: Likewise.
4267         * tree-vect-analyze.c: Likewise.
4268         * c-typeck.c: Likewise.
4269         * gimplify.c: Likewise.
4270         * coretypes.h: Likewise.
4271         * tree-ssa-phiopt.c: Likewise.
4272         * calls.c: Likewise.
4273         * tree-ssa-coalesce.c: Likewise.
4274         * tree.def: Likewise.
4275         * tree-dfa.c: Likewise.
4276         * except.c: Likewise.
4277         * except.h: Likewise.
4278         * cfgexpand.c: Likewise.
4279         * tree-cfgcleanup.c: Likewise.
4280         * tree-ssa-pre.c: Likewise.
4281         * tree-ssa-live.c: Likewise.
4282         * tree-sra.c: Likewise.
4283         * tree-ssa-live.h: Likewise.
4284         * tree-predcom.c: Likewise.
4285         * lambda.h: Likewise.
4286         * tree-mudflap.c: Likewise.
4287         * ipa-prop.c: Likewise.
4288         * print-tree.c: Likewise.
4289         * tree-ssa-copy.c: Likewise.
4290         * ipa-prop.h: Likewise.
4291         * tree-ssa-forwprop.c: Likewise.
4292         * ggc-page.c: Likewise.
4293         * c-omp.c: Likewise.
4294         * tree-ssa-dce.c: Likewise.
4295         * tree-vect-patterns.c: Likewise.
4296         * tree-ssa-ter.c: Likewise.
4297         * tree-nested.c: Likewise.
4298         * tree-ssa.c: Likewise.
4299         * lambda-code.c: Likewise.
4300         * tree-ssa-loop-prefetch.c: Likewise.
4301         * tree-inline.c: Likewise.
4302         * tree-inline.h: Likewise.
4303         * tree-iterator.c: Likewise.
4304         * tree-optimize.c: Likewise.
4305         * tree-ssa-phiprop.c: Likewise.
4306         * tree-vect-transform.c: Likewise.
4307         * tree-object-size.c: Likewise.
4308         * tree-outof-ssa.c: Likewise.
4309         * cfgloop.c: Likewise.
4310         * system.h: Likewise.
4311         * tree-profile.c: Likewise.
4312         * cfgloop.h: Likewise.
4313         * c-gimplify.c: Likewise.
4314         * c-common.c: Likewise.
4315         * tree-vect-generic.c: Likewise.
4316         * tree-flow.h: Likewise.
4317         * c-common.h: Likewise.
4318         * basic-block.h: Likewise.
4319         * tree-ssa-structalias.c: Likewise.
4320         * tree-switch-conversion.c: Likewise.
4321         * tree-ssa-structalias.h: Likewise.
4322         * tree-cfg.c: Likewise.
4323         * passes.c: Likewise.
4324         * ipa-struct-reorg.c: Likewise.
4325         * ipa-struct-reorg.h: Likewise.
4326         * tree-ssa-reassoc.c: Likewise.
4327         * cfgrtl.c: Likewise.
4328         * varpool.c: Likewise.
4329         * stmt.c: Likewise.
4330         * tree-ssanames.c: Likewise.
4331         * tree-ssa-threadedge.c: Likewise.
4332         * langhooks-def.h: Likewise.
4333         * tree-ssa-operands.c: Likewise.
4334         * config/alpha/alpha.c: Likewise.
4335         * config/frv/frv.c: Likewise.
4336         * config/s390/s390.c: Likewise.
4337         * config/m32c/m32c.c: Likewise.
4338         * config/m32c/m32c-protos.h: Likewise.
4339         * config/spu/spu.c: Likewise.
4340         * config/sparc/sparc.c: Likewise.
4341         * config/i386/i386.c: Likewise.
4342         * config/sh/sh.c: Likewise.
4343         * config/xtensa/xtensa.c: Likewise.
4344         * config/stormy16/stormy16.c: Likewise.
4345         * config/ia64/ia64.c: Likewise.
4346         * config/rs6000/rs6000.c: Likewise.
4347         * config/pa/pa.c: Likewise.
4348         * config/mips/mips.c: Likewise.
4349
4350 2008-07-28  Simon Baldwin  <simonb@google.com>
4351
4352         * c-pragma.c (handle_pragma_message): New function.
4353         (init_pragma): Register handle_pragma_message.
4354         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
4355         documentation.
4356
4357 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
4358
4359         PR tree-optimization/35252
4360         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
4361         REALPART_EXPR to be considered as same load operation.
4362
4363 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
4364
4365         PR tree-optimization/36830
4366         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
4367         (expressions_equal_p): Return false if only one operand is null.
4368
4369 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
4370
4371         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
4372         version requirements.
4373
4374 2008-07-26  Olivier Hainque  <hainque@adacore.com>
4375
4376         * collect2.c (symkind): New enum.  Symbol kinds we care about.
4377         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
4378         code and head comment accordingly.
4379         (scan_prog_file): Use symkind names instead of bare integers.
4380
4381 2008-07-25  Jan Hubicka  <jh@suse.cz>
4382
4383         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
4384         DECL_INLINE.
4385         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
4386         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
4387         * dojump.c (clear_pending_stack_adjust): Likewise.
4388         * print-tree.c (print_node): Ignore DECL_INLINE.
4389         * tree-inline.c (inlinable_function_p): Likewise.
4390
4391 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
4392
4393         * doc/extend.texi (hot attribute): Document that the hot attribute
4394         turns on -O3 for some ports.
4395         (cold attribute): Document that the cold attribute turns on -Os
4396         for some ports
4397
4398         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
4399         reflect function specific option support.
4400
4401         * target.h (struct target_option_hooks): Add fields to say whether
4402         the cold attribute implies -Os and the hot attribute implies -O3.
4403
4404         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
4405         By default, do not turn on -Os for cold functions.
4406         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
4407         not turn on -O3 for hot functions.
4408
4409         * c-common.c (handle_hot_attribute): Use target hook to determine
4410         if hot functions should enable -O3.
4411         (handle_cold_attribute): Use target hook to determine if cold
4412         functions should enable -Os.
4413
4414         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
4415         (override_options): Move disable scheduling to
4416         optimization_options.
4417         (optimization_options): Disable scheduling here, not
4418         override_options.
4419         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4420         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4421
4422         * config/ia64/ia64.c (ia64_override_options): Move setting
4423         scheduling flags to ia64_optimization_options.
4424         (ia64_optimization_options): Disable scheduling options here, and
4425         not in ia64_override_options.
4426         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4427         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4428
4429 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
4430
4431         PR target/36936
4432         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
4433
4434 2008-07-25  Martin Jambor  <mjambor@suse.cz>
4435
4436         PR tree-optimization/36926
4437         * ipa-prop.c (ipa_analyze_call_uses): Call
4438         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
4439
4440 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
4441
4442         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
4443         movv2si_internal): Add mem = reg alternative.
4444
4445 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
4446
4447         PR bootstrap/36918
4448         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
4449         DEFAULT_PCC_STRUCT_RETURN to 127.
4450
4451 2008-07-24  Jan Hubicka  <jh@suse.cz>
4452
4453         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
4454         (build_cgraph_edges): Likewise.
4455         * cgraph.c (cgraph_node): Do not update assembler hash.
4456         (cgraph_remove_node): Drop non-unit-at-a-time code.
4457         * tree-pass.h (pass_O0_always_inline): Remove.
4458         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
4459         * toplev.c (process_options): Flag unit-at-a-time does not imply
4460         no section anchors.
4461         * cgraphunit.c: Update comments.
4462         (decide_is_function_needed): Drop non-unit-at-a-time mode.
4463         (cgraph_assemble_pending_functions): Remove.
4464         (cgraph_reset_node): Drop non-unit-at-a-time code.
4465         (cgraph_finalize_function): Likewise.
4466         (cgraph_analyze_function): Likewise.
4467         (cgraph_finalize_compilation_unit): Likewise.
4468         (cgraph_expand_function): Likewise.
4469         (cgraph_optimize): Likesise.
4470         (save_inline_function_body): Likewise.
4471         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
4472         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
4473         * ipa-inline.c: Update comments.
4474         (enum inlining_mode): remove INLINE_SPEED.
4475         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
4476         (cgraph_mark_inline_edge): Likewise.
4477         (try_inline): Likewise.
4478         (cgraph_decide_inlining_incrementally): Likewise.
4479         (cgraph_gate_inlining): Remove.
4480         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
4481         (cgraph_gate_early_inlining): Likewise.
4482         (gate_inline_passes): Remove.
4483         (pass_inline_parameters, pass_ipa_inline): Remove gates.
4484         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
4485         pass_O0_always_inline): Remove.
4486         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
4487         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
4488         * opts.c (no_unit_at_a_time_default): Remove.
4489         (decode_options): Remove flag_unit_at_a_time reset and warning.
4490         * opts.h (no_unit_at_a_time_default): Remove.
4491         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
4492         early in GNU dialect.
4493         (merge_decls): Update comment; drop unit-at-a-time check.
4494         (finish_decl): Likewise.
4495         (grok_declaration): Remove flag_inline_trees code.
4496         (finish_functions): Return on function returning non-void on all
4497         statics.
4498         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
4499         * cfgexpand.c (expand_one_static_var): Remove.
4500         (expand_one_var): Remove expand_one_static_var call.
4501         (expand_used_vars_for_block): Remove flag_unit_a_time check.
4502         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
4503         and flag_unit_at_a-time compatibility checks.
4504         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
4505         * tree-inline.c (flag_inline_trees): Remove.
4506         (inlinable_function_p): Don't check it.
4507         (expand_call_inline): Remove non-unit-at-a-time code.
4508         * tree-inline.h (flag_inline_trees): Remove.
4509         * tree-optimize.c (execute_early_local_optimizations): Remove
4510         unit-at-a-time checks.
4511         (tree_rest_of_compilation): Likewise.
4512         * combine.c (setup_incoming_promotions): Likewise.
4513         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
4514         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
4515         * passes.c (pass_inline_parameters): Update comments; remove
4516         O0_alwaysinline pass.
4517         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
4518         (execute_one_pass): Likewise.
4519         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
4520         (ix86_function_sseregparm): Likewise.
4521         * arm.c (arm_function_in_section_p): Likewise.
4522         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
4523         * varpool.c: Update comments.
4524         (decide_is_variable_needed): Remove unit-at-a-time checks.
4525         (varpool_finalize_decl): Likewise.
4526
4527 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
4528
4529         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
4530         to 2 instead of -1.
4531         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
4532
4533 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
4534
4535         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
4536         imp symbol extension.
4537
4538         2008-07-23  Ian Lance Taylor  <iant@google.com>
4539
4540         * tree-vrp.c (infer_value_range): Ignore asm statements when
4541         looking for memory accesses for -fdelete-null-pointer-checks.
4542
4543 2008-07-24  Ben Elliston  <bje@au.ibm.com>
4544
4545         * config/spu/spu-c.c (__vector_keyword): New variable.
4546         (vector_keyword): Likewise.
4547         (spu_categorize_keyword): New function.
4548         (spu_macro_to_expand): Likewise.
4549         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
4550         compiling an ISO C dialect.
4551
4552 2008-07-24  Ben Elliston  <bje@au.ibm.com>
4553
4554         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
4555         conventional usage.
4556
4557 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4558
4559         * configure: Regenerate.
4560         * configure.ac: Require texinfo 4.7.
4561         * doc/install.texi: Document texinfo 4.7 requirement.
4562
4563 2008-07-23  Martin Jambor  <mjambor@suse.cz>
4564
4565         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
4566         rather than for DECL_SAVED_TREE.
4567         * ipa-prop.c: Include diagnostic.h.
4568         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
4569         thoroughly.
4570         (ipa_detect_param_modifications): Function rewritten from scratch.
4571         (ipa_compute_jump_functions): Changed accesses to modification flags.
4572         (ipa_free_node_params_substructures): Update flags destruction.
4573         (ipa_node_duplication_hook): Update flags duplication.
4574         (ipa_print_all_params_modified): Updated flag access.
4575         * ipa-prop.h (struct ipa_param_flags): New structure.
4576         (struct ipa_node_params): New field modification_analysis_done,
4577         modified_flags changed into param_flags.
4578         (ipa_is_ith_param_modified): Changed to use new flags.
4579         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
4580
4581         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
4582         ipa-cp.c and split into two functions.
4583         (ipa_print_node_jump_functions): New function.
4584         (compute_scalar_jump_functions): New function.
4585         (type_like_member_ptr_p): New function.
4586         (compute_pass_through_member_ptrs): New function.
4587         (fill_member_ptr_cst_jump_function): New function.
4588         (determine_cst_member_ptr): New function.
4589         (compute_cst_member_ptr_arguments): New function.
4590         (ipa_compute_jump_functions): Complete rewrite.
4591         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
4592         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
4593         (struct ipa_member_ptr_cst): New structure.
4594         (union jump_func_value): New field member_cst.
4595         * ipa-cp.c (ipcp_lat_is_insertable): New function.
4596         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
4597         jump function types.
4598         (ipcp_print_all_lattices): Slight fprintf rearrangement.
4599         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
4600         instead of ipcp_print_all_jump_functions.
4601         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
4602         only for replacable scalars.
4603
4604         * doc/invoke.texi (Optimize options): Add description of
4605         -findirect-inlining.
4606         * common.opt (flag_indirect_inlining): New flag.
4607         * opts.c (decode_options): Set flag_indirect_inlining when
4608         optimize >= 3.
4609
4610         * ipa-inline.c: Include ipa-prop.h.
4611         (inline_indirect_intraprocedural_analysis): New function.
4612         (inline_generate_summary): Allocate parameter and argument info
4613         structures, call inline_indirect_intraprocedural_analysis on each
4614         node when doing indirect inlining and deallocate indirect inlining
4615         data structures in the end.
4616         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
4617         (free_all_ipa_structures_after_iinln): New function.
4618         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
4619         done.
4620         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
4621
4622         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
4623         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
4624         of computing the frequency separately.
4625         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
4626         of computing the frequency separately.
4627         * ipa-cp.c (ipcp_print_all_structures): Replace a call to
4628         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
4629         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
4630         (ipa_get_stmt_member_ptr_load_param): New function.
4631         (ipa_is_ssa_with_stmt_def): New function.
4632         (ipa_note_param_call): New function.
4633         (ipa_analyze_call_uses): New function.
4634         (ipa_analyze_stmt_uses): New function.
4635         (ipa_analyze_params_uses): New function.
4636         (ipa_free_node_params_substructures): Also free the param_calls linked
4637         list.
4638         (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
4639         (ipa_print_node_param_flags): New function.
4640         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
4641         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
4642         * ipa-prop.h (struct ipa_param_flags): New field called.
4643         (struct ipa_param_call_note): New structure.
4644         (struct ipa_node_params): New fields param_calls and
4645         uses_analysis_done.
4646         (ipa_is_ith_param_called): New function.
4647         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
4648         ipa_analyze_params_uses and dump parameter flags.
4649
4650         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
4651         ipa_propagate_indirect_call_infos if performing indirect inlining,
4652         pass a new parameter new_edges to it.
4653         (add_new_edges_to_heap): New fucntion.
4654         (cgraph_decide_inlining_of_small_functions): New vector
4655         new_indirect_edges for newly found indirect edges , call
4656         ipa_propagate_indirect_call_infos after inlining.
4657         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
4658         inlining if performing indirect inlining.  Call
4659         free_all_ipa_structures_after_iinln when doing so too.
4660         (inline_generate_summary): Do not call
4661         free_all_ipa_structures_after_iinln here.
4662         * ipa-prop.c (update_jump_functions_after_inlining): New function.
4663         (print_edge_addition_message): New function.
4664         (update_call_notes_after_inlining): New function.
4665         (propagate_info_to_inlined_callees): New function.
4666         (ipa_propagate_indirect_call_infos): New function.
4667         * ipa-prop.h: Include cgraph.h
4668         (struct ipa_param_call_note): Fields reordered, new field processed.
4669         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
4670         flag indirect_call.
4671         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
4672         rediscovered call statements.
4673         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
4674         (dump_cgraph_node): Dump also the indirect_call flag.
4675         (cgraph_clone_edge): Copy also the indirect_call flag.
4676         * tree-inline.c (copy_bb): Do not check for fndecls from call
4677         expressions, check for edge availability when moving clones.
4678         (get_indirect_callee_fndecl): New function.
4679         (expand_call_inline): If callee declaration is not apprent from
4680         the statement, try calling get_indirect_callee_fndecl.  Do not
4681         issue warnings or call sorry when not inlinings an indirect edge.
4682         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
4683
4684         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
4685         bit more frandly to matching.
4686         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
4687         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
4688         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
4689
4690 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
4691
4692         PR 36907
4693         * opth-gen.awk: Suppress function specific features when building
4694         target libraries.
4695         * optc-gen.awk: Ditto.
4696
4697 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4698
4699         PR 35058
4700         * diagnostic.c (pedwarn): Add opt parameter.
4701         (pedwarn0): New.
4702         * c-tree.h (pedwarn_init): Add opt parameter.
4703         (pedwarn_c90): Likewise.
4704         (pedwarn_c99): Likewise.
4705         * c-errors.c (pedwarn_c99): Likewise.
4706         (pedwarn_c90): Likewise.
4707         * toplev.h (pedwarn): Update declaration.
4708         (pedwarn0): Declare.
4709         * c-lex.c: All calls to pedwarn changed.
4710         * builtins.c: All calls to pedwarn changed.
4711         * toplev.c: All calls to pedwarn changed.
4712         * c-decl.c: All calls to pedwarn changed.
4713         * c-typeck.c: All calls to pedwarn changed.
4714         * c-common.c: All calls to pedwarn changed.
4715         * c-parser.c: All calls to pedwarn changed.
4716
4717 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
4718             Karthik Kumar  <karthikkumar@gmail.com>
4719
4720         * attribs.c (file scope): Include c-common.h.
4721         (decl_attributes): Add support for #pragma GCC optimize and
4722         #pragma GCC option.
4723
4724         * targhooks.c (default_can_inline_p): New function that is the
4725         default for the TARGET_CAN_INLINE_P target hook.
4726
4727         * targhooks.h (default_can_inline_p): Add declaration.
4728
4729         * tree.c (cl_optimization_node): New static tree for building
4730         OPTIMIZATION_NODE tree.
4731         (cl_target_option_node): New static tree for building
4732         TARGET_OPTION_NODE tree.
4733         (cl_option_hash_table): New hash table for hashing
4734         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
4735         (cl_option_hash_hash): New function to provide the hash value for
4736         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
4737         (cl_option_hash_eq): New function to provide an equality test for
4738         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
4739         (tree_code_size): Add support for OPTIMIZATION_NODE and
4740         TARGET_OPTION_NODE trees.
4741         (tree_code_structure): Add support for OPTIMIZATION_NODE and
4742         TARGET_OPTION_NODE trees.
4743         (build_optimization_node): Build a tree that has all of the
4744         current optimization options.
4745         (build_target_option_node): Build a tree that has the target
4746         options that might be changed on a per function basis.
4747
4748         * tree.h (file scope): Include options.h.
4749         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
4750         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
4751         (TREE_OPTIMIZATION): Ditto.
4752         (TREE_TARGET_SPECIFIC): Ditto.
4753         (struct tree_function_decl): Add fields for remembering the
4754         current optimization options and target specific options.
4755         (struct tree_optimization_option): New tree variant that remembers
4756         the optimization options.
4757         (struct tree_target_option): New tree variant that remembers the
4758         target specific flags that might change for compiling a particular
4759         function.
4760         (union tree_node): Include tree_optimization_option and
4761         tree_target_option fields.
4762         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
4763         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
4764         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
4765         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
4766         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
4767         optimization and target options.
4768         (optimization_default_node): New macro to refer to global_trees
4769         field.
4770         (optimization_current_node): Ditto.
4771         (optimization_cold_node): Ditto.
4772         (optimization_hot_node): Ditto.
4773         (target_option_default_node): Ditto.
4774         (target_option_current_node): Ditto.
4775         (current_option_pragma): Ditto.
4776         (current_optimize_pragma): Ditto.
4777
4778         * target.h (struct gcc_target): Add valid_option_attribute_p,
4779         target_option_save, target_option_restore, target_option_print,
4780         target_option_pragma_parse, and can_inline_p hooks.
4781
4782         * toplev.h (parse_optimize_options): Add declaration.
4783         (fast_math_flags_struct_set_p): Ditto.
4784
4785         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
4786         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
4787         optimize is used.
4788
4789         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
4790         tree_can_inline_p hook to see if one function can inline another.
4791         (cgraph_decide_inlining): Ditto.
4792         (cgraph_decide_inlining_incrementally): Ditto.
4793
4794         * opts.c (decode_options): Add support for running multiple times
4795         to allow functions with different target or optimization options
4796         than was specified on the command line.
4797         (fast_math_flags_struct_set_p): New function that is similar to
4798         fast_math_flags_set_p, except it uses the values in the
4799         cl_optimization structure instead of global variables.
4800
4801         * optc-gen.awk: Add support for TargetSave to allow a back end to
4802         declare new fields that need to be saved when using function
4803         specific options.  Include flags.h and target.h in the options.c
4804         source.  Add support for Save to indicate which options can be set
4805         for individual functions.  Generate cl_optimize_save,
4806         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
4807         cl_target_option_restore, cl_target_option_print functions to
4808         allow functions to use different optimization or target options.
4809
4810         * opt-functions.awk (var_type_struct): Return the type used for
4811         storing the field in a structure.
4812
4813         * opth-gen.awk: Add support for TargetSave to allow a back end to
4814         declare new fields that need to be saved when using function
4815         specific options.  Add support for Save to indicate which options
4816         can be set for individual functions.  Only generate one extern for
4817         Mask fields.  Generate cl_optimization and cl_target_option
4818         structures to remember optimization and target options.
4819
4820         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
4821         collecting new tree nodes.
4822         (TS_TARGET_OPTION): Ditto.
4823
4824         * c-decl.c (merge_decls): Merge function specific target and
4825         optimization options.
4826
4827         * function.c (invoke_set_current_function_hook): If the function
4828         uses different optimization options, change the global variables
4829         to reflect this.
4830
4831         * coretypes.h (struct cl_optimization): Add forward reference.
4832         (struct cl_target_option): Ditto.
4833
4834         * c-pragma.c (option_stack): New static vector to remember the
4835         current #pragma GCC option stack.
4836         (handle_pragma_option): New function to support #pragma GCC option
4837         to change target options.
4838         (optimize_stack): New static vector to remember the current
4839         #pragma GCC optimize stack.
4840         (handle_pragma_optimize): New function to support #pragma GCC
4841         optimize to change optimization options.
4842         (init_pragma): Add support for #pragma GCC optimize and #pragma
4843         GCC option.
4844
4845         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
4846         optimization options.
4847         (TARGET_OPTION_NODE): New tree code for remembering certain target
4848         options.
4849
4850         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
4851         TARGET_OPTION_NODE trees.
4852
4853         * common.opt (-O): Add Optimization flag.
4854         (-Os): Ditto.
4855         (-fmath-errno): Ditto.
4856         (-falign-functions): Add UInteger flag to make sure flag gets full
4857         int in cl_optimization structure.
4858         (-falign-jumps): Ditto.
4859         (-falign-labels): Ditto.
4860         (-falign-loops): Ditto.
4861         (-fsched-stalled-insns): Ditto.
4862         (-fsched-stalled-insns-dep): Ditto.
4863
4864         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
4865         definition.
4866         (TARGET_OPTION_SAVE): Ditto.
4867         (TARGET_OPTION_RESTORE): Ditto.
4868         (TARGET_OPTION_PRINT): Ditto.
4869         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
4870         (TARGET_CAN_INLINE_P): Ditto.
4871         (TARGET_INITIALIZER): Add new hooks.
4872
4873         * tree-inline.c (tree_can_inline_p): New function to determine
4874         whether one function can inline another.  Check if the functions
4875         use compatible optimization options, and also call the backend
4876         can_inline_p hook.
4877
4878         * tree-inline.h (tree_can_inline_p): Add declaration.
4879
4880         * c-common.c (c_common_attribute): Add support for option and
4881         optimize attributes.
4882         (handle_option_attribute): Add support for the option attribute to
4883         allow the user to specify different target options for compiling a
4884         specific function.
4885         (handle_optimize_attribute): Add support for the optimize
4886         attribute to allow the user to specify different optimization
4887         options for compiling a specific function.
4888         (handle_hot_attribute): Turn on -O3 optimization for this one
4889         function if it isn't the default optimization level.
4890         (handle_cold_attribute): Turn on -Os optimization for this one
4891         function if it insn't the default optimization.
4892         (const_char_p): New const char * typedef.
4893         (optimize_args): New static vector to remember the optimization
4894         arguments.
4895         (parse_optimize_options): New function to set up the optimization
4896         arguments from either the optimize attribute or #pragma GCC optimize.
4897
4898         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
4899         (builtin_define_std): Ditto.
4900
4901         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
4902         Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
4903         (x86_64-*-*): Ditto.
4904
4905         * Makefile.in (TREE_H): Add options.h.
4906         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
4907
4908         * doc/extend.texi (option attribute): Document new attribute.
4909         (optimize attribute): Ditto.
4910         (hot attribute): Document hot attribute sets -O3.
4911         (cold attribute): Document cold attribute sets -Os.
4912         (#pragma GCC option): Document new pragma.
4913         (#pragma GCC optimize): Ditto.
4914
4915         * doc/options.texi (TargetSave): Document TargetSave syntax.
4916         (UInteger): Document UInteger must be used for certain flags.
4917         (Save): Document Save option to create target specific options
4918         that can be saved/restored on a function specific context.
4919
4920         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
4921         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
4922
4923         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
4924         (TARGET_OPTION_SAVE): Ditto.
4925         (TARGET_OPTION_RESTORE): Ditto.
4926         (TARGET_OPTION_PRINT): Ditto.
4927         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
4928         (TARGET_CAN_INLINE_P): Ditto.
4929
4930         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
4931         -mfpmath=sse,387.
4932         (-mfpmath=both): Ditto.
4933
4934 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
4935             Karthik Kumar  <karthikkumar@gmail.com>
4936
4937         * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
4938         (TARGET_POPCNT): Ditto.
4939         (TARGET_SAHF): Ditto.
4940         (TARGET_AES): Ditto.
4941         (TARGET_PCLMUL): Ditto.
4942         (TARGET_CMPXCHG16B): Ditto.
4943         (TARGET_RECIP): Move switch into target_flags.
4944         (TARGET_FUSED_MADD): Ditto.
4945         (ix86_arch_features): Make an unsigned char type.
4946         (ix86_tune_features): Ditto.
4947         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
4948         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
4949         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
4950
4951         * config/i386/i386.opt (arch): New TargetSave field to define
4952         fields that need to be saved for function specific option support.
4953         (tune): Ditto.
4954         (fpmath): Ditto.
4955         (branch_cost): Ditto.
4956         (ix86_isa_flags_explicit): Ditto.
4957         (tune_defaulted): Ditto.
4958         (arch_specified): Ditto.
4959         (-m128-long-double): Add Save flag to save option for target
4960         specific option support.
4961         (-m80387): Ditto.
4962         (-maccumulate-outgoing-args): Ditto.
4963         (-malign-double): Ditto.
4964         (-malign-stringops): Ditto.
4965         (-mfancy-math-387): Ditto.
4966         (-mhard-float): Ditto.
4967         (-mieee-fp): Ditto.
4968         (-minline-all-stringops): Ditto.
4969         (-minline-stringops-dynamically): Ditto.
4970         (-mms-bitfields): Ditto.
4971         (-mno-align-stringops): Ditto.
4972         (-mno-fancy-math-387): Ditto.
4973         (-mno-push-args): Ditto.
4974         (-mno-red-zone): Ditto.
4975         (-mpush-args): Ditto.
4976         (-mred-zone): Ditto.
4977         (-mrtd): Ditto.
4978         (-msseregparm): Ditto.
4979         (-mstack-arg-probe): Ditto.
4980         (-m32): Ditto.
4981         (-m64): Ditto.
4982         (-mmmx): Ditto.
4983         (-m3dnow): Ditto.
4984         (-m3dnowa): Ditto.
4985         (-msse): Ditto.
4986         (-msse2): Ditto.
4987         (-msse3): Ditto.
4988         (-msse4.1): Ditto.
4989         (-msse4.2): Ditto.
4990         (-msse4): Ditto.
4991         (-mno-sse4): Ditto.
4992         (-msse4a): Ditto.
4993         (-msse5): Ditto.
4994         (-mrecip): Move flag into target_flags.
4995         (-mcld): Ditto.
4996         (-mno-fused-madd): Ditto.
4997         (-mfused-madd): Ditto.
4998         (-mabm): Move flag into ix86_isa_flags.
4999         (-mcx16): Ditto.
5000         (-mpopcnt): Ditto.
5001         (-msahf): Ditto.
5002         (-maes): Ditto.
5003         (-mpclmul): Ditto.
5004
5005         * config/i386/i386-c.c: New file for #pragma support.
5006         (ix86_target_macros_internal): New function to #define or #undef
5007         target macros based when the user uses the #pragma GCC option to
5008         change target options.
5009         (ix86_pragma_option_parse): New function to add #pragma GCC option
5010         support.
5011         (ix86_target_macros): Move defining the target macros here from
5012         TARGET_CPU_CPP_BUILTINS in i386.h.
5013         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
5014         defined, initialize any subtarget #pragmas.
5015
5016         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
5017         REGISTER_TARGET_PRAGMAS.
5018
5019         * config/i386/t-i386: New file for x86 dependencies.
5020         (i386.o): Make dependencies mirror the include files used.
5021         (i386-c.o): New file, add dependencies.
5022
5023         * config/i386/i386-protos.h (override_options): Add bool argument.
5024         (ix86_valid_option_attribute_tree): Add declaration.
5025         (ix86_target_macros): Ditto.
5026         (ix86_register_macros): Ditto.
5027
5028         * config/i386/i386.c (ix86_tune_features): Move initialization of
5029         the target masks to initial_ix86_tune_features to allow functions
5030         to have different target options.  Make type unsigned char,
5031         instead of unsigned int.
5032         (initial_ix86_tune_features): New static vector to hold processor
5033         masks for the tune variables.
5034         (ix86_arch_features): Move initialization of the target masks to
5035         initial_ix86_arch_features to allow functions to have different
5036         target options.  Make type unsigned char, instead of unsigned int.
5037         (initial_ix86_arch_features): New static vector to hold processor
5038         masks for the arch variables.
5039         (enum ix86_function_specific_strings): New enum to describe the
5040         string options used for attribute((option(...))).
5041         (ix86_target_string): New function to return a string that
5042         describes the target options.
5043         (ix86_debug_options): New function to print the current options in
5044         the debugger.
5045         (ix86_function_specific_save): New function hook to save the
5046         function specific global variables in the cl_target_option structure.
5047         (ix86_function_specific_restore): New function hook to restore the
5048         function specific variables from the cl_target_option structure to
5049         the global variables.
5050         (ix86_function_specific_print): New function hook to print the
5051         target specific options in the cl_target_option structure.
5052         (ix86_valid_option_attribute_p): New function hook to validate
5053         attribute((option(...))) arguments.
5054         (ix86_valid_option_attribute_tree): New function that is common
5055         code between attribute((option(...))) and #pragma GCC option
5056         support that parses the options and returns a tree holding the options.
5057         (ix86_valid_option_attribute_inner_p): New helper function for
5058         ix86_valid_option_attribute_tree.
5059         (ix86_can_inline_p): New function hook to decide if one function
5060         can inline another on a target specific basis.
5061         (ix86_set_current_function); New function hook to switch target
5062         options if the user used attribute((option(...))) or #pragma GCC
5063         option.
5064         (ix86_tune_defaulted): Move to static file scope from
5065         override_options.
5066         (ix86_arch_specified): Ditto.
5067         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
5068         ix86_isa_flags.
5069         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
5070         (OPTION_MASK_ISA_ABM_SET): Ditto.
5071         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
5072         (OPTION_MASK_ISA_CX16_SET): Ditto.
5073         (OPTION_MASK_ISA_SAHF_SET): Ditto.
5074         (OPTION_MASK_ISA_AES_UNSET): Ditto.
5075         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
5076         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
5077         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
5078         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
5079         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
5080         (struct ptt): Move to static file scope from override_options.
5081         (processor_target_table): Ditto.
5082         (cpu_names): Ditto.
5083         (ix86_handle_option): Add support for options that are now isa options.
5084         (override_options): Add support for declaring functions that
5085         support different target options than were specified on the
5086         command line.  Move struct ptt, processor_target_table, cpu_names,
5087         ix86_tune_defaulted, ix86_arch_specified to static file scope.
5088         Add bool argument.  Fix up error messages so the appropriate error
5089         is given for either command line or attribute.
5090         (ix86_previous_fndecl): New static to remember previous function
5091         declaration to see if we need to change target options.
5092         (ix86_builtins_isa): New array to record the ISA of each builtin
5093         function.
5094         (def_builtin): Always create the builtin function, even if the
5095         current ISA doesn't support it.
5096         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
5097         tests for those builtins.
5098         (ix86_init_builtins): Remove TARGET_MMX test for calling
5099         ix86_init_mmx_sse_builtins.
5100         (ix86_expand_builtin): If the current ISA doesn't support a given
5101         builtin, signal an error.
5102         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
5103         (TARGET_SET_CURRENT_FUNCTION): Ditto.
5104         (TARGET_OPTION_SAVE): Ditto.
5105         (TARGET_OPTION_RESTORE): Ditto.
5106         (TARGET_OPTION_PRINT): Ditto.
5107         (TARGET_CAN_INLINE_P): Ditto.
5108
5109 2008-07-22  Rafael Avila de Espindola  <espindola@google.com>
5110
5111         * c-typeck.c (build_external_ref): Don't call assemble_external.
5112         * final.c (output_operand): Call assemble_external.
5113
5114 2008-07-21  DJ Delorie  <dj@redhat.com>
5115
5116         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
5117         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
5118
5119 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5120
5121         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
5122         original insn and splitter contents into ...
5123         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
5124         flag_unsafe_math_optimizations.  Add dummy scratch register.
5125         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
5126         !flag_unsafe_math_optimizations.  Returns number with next
5127         highest magnitude if this is still less or equal to the true
5128         quotient in magnitude.
5129
5130 2008-07-21  Rafael Avila de Espindola  <espindola@google.com>
5131
5132         * Makefile.in: Replace toplev.h with TOPLEV_H.
5133         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
5134         * c-lex.c (fe_file_change): Don't set in_system_header.
5135         * c-parser.c (c_token): Remove in_system_header.
5136         (c_lex_one_token): Don't set in_system_header.
5137         (c_parser_set_source_position_from_token): Don't set in_system_header.
5138         * diagnostic.c (diagnostic_report_diagnostic): Use location from
5139         diagnostic_info.
5140         (warning_at): New.
5141         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
5142         * flags.h (in_system_header): Remove.
5143         * function.c (saved_in_system_header): Remove.
5144         (push_cfun): Don't set in_system_header.
5145         (pop_cfun): Don't set in_system_header.
5146         (push_struct_function): Don't set in_system_header.
5147         * input.h (expanded_location): Add sysp.
5148         (in_system_header_at): New.
5149         (in_system_header): New.
5150         * toplev.c (in_system_header): Remove.
5151         * toplev.h: Include input.h
5152         (warning_at): New.
5153         * tree-cfg.c (execute_warn_function_return): Call warning_at.
5154         * tree-ssa.c (warn_uninit): Call warning_at.
5155         (warn_uninitialized_var): Update calls to warn_uninit.
5156         (warn_uninitialized_phi): Update calls to warn_uninit.
5157         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
5158         (expand_location): Initialize xloc.sysp.
5159         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
5160         (tree_decl_with_vis): Remove in_system_header_flag.
5161
5162 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
5163
5164         PR target/36822
5165         * recog.c (asm_operand_ok): Change the order of the extra
5166         memory constraint checks.
5167
5168 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5169
5170         PR tree-opt/36879
5171         * tree-switch-conversion.c (build_one_array): Call
5172         varpool_mark_needed_node and varpool_finalize_decl
5173         instead of assemble_variable.
5174
5175 2008-07-19  Jan Hubicka  <jh@suse.cz>
5176
5177         * cgraph.c (cgraph_add_new_function): Do early local passes.
5178         * tree-nrv.c (gate_pass_return_slot): New gate.
5179         (pass_nrv): Add the gate.
5180         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
5181         functions.
5182         (coalesce_ssa_name): Coalesce SSA names.
5183         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
5184         not optimizing so unused user vars remains visible.
5185         * common.opt (flag_tree_ter): Always enable by default.
5186         * tree-ssa-ter.c: Include flags.h
5187         (is_replaceable_p): Check that locations match; when aliasing is missing
5188         be conservative about loads.
5189         * tree-optimize.c (gate_init_datastructures): Remove.
5190         (pass_init_datastructures): New.
5191         * passes.c: Reorder passes so we always go into SSA.
5192
5193 2008-07-19  Jan Hubicka  <jh@suse.cz>
5194
5195         * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
5196         * doc/invoke.texi (--combine): Likewise.
5197         (-finline-functions-called-once): Update levels when enabled.
5198         (-funit-at-a-time): Document new behaviour.
5199         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
5200         -fno-section-anchors when disabled explicitly.
5201         (inline params): They are not ignored now.
5202         (precompiled headers): Remove unit-at-a-time as being incompatible.
5203         * opts.c (decode_options): Handle unit-at-a-time as alias;
5204         imply -fno-section-anchors when toplevel reorder is disabled
5205         explicitly.
5206         * common.opt (ftoplevel-reorder): Set default value to 2.
5207         (funit-at-a-time): Set default value to 1.
5208         * config/rs6000/rs6000.c (optimization_options): Set section anchors
5209         to 2.
5210
5211 2008-07-19  Jan Hubicka  <jh@suse.cz>
5212
5213         * builtins.c (expand_builtin_int_roundingfn,
5214         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
5215         it is not useful.
5216
5217 2008-07-19  Richard Guenther  <rguenther@suse.de>
5218
5219         PR bootstrap/36864
5220         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
5221         * tree-ssa-sccvn.c (get_constant_value_id): New function.
5222         * tree-ssa-pre.c (get_expr_value_id): For newly created
5223         constant value-ids make sure to add the expression to its
5224         expression-set.
5225
5226 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
5227
5228         PR middle-end/36877
5229         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
5230         return value of the builtin is ignored.
5231
5232 2008-07-19  Olivier Hainque  <hainque@adacore.com>
5233
5234         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
5235         bits, a C conformant malloc implementation has to provide.
5236         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
5237
5238 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
5239
5240         PR target/36780
5241         PR target/36827
5242         * reload.c (find_reloads_subreg_address): Only reload address if
5243         reloaded == 0, not for reloaded != 1.
5244
5245         Revert:
5246         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
5247         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
5248         (m32c_legitimate_address_p): Handle "++rii" addresses created by
5249         m32c_legitimize_reload_address.
5250
5251         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5252         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
5253         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
5254
5255 2008-07-19  Olivier Hainque  <hainque@adacore.com>
5256
5257         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
5258         argument, saying whether nested array are to be collapsed
5259         into a single array type DIE with multiple subscripts.
5260         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
5261         issues, centralize the nested array types collapsing control and
5262         disable the transformation for Ada.
5263
5264 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
5265
5266         PR target/36786
5267         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
5268         x86_64_shift_adj.
5269         (x86_64_shift_adj_2): New expander.
5270         (x86_64_shift_adj_3): Ditto.
5271         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
5272         to split TImode operands.
5273         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
5274         (ix86_split_lshr): Ditto.
5275
5276 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
5277
5278         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
5279         and __CHAR32_TYPE__.
5280         * c-typeck.c (digest_init): Support char16_t and char32_t.
5281         (set_nonincremental_init_from_string): Idem.
5282
5283 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
5284
5285         PR middle-end/36859
5286         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
5287         PREFERRED_STACK_BOUNDARY.
5288         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
5289
5290 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
5291
5292         PR middle-end/36858
5293         * function.c (locate_and_pad_parm): Cap boundary earlier.
5294
5295 2008-07-17  Julian Brown  <julian@codesourcery.com>
5296
5297         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
5298         no-op for targets which don't use DLLs.
5299
5300 2008-07-17  Martin Jambor  <mjambor@suse.cz>
5301
5302         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
5303         that nodes are relevant by examining the node->analyzed flag.
5304         (ipcp_init_stage): Check which nodes are relevant, assert that the
5305         relevant ones are also required.
5306         (ipcp_propagate_stage): Check on the side arrays are properly
5307         allocated.
5308         (ipcp_print_all_jump_functions): Make sure not to touch any node
5309         that is not analyzed or an edge that does not have a corresponding
5310         entry in the on-the-side vectors.
5311         (ipcp_function_scale_print): Likewise.
5312         (ipcp_update_callgraph): Check that the node is relevant.
5313         (ipcp_insert_stage): Check that the node is relevant.  Check there is
5314         an info for every node and edge.
5315         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
5316         (ipa_print_all_tree_maps): Likewise and a new variable info.
5317         (ipa_print_all_params_modified): Likewise.
5318         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
5319
5320 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
5321
5322         PR target/25343
5323         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
5324
5325 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
5326
5327         PR rtl-optimization/36753
5328         * fwprop.c (use_killed_between): Don't shortcut
5329         single-definition global registers.
5330
5331 2008-07-16  Jan Hubicka  <jh@suse.cz>
5332
5333         * cgraph.h (varpool_empty_needed_queue): Declare.
5334         * cgraphunit.c (output_in_order): Mark all variables as needed;
5335         empty the queue.
5336         * varpool.c (varpool_assemble_node): Update debug queue.
5337         (varpool_assemble_pending_decls): Don't do it here.
5338         (varpool_empty_needed_queue):  New function.
5339
5340 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5341
5342         * recog.c (peephole2_optimize): Fix formatting.
5343
5344 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5345
5346         * c-pch.c (get_ident): Avoid C++ keywords.
5347         * combine-stack-adj.c (single_set_for_csa): Likewise.
5348         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
5349         output_asm_insn): Likewise.
5350         * reload.c (push_secondary_reload, find_reusable_reload,
5351         push_reload, combine_reloads, find_reloads,
5352         debug_reload_to_stream): Likewise.
5353         * reload.h (struct reload): Likewise.
5354         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
5355         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
5356         emit_output_reload_insns): Likewise.
5357         * targhooks.c (default_secondary_reload): Likewise.
5358         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
5359
5360 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5361
5362         * recog.c (validate_change_1, validate_change,
5363         validate_unshare_change, validate_replace_rtx_1, struct
5364         funny_match, constrain_operands, peephole2_optimize): Avoid C++
5365         keywords.
5366         * reload.c (push_secondary_reload, secondary_reload_class,
5367         scratch_reload_class, find_valid_class, find_reusable_reload,
5368         push_reload, find_dummy_reload, find_reloads_address_1,
5369         find_reloads_address_part, find_equiv_reg): Likewise.
5370         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
5371         choose_reload_regs): Likewise.
5372         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
5373         Likewise.
5374         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
5375         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
5376         * sched-rgn.c (concat_INSN_LIST): Likewise.
5377         * stor-layout.c (mode_for_size, mode_for_size_tree,
5378         smallest_mode_for_size): Likewise.
5379
5380 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5381
5382         * cfg.c (dump_reg_info): Avoid C++ keywords.
5383         * dwarf2asm.c (dw2_force_const_mem,
5384         dw2_asm_output_encoded_addr_rtx): Likewise.
5385         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
5386         * expmed.c (expand_shift): Likewise.
5387         * global.c (find_reg): Likewise.
5388         * graph.c (draw_edge): Likewise.
5389         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
5390         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
5391         widen_clz, widen_bswap, expand_parity, expand_unop,
5392         emit_cmp_and_jump_insn_1): Likewise.
5393         * postreload.c (reload_cse_simplify_operands): Likewise.
5394         * ra.h (add_neighbor): Likewise.
5395         * reg-stack.c (remove_regno_note, change_stack): Likewise.
5396         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
5397         record_reg_classes, copy_cost, record_address_regs,
5398         invalid_mode_change_p): Likewise.
5399         * regrename.c (regrename_optimize, scan_rtx_reg,
5400         dump_def_use_chain, find_oldest_value_reg,
5401         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
5402
5403 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
5404
5405         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
5406         MASK_POWERPC64 for power4 in previous commit.
5407
5408 2008-07-16  Olivier Hainque  <hainque@adacore.com>
5409
5410         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
5411         instead of bare conversion to cast const-ness away.
5412
5413 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
5414
5415         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
5416         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
5417         * config/xtensa/xtensa.c (xtensa_function_value): New function.
5418         (TARGET_FUNCTION_VALUE): Define.
5419
5420 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
5421
5422         * config/rs6000/rs6000.c (processor_target_table): Add
5423         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
5424
5425 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
5426
5427         PR target/36827
5428         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
5429         (m32c_legitimate_address_p): Handle "++rii" addresses created by
5430         m32c_legitimize_reload_address.
5431
5432 2007-07-16  Rafael Avila de Espindola  <espindola@google.com>
5433
5434         * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
5435         DECL_IN_SYSTEM_HEADER in sync.
5436
5437 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
5438
5439         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
5440         * tree-ssa-pre.c (pre_expr_eq): Ditto
5441         (get_constant_for_value_id): Take a type as an argument.
5442         (fully_constant_expression): Pass in type.
5443         (find_or_generate_expression): Short circuit constant case.
5444         (create_expression_by_pieces): Remove special casing of
5445         pointer_plus.
5446         (do_regular_insertion): Short circuit constant case.
5447         (do_partial_partial_insertion): Ditto.
5448
5449 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5450
5451         PR target/36782
5452         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
5453
5454 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
5455
5456         * config/xtensa/libgcc-xtensa.ver: New file.
5457         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
5458
5459 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5460
5461         * df-problems.c (df_set_note): Avoid C++ keywords.
5462         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
5463         * dse.c (record_store, remove_useless_values): Likewise.
5464         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
5465         gen_reg_rtx_offset, operand_subword, change_address_1,
5466         change_address, adjust_address_1, offset_address,
5467         widen_memory_access, emit_copy_of_insn_after): Likewise.
5468         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
5469         * fwprop.c (should_replace_address, propagate_rtx_1,
5470         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
5471         Likewise.
5472         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
5473         gcse_emit_move_after, update_ld_motion_stores): Likewise.
5474         * lcm.c (compute_insert_delete, pre_edge_lcm,
5475         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
5476         * lower-subreg.c (resolve_reg_notes): Likewise.
5477         * mode-switching.c (optimize_mode_switching): Likewise.
5478
5479 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5480
5481         * bt-load.c (add_btr_def, migrate_btr_def,
5482         branch_target_load_optimize): Avoid C++ keywords.
5483         * caller-save.c (insert_restore, insert_save, insert_one_insn):
5484         Likewise.
5485         * combine.c (subst, simplify_set, make_extraction,
5486         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
5487         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
5488         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
5489
5490 2008-07-15  Richard Guenther  <rguenther@suse.de>
5491
5492         PR middle-end/36369
5493         * c-common.c (strict_aliasing_warning): Do not warn for
5494         TYPE_REF_CAN_ALIAS_ALL pointers.
5495         (c_common_get_alias_set): may_alias types are not special.
5496         * tree.c (build_pointer_type_for_mode): Look up the may_alias
5497         attribute and set can_ref_all accordingly.
5498         (build_reference_type_for_mode): Likewise.
5499         * doc/extend.texi (may_alias): Clarify.
5500
5501 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5502
5503         PR target/36780
5504         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
5505         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
5506
5507 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5508
5509         PR target/31568
5510         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
5511         gcc_assert, instead call output_operand_lossage.
5512
5513 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
5514
5515         * builtins.c (std_canonical_va_list): Treat structure based
5516         va_list types.
5517
5518 2008-07-15  Ben Elliston  <bje@au.ibm.com>
5519
5520         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
5521
5522 2007-07-14  Rafael Avila de Espindola  <espindola@google.com>
5523
5524         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
5525         is set.
5526
5527 2008-07-14  Jan Hubicka  <jh@suse.cz>
5528
5529         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
5530         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
5531         fix predicates and constraints.
5532         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
5533         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
5534
5535 2008-07-14  Doug Kwan  <dougkwan@google.com>
5536
5537         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
5538         additional option file arm/eabi.opt.
5539         * config/arm/eabi.h (File): New configuration file for EABI targets.
5540         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
5541         SUBSUBTARGET_EXTRA_SPECS.
5542         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
5543         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
5544         from STARTFILE_SPEC so that it can be referenced in an override.
5545         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
5546         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
5547         can be referenced in an override.
5548         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
5549         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
5550         so that it can be referenced in an override.
5551         (LINK_SPEC): Use BPABI_LINK_SPEC.
5552         * config/arm/eabi.opt (File): New.
5553
5554 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5555
5556         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
5557         (FIXED_VALUE_H): New variable.
5558         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
5559         input.h, fixed-value.h.
5560         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
5561         (BASIC_BLOCK_H): Use $(BITMAP_H).
5562         (FUNCTION_H): Add varray.h.
5563         (IPA_REFERENCE_H): Use $(BITMAP_H).
5564         (CGRAPH_H): Add $(BASIC_BLOCK_H).
5565         (DF_H): Use $(BITMAP_H).
5566         (GGC_H): Add statistics.h.
5567         (INSN_ADDR_H): New.
5568         (INSN_ATTR_H): Use it.
5569         (SYSTEM_H): Add safe-ctype.h, filenames.h.
5570         (INPUT_H): New.
5571         (SYMTAB_H): Add $(OBSTACK_H).
5572         (CPP_INTERNAL_H): New.
5573         (TREE_DUMP_H): Add tree-pass.h.
5574         (TREE_FLOW_H): Use $(BITMAP_H)
5575         (PRETTY_PRINT_H): Use $(INPUT_H).
5576         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
5577         (GSTAB_H): New.
5578         (BITMAP_H): New.
5579         (many object files): Fix lots of header dependencies throughout.
5580
5581 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5582
5583         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
5584         New macros.
5585         (s-gtyp-input): Use them to write tmp-gi.list.
5586         (echo_to_gi.list): Remove.
5587
5588 2008-07-14  Richard Guenther  <rguenther@suse.de>
5589
5590         * tree-ssa-sccvn.c (pre_info): Remove.
5591         (switch_to_PRE_table): Likewise.
5592         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
5593         (set_hashtable_value_ids): Do not create value-ids for the
5594         optimistic tables.
5595         (run_scc_vn): Remove double test.  Remove bogus special-case
5596         in value-number printing.
5597         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
5598         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
5599         SSA_NAME_VALUE.
5600         * tree-flow-inline.h (get_value_handle): Remove.
5601         * tree-flow.h (get_value_handle): Remove.
5602
5603 2008-07-14  Martin Jambor  <mjambor@suse.cz>
5604
5605         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
5606         in which we generate arithmetics is not a subrange.
5607
5608 2008-07-14  Martin Jambor  <mjambor@suse.cz>
5609
5610         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
5611
5612 2008-07-14  Richard Guenther  <rguenther@suse.de>
5613
5614         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
5615
5616 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
5617
5618         PR target/36745
5619         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
5620         reload for symbol refs moved to r0 with -fPIC.
5621         (legitimize_pic_address): Use the target register as temporary
5622         reg if possible.
5623         (emit_symbolic_move): Adjust comment.
5624         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
5625         New expanders.
5626
5627 2008-07-14  Ben Elliston  <bje@au.ibm.com>
5628
5629         * c-common.h (C_CPP_HASHNODE): New macro.
5630         * coretypes.h (struct cpp_token): Forward declare.
5631         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
5632         the context-sensitive keyword method.
5633         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
5634         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
5635         expand_bool_pixel): New.
5636         (altivec_categorize_keyword): New function.
5637         (init_vector_keywords): New function.
5638         (rs6000_macro_to_expand): Likewise.
5639         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
5640         compiling an ISO C dialect.
5641
5642 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
5643
5644         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
5645         (create_expression_by_pieces): Fix typo.
5646         (do_regular_insertion): Use debug counter here too.
5647
5648 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
5649
5650         PR target/35492.
5651         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
5652         CONST_OK_FOR_LETTER_P.  All port-local users changed.
5653         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
5654         implement Kp matching power-of-two.
5655         (CONSTRAINT_LEN): Define to match.
5656         * config/cris/cris.md: Replace all use of constraint K with Kc.
5657         ("*btst*): Use Kp for operand 0 of last alternative.
5658
5659 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5660
5661         PR testsuite/36440
5662         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
5663         and quad formats.
5664
5665 2008-07-13  Jan Hubicka  <jh@suse.cz>
5666
5667         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
5668         to be mangled too.
5669
5670 2008-07-13  Richard Guenther  <rguenther@suse.de>
5671
5672         PR middle-end/36811
5673         * langhooks.c (lhd_print_error_function): Deal with recursive
5674         BLOCK trees.
5675
5676 2008-07-12  Jan Hubicka  <jh@suse.cz>
5677
5678         * cgraph.c (assembler_name_hash): New static var.
5679         (hash_node_by_assembler_name, eq_assembler_name): New.
5680         (cgraph_node_for_asm): Use hashtable.
5681         (cgraph_remove_node): Maintain hashtable.
5682         (change_decl_assembler_name): Sanity check that names are not changing
5683         after aliasing was processed.
5684         * cgraph.h (varpoon_node): Add next GGC marker.
5685         * tree.c (decl_assembler_name_equal): Constify.
5686         (decl_assembler_name_hash): New.
5687         * tree.h (decl_assembler_name_equal): Constify.
5688         (decl_assembler_name_hash): Update.
5689
5690 2008-07-12  David Daney  <ddaney@avtrex.com>
5691
5692         * config/mips/driver-native.c (host_detect_local_cpu): Handle
5693         sb1 and r5000 cpus.
5694
5695 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5696
5697         * doc/md.texi: Document the MIPS "v" constraint.
5698         * config/mips/mips.h (reg_class): Revert last change.
5699         (REG_CLASS_NAMES): Likewise.
5700         (REG_CLASS_CONTENTS): Likewise.
5701         * config/mips/mips.c (mips_regno_to_class): Likewise.
5702         * config/mips/constraints.md (v): Likewise, but add documentation.
5703         Add a comment to say that this constraint should not be used in
5704         gcc code.
5705
5706 2008-07-11  DJ Delorie  <dj@redhat.com>
5707
5708         * config/h8300/h8300.md (length): Fix branch offset limit.
5709
5710 2008-07-11  Anatoly Sokolov  <aesok@post.ru>
5711
5712         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
5713         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
5714         (avr_hard_regno_scratch_ok): New function.
5715         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
5716         * config/avr/avr.md (all peepholes that request a scratch register):
5717         Remove avr_peep2_scratch_safe use.
5718
5719 2008-07-11  Tom Tromey  <tromey@redhat.com>
5720             Ian Lance Taylor  <iant@google.com>
5721
5722         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
5723         (struct c_common_resword): Define.
5724         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
5725         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
5726         (c_common_reswords, num_c_common_reswords): Declare.
5727         * c-common.c (c_common_reswords): New global const array.
5728         (num_c_common_reswords): New const int.
5729         * c-parser.c (struct resword, reswords): Don't define.
5730         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
5731         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
5732         than reswords.  If warning about C++ keywords, give them a special
5733         RID code.
5734         (c_lex_one_token): Warn about C++ keywords.  Call
5735         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
5736         (c_parser_external_declaration): Look for RID_xxx rather than
5737         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
5738         (c_parser_statement_after_labels): Likewise.
5739         (c_parser_objc_class_instance_variables): Likewise.
5740         (c_parser_objc_class_declaration): Likewise.
5741         (c_parser_objc_try_catch_statement): Likewise.
5742         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
5743         (declspecs_add_type): Likewise.
5744
5745 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
5746
5747         * ggc-page.c (alloc_page):
5748         Substituting xmalloc, xcalloc with
5749         XNEWVEC and XCNEWVAR macros which add the
5750         needed casts.
5751
5752 2008-07-11  Richard Guenther  <rguenther@suse.de>
5753
5754         PR tree-optimization/36765
5755         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
5756         aliases from HEAP vars to SMTs.
5757
5758 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5759
5760         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
5761         * configure.ac (loose_warn): Move -Wc++-compat from here...
5762         (strict_warn): ...to here.
5763         * configure: Regenerate.
5764
5765 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
5766
5767         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
5768         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
5769         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
5770         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
5771         excluding more specific h8300-*-* and sh-*-* targets.
5772
5773 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
5774
5775         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
5776         (eliminate): Ditto.
5777         (execute_pre): Call loop_optimizer_finalize in early exit.
5778
5779 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
5780
5781         PR middle-end/36790
5782         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
5783         uids in the bitmap, not just VAR_DECL uids.
5784
5785         PR rtl-optimization/36419
5786         * combine-stack-adj.c (adjust_frame_related_expr): New function.
5787         (combine_stack_adjustments_for_block): Call it if needed.  Delete
5788         correct insn.
5789         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
5790         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
5791         prologue sp adjustment.
5792
5793 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
5794
5795         PR other/28322
5796         * opts.c (print_ignored_options): Report postponed diagnostics for
5797         unknown -Wno-* options as warnings, not errors.
5798         (postpone_unknown_option_error): Renamed to...
5799         (postpone_unknown_option_warning): ... this.
5800
5801 2008-07-09  Doug Kwan  <dougkwan@google.com>
5802
5803         Revert:
5804         2008-07-08  Doug Kwan  <dougkwan@google.com>
5805
5806         * config/arm/arm.opt (mandroid): New option.
5807         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
5808         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
5809         (CC1_SPEC): Same.
5810         (CC1PLUS_SPEC): Same.
5811         (LIB_SPEC): Same.
5812         (STARTFILE_SPEC): Same.
5813         (ENDFILE_SPEC): Same.
5814         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
5815         used.
5816
5817 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
5818
5819         PR target/35802
5820         * config/mips/mips.h (reg_class): Remove V1_REG.
5821         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
5822         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
5823         instead of V1_REGS.
5824         (mips_get_tp): New function.
5825         (mips_legitimize_tls_address): Use it.
5826         * config/mips/constraints.md (v): Delete.
5827         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
5828         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
5829         After reload, split into a move and ...
5830         (*tls_get_tp_<mode>_split): ...this new instruction.
5831
5832 2008-07-09  David Daney  <ddaney@avtrex.com>
5833
5834         * config/mips/driver-native.c: Include coretypes.h and tm.h.
5835
5836 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
5837
5838         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
5839         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
5840         Add c argument.
5841         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
5842         htab_delete should be called.  Don't free c.
5843         (lookup_tmp_var): Create temp_htab lazily.
5844         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
5845         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
5846         callers.
5847         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
5848         lower_omp_ordered, lower_omp_critical, lower_omp_for,
5849         create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
5850         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
5851         * tree-sra.c (generate_element_init): Likewise.
5852         * tree-mudflap.c (execute_mudflap_function_ops,
5853         execute_mudflap_function_decls): Likewise.
5854         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
5855         * tree-gimple.h (struct gimplify_ctx): New type.
5856         (push_gimplify_context): Adjust prototype.
5857
5858 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
5859
5860         * tree-ssa-pre.c (phi_translate_1): Update placement of
5861         add_to_value calls.
5862
5863 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
5864
5865         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
5866         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
5867         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
5868         * targhooks.c (default_hard_regno_scratch_ok): New function.
5869         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
5870         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
5871         * recog.c:  Include "target.h".
5872         (peep2_find_free_register): Add check for global regs. Add target
5873         specific check.
5874         * Makefile.in (recog.o): Depend on target.h.
5875
5876 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
5877
5878         * config/sh/sh.c (sh_canonical_va_list_type): New.
5879         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
5880
5881 2008-07-09  Raksit Ashok <raksit@google.com>
5882
5883         * doc/invoke.texi (Option Summary): Mention new option
5884         -Wdisallowed-function-list=...
5885         (Warning Options): Document -Wdisallowed-function-list=...
5886         * common.opt (Wdisallowed-function-list=): New flag.
5887         * flags.h (warn_disallowed_functions): External definition of new
5888         boolean warning flag.
5889         (warn_if_disallowed_function_p): Declare new function.
5890         * opts.c (warning_disallowed_functions): New static variable.
5891         (warn_disallowed_functions): New boolean warning flag.
5892         (warn_if_disallowed_function_p): New function.
5893         (add_comma_separated_to_vector): Rename
5894         add_instrument_functions_exclude_list to this.
5895         (common_handle_option): Handle new option. Rename calls to
5896         add_instrument_functions_exclude_list into calls to
5897         add_comma_separated_to_vector.
5898         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
5899         based on flag warn_disallowed_functions.
5900
5901 2008-07-09  Christian Bruel  <christian.bruel@st.com>
5902
5903         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
5904          instead of get_attr_length.
5905
5906 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5907
5908         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
5909         keywords.
5910         * genemit.c (gen_insn): Likewise.
5911         * gengtype.c (note_def_vec): Likewise.
5912         * gengtype.h (note_def_vec): Likewise.
5913         * genoutput.c (struct data, output_insn_data, process_template,
5914         gen_expand, gen_split, note_constraint): Likewise.
5915         * genrecog.c (new_decision, add_to_sequence, factor_tests,
5916         make_insn_sequence): Likewise.
5917         * gensupport.c (record_insn_name): Likewise.
5918
5919 2008-07-08  Doug Kwan  <dougkwan@google.com>
5920
5921         * config/arm/arm.opt (mandroid): New option.
5922         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
5923         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
5924         (CC1_SPEC): Same.
5925         (CC1PLUS_SPEC): Same.
5926         (LIB_SPEC): Same.
5927         (STARTFILE_SPEC): Same.
5928         (ENDFILE_SPEC): Same.
5929         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
5930         used.
5931
5932 2008-07-08  Raksit Ashok  <raksit@google.com>
5933
5934         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
5935         (set_storage_via_setmem): Fix expected_align parameter.
5936         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
5937         missing from the list.
5938         * doc/md.texi (movmem): Explicitly state that expected alignment is
5939         to be expressed in bytes.
5940         (setmem): Explicitly state that expected alignment is to be expressed
5941         in bytes.
5942
5943 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
5944
5945         * reload.c (find_reloads_subreg_address): Do not require validity
5946         of address in original mode before reloading address.
5947
5948 2008-07-07  Tianwei Sheng  <tianweis@google.com>
5949
5950         * df-core.c (df_remove_problem): Adjust the access to avoid out of
5951         bounds array access.
5952
5953 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
5954
5955         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
5956
5957 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
5958
5959         Fix PR tree-optimization/23455
5960         Fix PR tree-optimization/35286
5961         Fix PR tree-optimization/35287
5962         * Makefile.in (OBJS-common): Remove tree-vn.o.
5963         (tree-vn.o): Remove.
5964         * dbgcnt.def: Add treepre_insert debug counter.
5965         * gcc/tree-flow.h (add_to_value): Updated for other changes.
5966         (debug_value_expressions): Ditto.
5967         (print_value_expressions): Ditto.
5968         * tree-pretty-print.c (dump_generic_node): Updated for
5969         VALUE_HANDLE removal.
5970         * tree-ssa-dom.c (record_equality): Ditto.
5971         (cprop_operand): Ditto.
5972         (lookup_avail_expr): Ditto.
5973         * tree-ssa-threadedge.c
5974         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
5975         (simplify_control_stmt_condition): Ditto.
5976         * tree.c (tree_code_size): Ditto.
5977         (tree_node_structure): Ditto.
5978         (iterative_hash_expr): Ditto.
5979         * tree.def: Ditto.
5980         * tree.h (VALUE_HANDLE_ID): Ditto.
5981         (VALUE_HANDLE_EXPR_SET): Ditto.
5982         (struct tree_value_handle): Ditto.
5983         (union tree_node): Ditto.
5984         * treestruct.def: Ditto.
5985         * tree-vn.c: Removed.
5986         * tree-ssa-pre.c: Rewritten entirely.
5987         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
5988         (constant_value_ids): Ditto.
5989         (vn_nary_op_t): Moved to header.
5990         (vn_phi_t): Ditto.
5991         (vn_reference_op_t): Ditto
5992         (vn_reference_t): Ditto.
5993         (next_value_id): New variable.
5994         (VN_INFO): Add an assert.
5995         (vn_constant_eq): New function.
5996         (vn_constant_hash): Ditto.
5997         (get_or_alloc_constant_value_id): Ditto.
5998         (value_id_constant_p): Ditto.
5999         (vn_reference_compute_hash): De-staticify.
6000         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
6001         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
6002         (valueize_refs): Update opcode if it changes from ssa name to constant.
6003         (vn_reference_lookup_1): Add new argument.
6004         (vn_reference_lookup):  Ditto.
6005         (vn_reference_lookup_pieces): New function.
6006         (vn_reference_insert): Add return type. Modify to deal with value ids.
6007         (vn_reference_insert_pieces):  New function.
6008         (vn_nary_op_compute_hash): De-staticify.
6009         (vn_nary_op_eq): Ditto.
6010         (vn_nary_op_lookup_pieces): New function.
6011         (vn_nary_op_lookup): Add new argument.
6012         (vn_nary_op_insert_pieces): New function.
6013         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
6014         (vn_phi_insert): Ditto.
6015         (visit_unary_op): Update for callee changes.
6016         (visit_binary_op): Ditto.
6017         (visit_reference_op_load): Ditto.
6018         (visit_reference_op_store): Ditto.
6019         (init_scc_vn): Init next_value_id, constant_to_value_id and
6020         constant_value_ids.
6021         (free_scc_vn): Free them.
6022         (set_hashtable_value_ids): New function.
6023         (run_scc_vn): Use it.
6024         (get_max_value_id): New function.
6025         (get_next_value_id): Ditto.
6026         (expressions_equal_p): Moved from tree-vn.c
6027         (sort_vuses): Ditto.
6028         (sort_vuses_heap): Ditto.
6029         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
6030         above).
6031         * tree.c (iterative_hash_hashval_t): Made non-static
6032         * tree.h (iterative_hash_hashval_t): Declare it.
6033
6034 2008-07-08  Martin Jambor  <mjambor@suse.cz>
6035
6036         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
6037         instead of ipa_create_node_params.
6038         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
6039         ipa_check_create_edge_args, free them with
6040         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
6041
6042         * ipa-prop.c: Include flags.h and tree-inline.h.
6043         (ipa_node_params_vector): New variable.
6044         (ipa_edge_args_vector): New variable.
6045         (edge_removal_hook_holder): New variable.
6046         (node_removal_hook_holder): New variable.
6047         (edge_duplication_hook_holder): New variable.
6048         (node_duplication_hook_holder): New variable.
6049         (ipa_detect_param_modifications): Check for presence of modified flags.
6050         (ipa_compute_jump_functions): Check for presence of jump functions.
6051         (ipa_free_edge_args_substructures): New function.
6052         (ipa_create_node_params): Removed.
6053         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
6054         (ipa_free_node_params_substructures): New function.
6055         (ipa_free_all_node_params): Changed to deallocate the on-the-side
6056         vector.
6057         (ipa_edge_removal_hook): New function.
6058         (ipa_node_removal_hook): New function.
6059         (duplicate_array): New function.
6060         (ipa_edge_duplication_hook): New function.
6061         (ipa_node_duplication_hook): New function.
6062         (ipa_register_cgraph_hooks): New function.
6063         (ipa_unregister_cgraph_hooks): New function.
6064         (free_all_ipa_structures_after_ipa_cp): New function.
6065
6066         * ipa-prop.h: Include vec.h.
6067         (ipa_node_params_t): New typedef with vector types for it.
6068         (ipa_edge_args_t):  New typedef with vector types for it.
6069         (IPA_NODE_REF): Changed to access an on-the-side vector.
6070         (IPA_EDGE_REF): Changed to access an on-the-side vector.
6071         (ipa_check_create_node_params): New function.
6072         (ipa_check_create_edge_args): New function.
6073
6074         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
6075         all users.
6076
6077 2008-07-07  Tom Tromey  <tromey@redhat.com>
6078
6079         * configure, config.in: Rebuilt.
6080         * configure.ac: Don't check for scandir or alphasort.
6081
6082 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
6083
6084         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
6085         types immediately after creating them.
6086
6087 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
6088
6089         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
6090
6091 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
6092
6093         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
6094         dump_constraint_graph.
6095         (dump_constraint_edge): New function.
6096         (dump_constraint_graph): New function.
6097         (debug_constraint_graph): New function.
6098         (dump_constraint): Removed useless comparison.
6099         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
6100         (dump_constraint_graph): Declare.
6101         (debug_constraint_graph): Declare.
6102         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
6103
6104 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
6105
6106         * config/i386/i386.c (is_va_list_char_pointer): New.
6107         (ix86_va_start): Replace compare with ms_va_list_type_node
6108         by is_va_list_char_pointer.
6109         (ix86_gimplify_va_arg): Likewise.
6110
6111 2008-07-07  Martin Jambor  <mjambor@suse.cz>
6112
6113         * cgraph.c (cgraph_edge_max_uid): New variable.
6114         (struct cgraph_edge_hook_list): New type.
6115         (struct cgraph_node_hook_list): New type.
6116         (struct cgraph_2edge_hook_list): New type.
6117         (struct cgraph_2node_hook_list): New type.
6118         (first_cgraph_edge_removal_hook): New variable.
6119         (first_cgraph_node_removal_hook): New variable.
6120         (first_cgraph_edge_duplicated_hook): New variable.
6121         (first_cgraph_node_duplicated_hook): New variable.
6122         (cgraph_add_edge_removal_hook): New function.
6123         (cgraph_remove_edge_removal_hook): New function.
6124         (cgraph_call_edge_removal_hooks):  New function.
6125         (cgraph_add_node_removal_hook):  New function.
6126         (cgraph_remove_node_removal_hook):  New function.
6127         (cgraph_call_node_removal_hooks):  New function.
6128         (cgraph_add_edge_duplication_hook):  New function.
6129         (cgraph_remove_edge_duplication_hook):  New function.
6130         (cgraph_call_edge_duplication_hooks):  New function.
6131         (cgraph_add_node_duplication_hook):  New function.
6132         (cgraph_remove_node_duplication_hook):  New function.
6133         (cgraph_call_node_duplication_hooks):  New function.
6134         (cgraph_create_edge): Assign to edge uid.
6135         (cgraph_remove_edge): Call edge removal hooks.
6136         (cgraph_node_remove_callees): Call edge removal hooks.
6137         (cgraph_node_remove_callers): Call edge removal hooks.
6138         (cgraph_remove_node): Call node removal hooks.
6139         (cgraph_clone_edge): Call edge duplication hooks.
6140         (cgraph_clone_node): Call node duplication hooks.
6141
6142         * cgraph.h (cgraph_edge): New field uid.
6143         (cgraph_edge_hook): New type.
6144         (cgraph_node_hook): New type.
6145         (cgraph_2edge_hook): New type.
6146         (cgraph_2node_hook): New type.
6147
6148 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
6149
6150         * config.in: Regenerate.
6151
6152 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
6153
6154         * gcc.c (print_sysroot): New.
6155         (option_map, display_help, process_command): Handle the
6156         -print-sysroot option.
6157         (main): Print the sysroot if requested.
6158         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
6159
6160 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6161
6162         PR target/34780
6163         * unwind-pe.h (size_of_encoded_value): add attribute unused.
6164
6165 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
6166
6167         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
6168         (assign_parm_setup_block_p): Also check mode of entry_parm.
6169
6170 2008-07-07  Richard Guenther  <rguenther@suse.de>
6171
6172         * tree-ssa-structalias.h (set_used_smts): Remove.
6173         * tree-ssa-structalias.c (used_smts): Likewise.
6174         (set_used_smts): Likewise.
6175         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
6176         call to set_used_smts.
6177
6178 2008-07-07  Richard Guenther  <rguenther@suse.de>
6179
6180         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
6181         (new_var_info): Set it to false.
6182         (solution_set_add): Correctly handle pointers outside a var and
6183         inside a field.
6184         (type_safe): Treat variables with is_full_var properly.
6185         (do_sd_constraint): Likewise.
6186         (do_ds_constraint): Likewise.
6187         (process_constraint): Remove zeroing offset for !use_field_sensitive.
6188         (get_constraint_for_ptr_offset): New function.
6189         (get_constraint_for_component_ref): For addresses at least include
6190         the last field of the variable.  Handle is_full_vars properly.
6191         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
6192         (handle_ptr_arith): Remove.
6193         (find_func_aliases): Simplify assignment handling.
6194         (create_function_info_for): For parameter and result varinfos set
6195         is_full_var flag.
6196         (create_variable_info_for): Set is_full_var flag whenever we
6197         just created a single varinfo for a decl.
6198         (init_alias_vars): Initialize use_field_sensitive from
6199         max-fields-for-field-sensitive parameter.
6200
6201 2008-07-07  Richard Guenther  <rguenther@suse.de>
6202
6203         PR tree-optimization/36713
6204         * tree-flow-inline.h (is_call_used): New function.
6205         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
6206         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
6207         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
6208
6209 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
6210
6211         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
6212
6213 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
6214
6215         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
6216
6217 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
6218             Nathan Sidwell  <nathan@codesourcery.com>
6219
6220         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
6221         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
6222         tmake_file.
6223         * config/m68k/t-linux: New.
6224         * doc/install.texi: Document m68k-*-linux is now multilibbed by
6225         default.
6226
6227 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
6228
6229         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
6230         * config/m68k/m68k-devices.def: Remove multilibs that only differ
6231         by MAC/EMAC.
6232
6233 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6234
6235         * gcc.c (execute): Fix -Wc++-compat warning.
6236
6237 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
6238
6239         PR target/36720
6240         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
6241         constant for little endian.
6242
6243 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
6244
6245         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
6246         mips_base_mips16 instead of TARGET_MIPS16.
6247         (mips_base_mips16): Declare.
6248         * config/mips/mips.c (mips_base_mips16): Make global.
6249         (was_mips16_p): Remove GTY marker.
6250         (was_mips16_pch_p): New variable.
6251         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
6252         (mips_override_options): Force to non-MIPS16 mode initially.
6253         Do not complain about MIPS16 PIC incompatibilities here.
6254         Only allow -mgpopt if -mexplicit-relocs is in force for
6255         non-MIPS16 code.
6256
6257 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
6258
6259         * configure.ac: Check for caddr_t, define to char * if not defined.
6260         * configure: Regenerate.
6261         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
6262         (mmap_gt_pch_use_address): Likewise.
6263         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
6264
6265 2008-07-06  Richard Guenther  <rguenther@suse.de>
6266
6267         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
6268         (new_var_info): Deal with it.
6269         (solution_set_add): Likewise.
6270         (bitpos_of_field): Make signed, fix.
6271         (struct fieldoff): Remove type and decl fields.  Make size field
6272         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
6273         flags.
6274         (fieldoff_compare): Deal with it.
6275         (push_fields_onto_fieldstack): Remove has_union argument, glob
6276         adjacent non-pointer fields together.
6277         (create_function_info_for): Do not set has_union.
6278         (create_variable_info_for): Simplify.
6279
6280 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
6281
6282         * config.gcc (extra_headers): Add cross-stdarg.h for target
6283         x86_64-*-* and i?86-*-*.
6284         * config/i386/cross-stdarg.h: New.
6285         * builtins.c (std_fn_abi_va_list): New.
6286         (std_canonical_va_list_type): New.
6287         (stabilize_va_list): Replace va_list_type_node use by
6288         mtarget.canonical_va_list_type.
6289         (gimplify_va_arg_expr): Likewise.
6290         (expand_builtin_va_copy): Replace va_list_type_node use by
6291         mtarget.fn_abi_va_list.
6292         * tree-sra.c (is_va_list_type): New helper.
6293         (decl_can_be_decomposed_p): Replace
6294         va_list_type_node use by is_va_list_type.
6295         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
6296         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
6297         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
6298         * config/i386/i386-protos.h (ix86_get_valist_type): New.
6299         (ix86_enum_va_list): New.
6300         * config/i386/i386.c (sysv_va_list_type_node): New.
6301         (ms_va_list_type_node): New.
6302         (ix86_function_type_abi): Remove sorry.
6303         (ix86_build_builtin_va_list_abi): New.
6304         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
6305         for 64-bit targets.
6306         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
6307         (ix86_init_builtins_va_builtins_abi): New.
6308         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
6309         for 64-bit targets.
6310         (ix86_handle_abi_attribute): New.
6311         (attribute_spec): Add sysv_abi and ms_abi.
6312         (ix86_fn_abi_va_list): New.
6313         (ix86_canonical_va_list_type): New.
6314         (ix86_enum_va_list): New.
6315         (TARGET_FN_ABI_VA_LIST): New.
6316         (TARGET_CANONICAL_VA_LIST_TYPE): New.
6317         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
6318         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
6319         (TARGET_CANONICAL_VA_LIST_TYPE): New.
6320         (TARGET_ENUM_VA_LIST): New.
6321         * expr.h (std_fn_abi_va_list): New.
6322         (std_canonical_va_list_type): New.
6323         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
6324         (TARGET_CANONICAL_VA_LIST_TYPE): New.
6325         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
6326         TARGET_CANONICAL_VA_LIST_TYPE.
6327         * target.h (struct gcc_target): Add fn_abi_va_list hook
6328         and canonical_va_list_type hook.
6329
6330 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6331
6332         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
6333         integral and pointer types.
6334
6335 2008-07-04  Roger Sayle  <roger@eyesopen.com>
6336
6337         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
6338         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
6339
6340 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
6341
6342         PR target/36684
6343         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
6344
6345 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
6346
6347         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
6348         build_gimple_modify_stmt.
6349         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
6350         gimple operand.  Use fold_build* instead of build*.
6351
6352 2008-07-04  Richard Guenther  <rguenther@suse.de>
6353
6354         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
6355         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
6356         properly to compute the reachability set if we do field-sensitive PTA.
6357         * invoke.texi (max-fields-for-field-sensitive): Document default.
6358         * opts.c (decode_options): Set max-fields-for-field-sensitive to
6359         100 for optimize >= 2.
6360
6361 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6362
6363         * ggc-zone.c (lookup_page_table_if_allocated,
6364         set_page_table_entry, zone_find_object_size, alloc_small_page,
6365         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
6366         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
6367         -Wc++-compat and/or -Wcast-qual warnings.
6368
6369 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
6370
6371         PR target/36634
6372         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
6373         pic_offset_table_rtx to be marked as used here.
6374         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
6375         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
6376         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
6377         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
6378         !TARGET_SECURE_PLT.
6379
6380 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6381
6382         * alloc-pool.c (hash_descriptor, eq_descriptor,
6383         alloc_pool_descriptor): Fix -Wc++-compat warnings.
6384         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
6385         Likewise.
6386         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
6387         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
6388         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
6389         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
6390         Likewise.
6391
6392 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
6393
6394         * tree-flow.h (loop_only_exit_p): Declare.
6395         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
6396         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
6397         the number of iterations if it is constant.  Otherwise, if this is the
6398         only possible exit of the loop, use the conservative estimate on the
6399         number of iterations of the entire loop if available.
6400
6401 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
6402
6403         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
6404         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
6405         Add synchronization functions.
6406         * config/sync.c: New file.
6407         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
6408         (LIBGCC_SYNC_CFLAGS): Likewise.
6409
6410 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
6411
6412         PR target/36710
6413         * config/i386/i386.md (mode): Add TF to "mode" attribute.
6414         (*pushtf_sse): New insn pattern.
6415         (pushtf splitters): New splitters.
6416
6417 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
6418
6419         PR middle-end/35736
6420         * predict.c (build_predict_expr): Use void_type_node for the tree
6421         type, instead of NULL_TREE.
6422
6423 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
6424
6425         * config/i386/i386.c (contains_aligned_value_p): Return true
6426         for TCmode.
6427         (ix86_data_alignment): Align TCmode to 128bits.
6428         (ix86_local_alignment): Likewise.
6429
6430 2008-07-03  Andrew Haley  <aph@redhat.com>
6431
6432         PR bootstrap/33304
6433         * vec.h (VEC_TA): New.
6434         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
6435         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
6436         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
6437         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
6438         (C_COMMON_FIXED_TYPES): Remove first arg.
6439         (C_COMMON_FIXED_MODE_TYPES): Likewise.
6440         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
6441         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
6442         not to use empty macro arguments.
6443
6444 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
6445
6446         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
6447         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
6448         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
6449         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
6450         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
6451         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
6452         config/ia64/crtn.asm, config/m68hc11/larith.asm,
6453         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
6454         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
6455         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
6456         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
6457         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
6458         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
6459         config/rs6000/e500crtres64gpr.asm,
6460         config/rs6000/e500crtres64gprctr.asm,
6461         config/rs6000/e500crtrest32gpr.asm,
6462         config/rs6000/e500crtrest64gpr.asm,
6463         config/rs6000/e500crtresx32gpr.asm,
6464         config/rs6000/e500crtresx64gpr.asm,
6465         config/rs6000/e500crtsav32gpr.asm,
6466         config/rs6000/e500crtsav64gpr.asm,
6467         config/rs6000/e500crtsav64gprctr.asm,
6468         config/rs6000/e500crtsavg32gpr.asm,
6469         config/rs6000/e500crtsavg64gpr.asm,
6470         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
6471         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
6472         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
6473         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
6474         config/sparc/sol2-cn.asm: Remove .file directives.
6475
6476 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
6477
6478         * resource.c (mark_referenced_resources): Look inside
6479         UNSPEC_VOLATILEs and ASM_INPUTs.
6480
6481 2008-07-02  Ian Lance Taylor  <iant@google.com>
6482
6483         * rtlanal.c (add_reg_note): New function.
6484         * rtl.h (add_reg_note): Declare.
6485         * auto-inc-dec.c (attempt_change): Use add_reg_note.
6486         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
6487         * builtins.c (expand_builtin_longjmp): Likewise.
6488         (expand_builtin_nonlocal_goto): Likewise.
6489         * calls.c (emit_call_1, expand_call): Likewise.
6490         * cfgexpand.c (add_reg_br_prob_note): Likewise.
6491         * cfglayout.c (fixup_reorder_chain): Likewise.
6492         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
6493         (commit_one_edge_insertion): Likewise.
6494         * combine.c (move_deaths, distribute_notes): Likewise.
6495         * df-problems.c (df_set_note): Likewise.
6496         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
6497         (set_unique_reg_note): Likewise.
6498         (emit_copy_of_insn_after): Likewise.
6499         * expr.c (expand_expr_real): Likewise.
6500         * gcse.c (add_label_notes): Likewise.
6501         * haifa-sched.c (create_check_block_twin): Likewise.
6502         * jump.c (mark_jump_label_1): Likewise.
6503         * loop-doloop.c (add_test, doloop_modify): Likewise.
6504         * loop-unswitch.c (compare_and_jump_seq): Likewise.
6505         * lower-subreg.c (move_eh_region_note): Likewise.
6506         * optabs.c (emit_libcall_block): Likewise.
6507         * predict.c (predict_insn): Likewise.
6508         (combine_predictions_for_insn): Likewise.
6509         * recog.c (peephole2_optimize): Likewise.
6510         * regmove.c (try_auto_increment): Likewise.
6511         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
6512         * reload.c (find_reloads): Likewise.
6513         * reload1.c (fixup_eh_region_note): Likewise.
6514         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
6515         * reorg.c (delete_prior_computation): Likewise.
6516         (delete_computation, dbr_schedule): Likewise.
6517         * config/pa/pa.c (legitimize_pic_address): Likewise.
6518         * config/sh/sh.c (sh_reorg): Likewise.
6519
6520 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
6521
6522         PR target/36669
6523         * config/libgcc-glibc.ver: Add %exclude.
6524         * config/m32r/libgcc-glibc.ver: Likwise.
6525         * config/s390/libgcc-glibc.ver: Likwise.
6526         * config/sh/libgcc-glibc.ver: Likwise.
6527         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
6528
6529         * config/i386/libgcc-glibc.ver: New.
6530
6531         * config/i386/libgcc-x86_64-glibc.ver: Removed.
6532
6533 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
6534
6535         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
6536         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
6537         i[34567]86-*-linux*, x86_64-*-linux*.  Add
6538         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
6539         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
6540         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
6541         i[34567]86-*-linux*, x86_64-*-linux*.
6542
6543         * libgcc-std.ver: Add empty GCC_4.4.0.
6544
6545         * mkmap-symver.awk: Support multiple versions per symbol.
6546
6547         * config/i386/i386.c (ix86_init_builtins): Always define
6548         __builtin_fabsq and __builtin_copysignq with fallbacks.
6549         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
6550         and __builtin_copysignq if SSE2 isn't available.
6551
6552         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
6553         (LIBGCC2_TF_CEXT): Likwise.
6554         (TF_SIZE): Likwise.
6555
6556         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
6557
6558         * config/i386/sfp-machine.h: Moved to libgcc.
6559
6560         * config/i386/sfp-machine.h: New.
6561         * config/i386/t-linux: Likwise.
6562
6563         * config/i386/t-darwin: Remove softfp_wrap_start and
6564         softfp_wrap_end.
6565         * config/i386/t-darwin64: Likewise.
6566
6567         * config/i386/t-fprules-softfp64: Renamed to ...
6568         * config/i386/t-fprules-softfp: This.
6569
6570         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
6571         and softfp_wrap_end.
6572
6573 2008-07-02  Jason Merrill  <jason@redhat.com>
6574
6575         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
6576
6577         * tree.c (ctor_to_list): New fn.
6578         * tree.h: Declare it.
6579         (CONSTRUCTOR_ELT): New macro.
6580         (CONSTRUCTOR_NELTS): New macro.
6581
6582 2008-07-02  Richard Guenther  <rguenther@suse.de>
6583
6584         * tree-ssa-structalias.c (struct variable_info): Reorder
6585         to fill padding on 64bit hosts.  Make collapsed_to an int.
6586         (get_varinfo_fc): Deal with that.
6587         (new_var_info): Likewise.
6588         (collapse_rest_of_var): Likewise.
6589
6590 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
6591
6592         * doc/install.texi (--enable-java-home): Document.
6593         (--enable-aot-compile-rpm): Likewise.
6594         (--with-arch-directory): Likewise.
6595         (--with-os-directory): Likewise.
6596         (--with-origin-name): Likewise.
6597         (--with-arch-suffix): Likewise.
6598         (--with-jvm-root-dir): Likewise.
6599         (--with-jvm-jar-dir): Likewise.
6600         (--with-python-dir): Likewise.
6601
6602 2008-07-02  Richard Guenther  <rguenther@suse.de>
6603
6604         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
6605         from decls explicitly.  Merge operand checking from tuples.
6606
6607 2008-07-02  Martin Jambor  <mjambor@suse.cz>
6608
6609         * tree-switch-conversion.c: Included timevar.h which I forgot before.
6610
6611 2008-07-02  Martin Jambor  <mjambor@suse.cz>
6612
6613         * tree-switch-conversion.c: Included timevar.h
6614         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
6615
6616         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
6617
6618 2008-07-02  Martin Jambor  <mjambor@suse.cz>
6619
6620         * tree-switch-conversion.c: Corrected various comments and
6621         whitespace issues
6622         (build_constructors): Fixed minor formatting mistakes.
6623
6624         * invoke.texi (Optimize Options): Corrected the
6625         switch-conversion-max-branch-ratio parameter.
6626
6627 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
6628
6629         * final.c (asm_insn_count): Return zero for an empty asm body.
6630
6631 2008-07-02  Richard Guenther  <rguenther@suse.de>
6632
6633         * bitmap.h (bitmap_set_bit): Return bool.
6634         (bitmap_clear_bit): Likewise.
6635         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
6636         write to the bitmap if it would.
6637         (bitmap_clear_bit): Likewise.
6638         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
6639         bitmap_set_bit return value.
6640         (add_pred_graph_edge): Likewise.
6641         (add_graph_edge): Likewise.
6642         (do_sd_constraint): Likewise.
6643         (do_ds_constraint): Likewise.
6644
6645 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6646
6647         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
6648         Fix -Wc++-compat and/or -Wcast-qual warnings.
6649         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
6650         gen_regparm_prefix): Likewise.
6651         * vmsdbgout.c (write_modbeg, lookup_filename,
6652         vmsdbgout_source_line, vmsdbgout_init): Likewise.
6653
6654 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
6655
6656         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
6657         defaults.h definition apply.
6658
6659 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
6660
6661         * function.c (assign_parm_remove_parallels): New.
6662         (assign_parm_setup_block_p): Do not return true for non-BLKmode
6663         PARALLELs.
6664         (assign_parm_setup_block): Do not handle them.
6665         (assign_parm_setup_reg, assign_parm_setup_stack): Call
6666         assign_parm_remove_parallels.
6667
6668 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
6669
6670         * c-typeck.c (convert_for_assignment): Use
6671         vector_targets_convertible_p.
6672         * c-common.c (vector_targets_convertible_p): New.
6673         * c-common.h (vector_targets_convertible_p): New prototype.
6674         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
6675         opaque_p_V2SI_type_node.
6676
6677 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
6678
6679         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
6680         RFmode constants.
6681
6682 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
6683
6684         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
6685         TFmode constants via two element DImode vector for hosts with
6686         HOST_BITS_PER_WIDE_INT < 64.
6687         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
6688         also for HOST_BITS_PER_WIDE_INT < 64.
6689
6690 2008-07-01  Richard Guenther  <rguenther@suse.de>
6691
6692         PR tree-optimization/36666
6693         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
6694         (get_constraint_exp_from_ssa_var): Split into ...
6695         (get_constraint_exp_for_temp): ... this ...
6696         (get_constraint_for_ssa_var): ... and that.
6697         Return constraint expressions for all touched sub-fields
6698         if the results address is not taken.
6699         (process_constraint): Remove assertion that aggregate
6700         assignments do not happen at this place.
6701         (get_constraint_for_component_ref): Add address_p argument.
6702         Return constraint expressions for all touched sub-fields
6703         if the results address is not taken.
6704         (do_deref): Use get_constraint_exp_for_temp.
6705         (get_constraint_for_1): Rename from ...
6706         (get_constraint_for): ... this.  Add the old function as wrapper.
6707         (do_structure_copy): Use get_constraint_for_1.
6708
6709 2008-07-01  Martin Jambor  <mjambor@suse.cz>
6710
6711         * Makefile.in (tree-switch-conversion.o): Add.
6712         (OBJS-common): Add tree-swtch-conversion.o.
6713         * passes.c (init_optimization_passes): Add pass_convert_switch.
6714         * tree-pass.h: (pass_convert_switch): Add.
6715         * tree-switch-conversion.c: New file.
6716         * gcc.dg/tree-ssa/cswtch.c: New testcase.
6717         * common.opt (ftree-cswtch): New option.
6718         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
6719         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
6720         * opts.c (decode_options): Set flag_tree_switch_conversion when
6721         optimization level is >= 2.
6722         * doc/invoke.texi (Optimize Options): Added description of
6723         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
6724
6725 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6726
6727         * config/darwin-driver.c (darwin_default_min_version): Fix
6728         -Wc++-compat warnings.
6729
6730 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
6731
6732         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
6733         of operand 0.
6734
6735 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
6736
6737         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
6738
6739 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
6740
6741         PR rtl-optimization/34744
6742         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
6743         (df_scan_free_internal): Free data structures not
6744         allocated in storage pools.
6745         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
6746         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
6747         df_scan_free_mws_vec.
6748         * dse.c (dse_step6): Free offset_map_p and offset_map_n
6749         unconditionally.
6750
6751 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
6752
6753         * config/i386/i386.c (contains_aligned_value_p): Return true
6754         for __float128.
6755         (ix86_function_arg_boundary): Return its natural boundary
6756         for __float128.
6757         (return_in_memory_32): Don't check TDmode.
6758         (ix86_split_to_parts): Support splitting into 4 parts and
6759         support TFmode for 32bit target.
6760         (ix86_split_long_move): Support splitting into 4 parts.
6761         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
6762         for SSE2.
6763         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
6764         (ix86_init_builtins): Here.
6765         (ix86_scalar_mode_supported_p): Always return true for TFmode.
6766         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
6767         'q' and 'w', respectively.
6768
6769         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
6770         TARGET_64BIT.
6771         (movtf_internal): Likewise.
6772         (<code>tf2): Likewise.
6773         (*absnegtf2_sse): Likewise.
6774         (copysign<mode>3): Likewise.
6775         (copysign<mode>3_const): Likewise.
6776         (copysign<mode>3_var): Likewise.
6777         (define_split UNSPEC_COPYSIGN): Likewise.
6778         * config/i386/sse.md (*nandtf3): Likewise.
6779         (<code>tf3): Likewise.
6780         (*<code>tf3): Likewise.
6781
6782 2008-06-30  Joey Ye  <joey.ye@intel.com>
6783             H.J. Lu  <hongjiu.lu@intel.com>
6784
6785         * global.c (compute_regsets): Set frame_pointer_needed here.
6786         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
6787
6788 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
6789
6790         * doc/install.texi (specific): Expand Windows build notes.
6791
6792 2008-06-30  Ira Rosen  <irar@il.ibm.com>
6793
6794         PR tree-optimization/36648
6795         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
6796         number of prolog iterations by step. Fix the comment.
6797
6798 2008-06-30  Richard Guenther  <rguenther@suse.de>
6799
6800         PR middle-end/36671
6801         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
6802         handle calls from ECF_MALLOC functions.
6803         (handle_pure_call): ECF_MALLOC functions do not return
6804         call-used memory.
6805         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
6806
6807 2008-06-29  Andreas Schwab  <schwab@suse.de>
6808
6809         * config/m68k/m68k.c (print_operand): Always print a float
6810         constant in hex.
6811         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
6812         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
6813         Remove macros.
6814
6815         * config/rs6000/x-linux64: Remove never used file.
6816
6817 2008-06-29  Richard Guenther  <rguenther@suse.de>
6818
6819         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
6820         prototype.
6821         (struct alias_info): Move ...
6822         * tree-ssa-alias.c: ... here.
6823         (update_alias_info): Declare.
6824         (compute_may_aliases): Call it.
6825         (update_alias_info): New function.
6826         * tree-ssa-structalias.c (update_alias_info): Move ...
6827         * tree-ssa-alias.c (update_alias_info_1): ... here.
6828         * tree-ssa-structalias.c (process_constraint_1): Remove
6829         unused from_call argument.  Rename to ...
6830         (process_constraint): ... this.  Delete old wrapper.
6831         (make_constraint_to): Adjust callers.
6832         (handle_const_call): Likewise.
6833         (handle_pure_call): Likewise.
6834         (init_base_vars): Likewise.
6835         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
6836         (find_func_aliases): We don't need structure copies for
6837         complex types.
6838         (make_constraint_from_anything): Remove.
6839         (create_variable_info_for): For globals make constraints
6840         from escaped, not from anything.
6841         (compute_points_to_sets): Do not call update_alias_info.
6842         (ipa_pta_execute): Use make_constraint_from.
6843
6844 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6845
6846         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
6847         (bitmap.o-warn, dominance.o-warn): New.
6848         * configure.ac (cxx_compat_warn): Delete.
6849         (loose_warn): Add -Wcast-qual and -Wc++-compat.
6850         * system.h: Remove #pragma diagnostic for -Wcast-qual and
6851         -Wc++-compat.
6852         * configure: Regenerate.
6853
6854         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
6855         warnings.
6856
6857 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6858
6859         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
6860         * df-scan.c (df_notes_rescan): Likewise.
6861         * ggc-page.c (set_page_table_entry): Likewise.
6862         * intl.c (gcc_gettext_width): Likewise.
6863         * varasm.c (get_unnamed_section, get_noswitch_section,
6864         get_section): Likewise.
6865
6866 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
6867
6868         * regrename.c (build_def_use): Don't copy RTX.
6869
6870 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
6871
6872         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
6873         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
6874         punctuation.  Use @ref instead of @xref.
6875         (Function Names): Remove stray @display/@end display.
6876         (C++ Attributes): Use @ref instead of @xref.
6877         (Deprecated Features): Fix punctuation around @xref.
6878         (Backwards Compatibility): Likewise.
6879         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
6880
6881 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
6882
6883         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
6884         constants for E500 double.
6885
6886 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6887
6888         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
6889         element type of const_vector.
6890
6891 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
6892
6893         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
6894         Remove FLAGS_REG clobber from expander pattern.
6895         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
6896         (anddi3, andsi3, andhi3, andqi3): Ditto.
6897         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
6898         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
6899         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
6900         (ashlsi3, ashlhi3, ashlqi3): Ditto.
6901         (ashrsi3, ashrhi3, ashrqi3): Ditto.
6902         (lshrsi3, lshrhi3, lshrqi3): Ditto.
6903         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
6904         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
6905
6906 2008-06-28  Richard Guenther  <rguenther@suse.de>
6907
6908         * tree-ssa-structalias.c (callused_id, var_callused,
6909         callused_tree): Add.
6910         (handle_pure_call): New function.
6911         (find_func_aliases): Call it.
6912         (find_what_p_points_to): Handle the call-used set.
6913         (clobber_what_escaped): Likewise.
6914         (compute_call_used_vars): New function.
6915         (init_base_vars): Init the call-used variable.
6916         (do_sd_constraint): Do not propagate the solution from CALLUSED
6917         but use CALLUSED as a placeholder.
6918         (solve_graph): Likewise.
6919         * tree-flow-inline.h (gimple_call_used_vars): New function.
6920         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
6921         (compute_call_used_vars): Declare.
6922         * tree-ssa-alias.c (set_initial_properties): Call
6923         compute_call_used_vars.
6924         (reset_alias_info): Clear call-used variables.
6925         (add_call_clobber_ops): Assert we are not called for const/pure
6926         functions.  Remove handling of them.
6927         (add_call_read_ops): Handle pure functions by adding the
6928         call-used set of variables as VUSEs.
6929         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
6930         (delete_tree_ssa): Free it.
6931         * tree-dfa.c (remove_referenced_var): Clear the var from the
6932         call-used bitmap.
6933
6934 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
6935
6936         * tree.c (build_varargs_function_type_list): New.
6937         (build_function_type_list_1): New.
6938         (build_function_type_list): Use build_function_type_list_1.
6939         * tree.h (build_varargs_function_type_list): New.
6940
6941 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6942
6943         PR target/34856
6944         * config/spu/spu.c (spu_builtin_splats): Do not generate
6945         invalid CONST_VECTOR expressions.
6946         (spu_expand_vector_init): Likewise.
6947
6948 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
6949
6950         * optabs.c (libfunc_decls): New variable.
6951         (libfunc_decl_hash, libfunc_decl_eq): New functions.
6952         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
6953         for the same function twice.
6954
6955 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
6956
6957         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
6958         ix86_expand_binary_operator directly.
6959         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
6960         for operand 2.
6961         (*ashrti3_1): Ditto.
6962         (*lshrti3_1): Ditto.
6963         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
6964         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
6965         using only one splitter.  Conditionaly execute splitter before or
6966         after peephole2 pass.
6967         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
6968         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
6969         Use only one alternative in asm template.
6970         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
6971         in asm template.
6972         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
6973         "J" operand constraint for operand 2.
6974         (*ashldi3_cconly_rex64): Ditto.
6975         (*ashrdi3_cmp_rex64): Ditto.
6976         (*ashrdi3_cconly_rex64): Ditto.
6977         (*lshrdi3_cmp_rex64): Ditto.
6978         (*lshrdi3_cconly_rex64): Ditto.
6979         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
6980         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
6981         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
6982         gen_x86_shrd_1.
6983
6984 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
6985
6986         * gimplify.c (omp_is_private): Don't return true if decl is not
6987         already private on #pragma omp for or #pragma omp parallel for.
6988
6989         PR debug/36617
6990         * tree-cfg.c (struct move_stmt_d): Replace block field with
6991         orig_block and new_block fields.
6992         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
6993         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
6994         (move_block_to_fn): Replace vars_map and new_label_map arguments
6995         with struct move_stmt_d pointer.
6996         (replace_block_vars_by_duplicates): New function.
6997         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
6998         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
6999         all subblocks of ORIG_BLOCK to the new function.  Call
7000         replace_block_vars_by_duplicates.
7001         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
7002         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
7003         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
7004         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
7005         (expand_omp): Temporarily set input_location to the location of
7006         region's controlling stmt.
7007         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
7008         BIND_EXPR, push ctx->block_vars and gimplification vars into
7009         the BIND_EXPR and its block's BLOCK_VARS instead of directly
7010         into dest function.
7011         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
7012         there are any BLOCK_VARS.
7013         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
7014         OMP_PARALLEL or OMP_TASK stmt.
7015         (lower_omp): Save and restore input_location around the lower_omp_1
7016         call.
7017
7018 2008-06-27  Richard Guenther  <rguenther@suse.de>
7019
7020         PR tree-optimization/36400
7021         PR tree-optimization/36373
7022         PR tree-optimization/36344
7023         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
7024         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
7025         (update_alias_info): Remove call clobbering code.
7026         (make_constraint_to): New helper function.
7027         (make_escape_constraint): Likewise.
7028         (handle_rhs_call): Use it on all pointer containing arguments.
7029         Also mark the static chain escaped.
7030         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
7031         instead of ANYTHING.
7032         (make_constraint_from): New helper split out from ...
7033         (make_constraint_from_anything): ... here.
7034         (find_func_aliases): Add constraints for escape sites.
7035         (intra_create_variable_infos): Make constraints from NONLOCAL
7036         for parameters.
7037         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
7038         as ANYTHING.
7039         (clobber_what_p_points_to): Remove.
7040         (clobber_what_escaped): New function.
7041         (init_base_vars): Init NONLOCAL and ESCAPED.
7042         (do_sd_constraint): Do not propagate the solution from ESCAPED
7043         but use ESCAPED as a placeholder.
7044         (solve_graph): Likewise.
7045         * tree-flow.h (clobber_what_p_points_to): Remove.
7046         (clobber_what_escaped): Declare.
7047         * tree-ssa-alias.c (set_initial_properties): Call it.
7048         Remove code clobbering escaped pointers.
7049
7050 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
7051
7052         * function.c (allocate_struct_function): Only allocate a unique
7053         funcdef_no if the decl is nonzero.
7054
7055 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
7056
7057         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
7058         * config/mips/mips.c (mips_split_const_insns): New function.
7059         * config/mips/mips.md (move_type): New attribute.
7060         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
7061         (dword_mode): New attribute.
7062         (type): Avoid long line.  Map "move_type"s to "type"s,
7063         choosing "multi" for doubleword moves if appropriate.
7064         Swap MTC/MFC comments to match their declaration order.
7065         (extended_mips16): Default to "yes" if "move_type" is "sll0",
7066         "type" is "branch" or "jal" is "direct".
7067         (length): Handle "extended_mips16" first.  Make the default
7068         "0" for "ghost" instructions.  Set the length from "move_type".
7069         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
7070         of "type", with "sll0" for the register alternative.  Remove the
7071         "extended_mips16" attribute.
7072         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
7073         of "type", with "shift_shift" for the register alternative.
7074         Remove the "length" attribute.
7075         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
7076         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
7077         of "type", with "andi" for the register alternative.
7078         (*zero_extendqihi2): Likewise.
7079         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
7080         of "andi" instead of a "type" of "arith".
7081         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
7082         instead of "type".
7083         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
7084         (mov_<store>r, *mov<mode>_ra): Likewise.
7085         (extendsidi2): Use "move_type" instead of "type", with "move"
7086         for the register alternative.
7087         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
7088         of "type", with "signext" for the register alternative.
7089         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
7090         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
7091         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
7092         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
7093         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
7094         (unnamed branch insn): Likewise.
7095         (*movdi_gp32_fp64): Fold into...
7096         (*movdi_32bit): ...here.
7097         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
7098         (*movdf_hardfloat): ...this new pattern.
7099         (*movdf_softfloat): Remove redundant FPR alternatives.
7100         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
7101         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
7102         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
7103         the "move" attribute.
7104         (*movdi_32bit): Use "move_type" instead of "type" and remove the
7105         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
7106         and "store" for COP loads and stores.
7107         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
7108         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
7109         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
7110         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
7111         (*movtf_mips16, *movv2sf): Likewise.
7112         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
7113         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
7114         (mfhc1<mode>): Use "move_type" instead of "move".
7115         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
7116         (loadgp_blockage): Remove the "length" attribute.
7117         (blockage, set_got_version, update_got_version): Likewise.
7118         (call_internal): Remove the "extended_mips16" attribute.
7119         (call_value_internal, call_value_multiple_internal): Likewise.
7120         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
7121         instead of "move".
7122         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
7123         the "length" attribute.
7124
7125 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7126
7127         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
7128         -Wcast-qual warnings.
7129         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
7130         handle_pragma_pop_macro): Likewise.
7131         * collect2.c (resolve_lib_name): Likewise.
7132         * config/arc/arc.c (arc_init): Likewise.
7133         * config/arm/arm.c (neon_builtin_compare,
7134         locate_neon_builtin_icode): Likewise.
7135         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
7136         * config/bfin/bfin.c (bfin_init_machine_status,
7137         bfin_optimize_loop): Likewise.
7138         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
7139         * config/cris/cris.c (cris_init_expanders): Likewise.
7140         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
7141         * config/darwin.c (machopic_indirection_eq,
7142         machopic_indirection_name, machopic_output_indirection): Likewise.
7143         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
7144         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
7145         frv_optimize_membar): Likewise.
7146         * config/i386/cygwin.h (mingw_scan,
7147         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
7148         * config/i386/cygwin1.c (mingw_scan): Likewise.
7149         * config/i386/i386.c (machopic_output_stub): Likewise.
7150         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
7151         i386_pe_unique_section): Likewise.
7152         * config/ia64/ia64.c (ia64_init_machine_status,
7153         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
7154         Likewise.
7155         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
7156         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
7157         * config/m68k/m68k.c (m68k_handle_option,
7158         m68k_sched_md_init_global): Likewise.
7159         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
7160         mcore_unique_section): Likewise.
7161         * config/mips/mips.c (mips_block_move_straight,
7162         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
7163         Likewise.
7164         * config/mmix/mmix.c (mmix_init_machine_status,
7165         mmix_encode_section_info): Likewise.
7166         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
7167         * config/rs6000/rs6000.c (rs6000_init_machine_status,
7168         print_operand_address, output_toc, redefine_groups,
7169         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
7170         * config/s390/s390.c (s390_init_machine_status): Likewise.
7171         * config/score/score.c (score_block_move_straight,
7172         score_block_move_loop_body): Likewise.
7173         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
7174         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
7175         * emit-rtl.c (find_auto_inc): Likewise.
7176         * gcc.c (translate_options, process_command): Likewise.
7177         * reorg.c (dbr_schedule): Likewise.
7178         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
7179         * xcoffout.c (xcoffout_declare_function): Likewise.
7180
7181 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
7182
7183         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
7184         ipa-pta working again.
7185
7186 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
7187
7188         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
7189         genautomata.
7190
7191 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
7192
7193         * config.gcc (powerpc*-*-*): Add new core e500mc.
7194         * config/rs6000/e500mc.md: New file.
7195         * config/rs6000/rs6000.c (processor_costs): Add new costs for
7196         e500mc.
7197         (rs6000_override_options): Add e500mc case to
7198         processor_target_table. Altivec and Spe options not allowed
7199         with e500mc. Add isel instruction to e500mc by
7200         default. Initialize rs6000_cost for e500mc.
7201         (rs6000_issue_rate): Set issue rate for e500mc.
7202         * config/rs6000/rs6000.h (processor_type): Add
7203         PROCESSOR_PPCE500MC.
7204         (ASM_CPU_SPEC): Add e500mc.
7205         Set TARGET_ISEL to rs6000_isel.
7206         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
7207         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
7208         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
7209         Include e500mc.md.
7210         * doc/invoke.texi: Add e500mc to list of cpus.
7211
7212 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7213
7214         PR c/34867
7215         * c-lex.c (lex_charconst): Initialize unsignedp.
7216
7217 2008-06-27  Olivier Hainque  <hainque@adacore.com>
7218
7219         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
7220         documented assumptions.
7221
7222 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
7223
7224         * dwarf2out.c: Remove trailing white spaces.  Break long line
7225         in comments.
7226
7227 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
7228
7229         * libfuncs.h (LTI_synchronize): New libfunc_index.
7230         (synchronize_libfunc): Declare.
7231         * builtins.c (expand_builtin_synchronize): Consider using
7232         synchronize_libfunc before falling back on an asm blockage.
7233         * config/mips/mips.c: Include libfuncs.h
7234         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
7235
7236 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
7237
7238         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
7239         parameter.  Copy stack_reg to r11 where appropriate.
7240         (no_global_regs_above): Add gpr parameter.
7241         (rs6000_stack_info): Only add padding for SPE save area if we
7242         are saving SPE GPRs and CR.
7243         (saveres_routine_syms): New variable.
7244         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
7245         Define.
7246         (rs6000_savres_routine_sym): New function.
7247         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
7248         split out of...
7249         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
7250         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
7251         Tweak FPR out-of-line saving.
7252         (rs6000_make_savres_rtx): New function.
7253         (rs6000_use_multiple_p): New function.
7254         (rs6000_savres_strategy): New function.
7255         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
7256         out-of-line if appropriate.
7257         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
7258         if we are optimizing for size.
7259         (GP_SAVE_INLINE): Define.
7260         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
7261         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
7262         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
7263         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
7264         (*save_fpregs_<mode>): Add use of r11.
7265         (*restore_gpregs_<mode>): New insn.
7266         (*return_and_restore_gpregs_<mode>): New insn.
7267         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
7268         use r11.
7269         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
7270         (*restore_gpregs_spe): New insn.
7271         (*return_and_restore_gpregs_spe): New insn.
7272         * config/rs6000/predicates.md (save_world_operation): Fix check.
7273
7274 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
7275
7276         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
7277         this point, so assert that.
7278
7279 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
7280
7281         * cfganal.c: Include vec.h and vecprim.h.
7282         (compute_idf): Import from...
7283         * tree-into-ssa (compute_idf): ...here.
7284         * basic-block.h (compute_idf): Export.
7285
7286 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
7287
7288         * c-decl.c (merge_decls): Use !current_function_decl to check for
7289         extern declaration of C99 inline function being at file scope.
7290
7291 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
7292
7293         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
7294
7295 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7296
7297         * alias.c (record_alias_subset, init_alias_analysis): Fix
7298         -Wc++-compat and/or -Wcast-qual warnings.
7299         * attribs.c (lookup_attribute_spec): Likewise.
7300         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
7301         copy_bb, connect_traces,
7302         find_rarely_executed_basic_blocks_and_cr): Likewise.
7303         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
7304         note_btr_set, migrate_btr_defs): Likewise.
7305         * builtins.c (result_vector, expand_builtin_memcpy,
7306         expand_builtin_mempcpy_args, expand_builtin_strncpy,
7307         builtin_memset_read_str, expand_builtin_printf,
7308         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
7309         Likewise.
7310         * caller-save.c (mark_set_regs): Likewise.
7311         * calls.c (expand_call, emit_library_call_value_1): Likewise.
7312         * cgraph.c (cgraph_edge): Likewise.
7313         * combine.c (likely_spilled_retval_1): Likewise.
7314         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
7315         htab_counts_entry_del, get_coverage_counts): Likewise.
7316         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
7317         new_cselib_val): Likewise.
7318         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
7319         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
7320         Likewise.
7321         * df-core.c (df_compact_blocks): Likewise.
7322         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
7323         * df-scan.c (df_grow_reg_info, df_ref_create,
7324         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
7325         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
7326         df_record_entry_block_defs, df_record_exit_block_uses,
7327         df_bb_verify): Likewise.
7328         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
7329         DF_REF_EXTRACT_MODE_CONST): New.
7330         * dominance.c (get_immediate_dominator, get_dominated_by,
7331         nearest_common_dominator, root_of_dom_tree,
7332         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
7333         -Wc++-compat and/or -Wcast-qual warnings.
7334         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
7335         record_store, replace_read, check_mem_read_rtx, scan_insn,
7336         dse_step1, dse_record_singleton_alias_set): Likewise.
7337         * dwarf2asm.c (dw2_force_const_mem): Likewise.
7338
7339 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7340
7341         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
7342         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
7343         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
7344         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
7345         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
7346         add_ranges_num, add_ranges_by_labels, file_info_cmp,
7347         file_name_acquire, output_file_names, add_const_value_attribute,
7348         premark_used_types_helper, file_table_eq, file_table_hash,
7349         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
7350         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
7351         -Wcast-qual warnings.
7352         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
7353         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
7354         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
7355         gen_reg_rtx, start_sequence, init_emit): Likewise.
7356         * et-forest.c (et_new_occ, et_new_tree): Likewise.
7357         * except.c (init_eh_for_function, gen_eh_region,
7358         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
7359         arh_to_landing_pad, arh_to_label, add_action_record,
7360         add_call_site, switch_to_exception_section): Likewise.
7361         * expmed.c (synth_mult): Likewise.
7362         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
7363         store_expr): Likewise.
7364         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
7365         Likewise.
7366         * function.c (assign_stack_temp_for_type,
7367         allocate_struct_function, match_asm_constraints_1): Likewise.
7368         * gcov-io.c (gcov_allocate): Likewise.
7369         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
7370         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
7371         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
7372         record_one_set, insert_expr_in_table, insert_set_in_table,
7373         dump_hash_table, compute_hash_table_work, alloc_hash_table,
7374         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
7375         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
7376         -Wcast-qual warnings.
7377
7378 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7379
7380         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
7381         -Wcast-qual warnings.
7382         * gcc.c (process_command): Likewise.
7383         * genattrtab.c (oballoc): Use XOBNEW.
7384         (oballocvec): Define.
7385         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
7386         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
7387         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
7388         -Wc++-compat and/or -Wcast-qual warnings.
7389         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
7390         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
7391         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
7392         gen_presence_absence_set, gen_automaton, gen_regexp_el,
7393         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
7394         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
7395         add_excls, process_presence_absence_names,
7396         process_presence_absence_patterns, add_presence_absence,
7397         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
7398         get_free_state, add_arc, get_free_automata_list_el,
7399         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
7400         transform_3, cache_presence, create_ainsns, create_automata,
7401         create_state_ainsn_table, dfa_insn_code_enlarge,
7402         output_trans_func, output_min_issue_delay_func,
7403         output_dead_lock_func, output_reset_func,
7404         output_get_cpu_unit_code_func, output_dfa_start_func,
7405         expand_automata): Likewise.
7406         * genextract.c (gen_insn): Likewise.
7407         * gengtype-lex.l: Likewise.
7408         * gengtype.c (read_input_list, adjust_field_type,
7409         process_gc_options): Likewise.
7410         * genoutput.c (note_constraint): Likewise.
7411         * genpreds.c (mangle, add_constraint): Likewise.
7412         * genrecog.c (process_define_predicate, new_decision,
7413         add_to_sequence): Likewise.
7414         * gensupport.c (record_insn_name): Likewise.
7415
7416 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7417
7418         * config/i386/driver-i386.c (detect_caches_amd,
7419         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
7420         and/or -Wcast-qual warnings.
7421         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
7422         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
7423         gt_pch_save): Likewise.
7424         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
7425         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
7426         * global.c (compute_regsets): Likewise.
7427         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
7428         finish_graph_dump_file): Likewise.
7429         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
7430         unlink_bb_notes): Likewise.
7431         * integrate.c (get_hard_reg_initial_val): Likewise.
7432         * ipa-prop.c (ipa_push_func_to_list): Likewise.
7433         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
7434         * local-alloc.c (update_equiv_regs): Likewise.
7435         * loop-invariant.c (check_invariant_table_size,
7436         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
7437         Likewise.
7438         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
7439         altered_reg_used, mark_altered): Likewise.
7440         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
7441         insert_var_expansion_initialization,
7442         combine_var_copies_in_loop_exit, apply_opt_in_copies,
7443         release_var_copies): Likewise.
7444         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
7445         analyze_matrix_decl, add_allocation_site, analyze_transpose,
7446         analyze_accesses_for_phi_node, check_var_notmodified_p,
7447         check_allocation_function, find_sites_in_func,
7448         record_all_accesses_in_func, transform_access_sites,
7449         transform_allocation_sites): Likewise.
7450         * omp-low.c (new_omp_region, create_omp_child_function_name,
7451         check_omp_nesting_restrictions, check_combined_parallel,
7452         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
7453         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
7454         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
7455         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
7456         Likewise.
7457         * opts-common.c (prune_options): Likewise.
7458         * opts.c (add_input_filename, print_filtered_help,
7459         get_option_state): Likewise.
7460         * params.c (add_params): Likewise.
7461         * passes.c (set_pass_for_id, next_pass_1,
7462         do_per_function_toporder, pass_fini_dump_file): Likewise.
7463         * postreload.c (reload_cse_simplify_operands): Likewise.
7464         * predict.c (tree_predicted_by_p, tree_predict_edge,
7465         clear_bb_predictions, combine_predictions_for_bb): Likewise.
7466
7467 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7468
7469         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
7470         warnings.
7471         * recog.c (check_asm_operands, validate_change_1): Likewise.
7472         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
7473         subst_asm_stack_regs): Likewise.
7474         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
7475         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
7476         * regmove.c (reg_is_remote_constant_p): Likewise.
7477         * regrename.c (regrename_optimize, scan_rtx_reg,
7478         kill_clobbered_value, kill_set_value, kill_autoinc_value):
7479         Likewise.
7480         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
7481         regstat_compute_calls_crossed): Likewise.
7482         * reload1.c (init_reload, new_insn_chain,
7483         has_nonexceptional_receiver, reload, copy_reloads,
7484         calculate_needs_all_insns, init_elim_table): Likewise.
7485         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
7486         * rtl.c (shallow_copy_rtx_stat): Likewise.
7487         * rtlanal.c (parms_set): Likewise.
7488         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
7489         sbitmap_resize, sbitmap_vector_alloc): Likewise.
7490         * sched-ebb.c (earliest_block_with_similiar_load,
7491         add_deps_for_risky_insns): Likewise.
7492         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
7493         schedule_region): Likewise.
7494         * see.c (eq_descriptor_pre_extension,
7495         hash_descriptor_pre_extension, hash_del_pre_extension,
7496         eq_descriptor_properties, hash_descriptor_properties,
7497         hash_del_properties, see_seek_pre_extension_expr,
7498         see_initialize_data_structures, see_print_register_properties,
7499         see_print_pre_extension_expr, see_delete_merged_def_extension,
7500         see_delete_unmerged_def_extension, see_emit_use_extension,
7501         see_pre_delete_extension, see_map_extension, see_commit_changes,
7502         see_analyze_merged_def_local_prop,
7503         see_analyze_merged_def_local_prop,
7504         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
7505         see_set_prop_merged_def, see_set_prop_unmerged_def,
7506         see_set_prop_unmerged_use, see_print_one_extension,
7507         see_merge_one_use_extension, see_merge_one_def_extension,
7508         see_store_reference_and_extension, see_update_uses_relevancy,
7509         see_update_defs_relevancy): Likewise.
7510         * statistics.c (hash_statistics_hash, hash_statistics_eq,
7511         hash_statistics_free, curr_statistics_hash): Likewise.
7512         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
7513         expand_asm_operands, expand_return, case_bit_test_cmp,
7514         expand_case): Likewise.
7515         * stor-layout.c (start_record_layout): Likewise.
7516         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
7517         gt_pch_save_stringpool): Likewise.
7518         * tree-data-ref.c (hash_stmt_vertex_info,
7519         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
7520         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
7521
7522 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
7523
7524         PR target/36627
7525         * config/i386/i386.md : Change constraints of HImode and QImode
7526         immediate operands from "i" to "n".  Change SImode "ni" constraint to
7527         "i" and SImode "rmi" constraint to "g".  Remove all constraints
7528         from const0_operand and const1_operand predicated operands.
7529         (i): Change QImode and HImode attribute from "i" to "n".
7530         (*subqi_2): Change HImode operands to QImode.
7531         (*subqi_3): Ditto.
7532
7533 2008-06-25  Olivier Hainque  <hainque@adacore.com>
7534
7535         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
7536         sed substitutions.
7537
7538 2008-06-25  Richard Guenther  <rguenther@suse.de>
7539
7540         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
7541         not overflow the result type.
7542
7543 2008-06-25  Richard Guenther  <rguenther@suse.de>
7544
7545         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
7546         (vn_lookup): Likewise.
7547
7548 2008-06-25  Richard Guenther  <rguenther@suse.de>
7549
7550         PR tree-optimization/35518
7551         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
7552         * tree-sra.c (instantiate_element): Use fold_build3 to build
7553         BIT_FIELD_REFs.
7554         (try_instantiate_multiple_fields): Likewise.
7555
7556 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7557
7558         * config/rs6000/rs6000.md: Change all string instruction's clobber to
7559         be early clobbers.
7560
7561 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7562
7563         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
7564         use_backchain_to_restore_sp to true
7565         if the offset of the link register save area would go over the 32k - 1
7566         offset limit of the load
7567         instructions.
7568
7569 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
7570
7571         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
7572         anchor for the type-punning blurb.  Cross-reference "Structures
7573         unions enumerations and bit-fields implementation".  Provide a
7574         cast-through-pointer example.  Make final sentence self-contained.
7575         * doc/implement-c.texi (Structures unions enumerations and
7576         bit-fields implementation): Cross-reference the type-punning blurb
7577         in the -fstrict-aliasing documentation.
7578
7579 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7580
7581         PR middle-end/36594
7582         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
7583         the memory instead of the memory itself for the save area.
7584
7585 2008-06-24  Olivier Hainque  <hainque@adacore.com>
7586             Nicolas Roche  <roche@adacore.com>
7587
7588         * gengtype.c (srcdir_len): size_t instead of int.
7589         (get_file_realbasename): New function.  For F a filename, the real
7590         basename of F, with all the path components stripped.
7591         (get_file_srcdir_relative_path): New function.  For F a filename, the
7592         relative path to F from $(srcdir).
7593         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
7594         get_file_realbasename.  Adjust the head comment.
7595         (get_prefix_langdir_index): New function. For F a filename, return the
7596         lang_dir_names[] relative index of the language directory that is
7597         a prefix in F.
7598         (get_file_langdir): For F a filename, return the name of the language
7599         directory where F is located.
7600         (get_file_gtfilename): New function. The gt- output file name for an
7601         input filename F.
7602         (get_output_file_with_visibility): Replace in-line computations with
7603         uses of get_file_gtfilename and get_prefix_langdir_index.
7604         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
7605
7606 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
7607
7608         PR tree-optimization/36504
7609         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
7610         references without base address.
7611
7612 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
7613
7614         PR middle-end/36584
7615         * calls.c (expand_call): Increase alignment for recursive functions.
7616
7617 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
7618
7619         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
7620         (TARGET_FUNCTION_VALUE): New define.
7621         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
7622         * config/avr/avr.h (FUNCTION_VALUE): Remove.
7623
7624 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
7625
7626         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
7627         (fmod<mode>3): Ditto.
7628         (remainderxf3): Ditto.
7629         (remainder<mode>3): Ditto.
7630
7631 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
7632
7633         PR target/36533
7634         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
7635         REG is a hard register.
7636
7637         PR tree-optimization/36508
7638         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
7639         499, don't check it at all in release compilers.
7640
7641 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
7642
7643         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
7644         together with SSE_TARGET_MATH to disable insn pattern.
7645         (*fop_<MODEF:mode>_2_i387): Ditto.
7646         (*fop_<MODEF:mode>_3_i387): Ditto.
7647
7648 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
7649
7650         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
7651
7652 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7653
7654         PR middle-end/34906
7655         * gimplify.c (gimplify_asm_expr): Check the return code of
7656         parse_output_constraint call, set function return and is_inout
7657         value if it failed.
7658
7659 2008-06-22  Ian Lance Taylor  <iant@google.com>
7660
7661         * c-lex.c (narrowest_unsigned_type): Change itk to int.
7662         (narrowest_signed_type): Likewise.
7663         * c-typeck.c (c_common_type): Change local variable mclass to enum
7664         mode_class, twice.
7665         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
7666         tcc_comparison, not the tree code itself.
7667         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
7668         (c_expand_expr): Cast modifier to enum expand_modifier.
7669         * c-common.h (C_RID_CODE): Add casts.
7670         (C_SET_RID_CODE): Define.
7671         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
7672         (c_lex_one_token): Add cast to avoid warning.
7673         (c_parser_objc_type_name): Rename local typename to type_name.
7674         (check_no_duplicate_clause): Change code parameter to enum
7675         omp_clause_code.
7676         (c_parser_omp_var_list_parens): Change kind parameter to enum
7677         omp_clause_code.
7678         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
7679         c_parser_omp_list_var_parens.
7680         (c_parser_omp_threadprivate): Likewise.
7681         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
7682         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
7683         * c-format.c (NO_FMT): Define.
7684         (printf_length_specs): Use NO_FMT.
7685         (asm_fprintf_length_specs): Likewise.
7686         (gcc_diag_length_specs): Likewise.
7687         (scanf_length_specs): Likewise.
7688         (strfmon_length_specs): Likewise.
7689         (gcc_gfc_length_specs): Likewise.
7690         (printf_flag_specs): Change 0 to STD_C89.
7691         (asm_fprintf_flag_specs): Likewise.
7692         (gcc_diag_flag_specs): Likewise.
7693         (gcc_cxxdiag_flag_specs): Likewise.
7694         (scanf_flag_specs): Likewise.
7695         (strftime_flag_specs): Likewise.
7696         (strfmon_flag_specs): Likewise.
7697         (print_char_table): Likewise.
7698         (asm_fprintf_char_table): Likewise.
7699         (gcc_diag_char_table): Likewise.
7700         (gcc_tdiag_char_table): Likewise.
7701         (gcc_cdiag_char_table): Likewise.
7702         (gcc_cxxdiag_char_table): Likewise.
7703         (gcc_gfc_char_table): Likewise.
7704         (scan_char_table): Likewise.
7705         (time_char_table): Likewis.
7706         (monetary_char_table): Likewise.
7707         * c-format.h (BADLEN): Likewise.
7708
7709 2008-06-21  Ian Lance Taylor  <iant@google.com>
7710
7711         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
7712         Define END_OF_BASE_TREE_CODES around inclusion.
7713         * tree.c (tree_code_type): New global array.
7714         (tree_code_length, tree_code_name): Likewise.
7715         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
7716         $(lang_tree_files).
7717         (all-tree.def, s-alltree): New targets.
7718         (gencheck.h, s-gencheck): Remove.
7719         (tree.o): Depend upon all-tree.def.
7720         (build/gencheck.o): Remove gencheck.h dependency.
7721         (mostlyclean): Don't remove gencheck.h.
7722         * c-common.h (enum c_tree_code): Remove.
7723         * c-lang.c (tree_code_type): Remove.
7724         (tree_code_length, tree_code_name): Remove.
7725         * gencheck.c (tree_codes): Include all-tree.def, rather than
7726         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
7727         after it is used.
7728         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
7729         than tree.def.
7730         * cp/cp-tree.h (enum cplus_tree_code): Remove.
7731         (operator_name_info): Size to MAX_TREE_CODES.
7732         (assignment_operator_name_info): Likewise.
7733         * cp/cp-lang.c (tree_code_type): Remove.
7734         (tree_code_length, tree_code_name): Remove.
7735         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
7736         (assignment_operator_name_info): Likewise.
7737         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
7738         MAX_TREE_CODES.
7739         * cp/mangle.c (write_expression): Likewise.
7740         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
7741         * fortran/f95-lang.c (tree_code_type): Remove.
7742         (tree_code_length, tree_code_name): Remove.
7743         * java/java-tree.h (enum java_tree_code): Remove.
7744         * java/lang.c (tree_code_type): Remove.
7745         (tree_code_length, tree_code_name): Remove.
7746         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
7747         * objc/objc-act.h (enum objc_tree_code): Remove.
7748         * objc/objc-lang.c (tree_code_type): Remove.
7749         (tree_code_length, tree_code_name): Remove.
7750         * objcp/objcp-lang.c (tree_code_type): Remove.
7751         (tree_code_length, tree_code_name): Remove.
7752         * ada/ada-tree.h (enum gnat_tree_code): Remove.
7753         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
7754         * ada/misc.c (tree_code_type): Remove.
7755         (tree_code_length, tree_code_name): Remove.
7756
7757 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
7758
7759         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
7760         the grand_bitmap_obstack.
7761
7762 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7763
7764         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
7765         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
7766         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
7767         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
7768         move_stmt_r, new_label_mapper): Likewise.
7769         * tree-complex.c (cvc_lookup): Likewise.
7770         * tree-dfa.c (create_function_ann): Likewise.
7771         * tree-dump.c (dump_register): Likewise.
7772         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
7773         find_phi_replacement_condition): Likewise.
7774         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
7775         tree_function_versioning): Likewise.
7776         * tree-into-ssa.c (cmp_dfsnum): Likewise.
7777         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
7778         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
7779         get_nonlocal_debug_decl, convert_nonlocal_reference,
7780         convert_nonlocal_omp_clauses, get_local_debug_decl,
7781         convert_local_reference, convert_local_omp_clauses,
7782         convert_nl_goto_reference, convert_nl_goto_receiver,
7783         convert_tramp_reference, convert_call_expr): Likewise.
7784         * tree-outof-ssa.c (contains_tree_r): Likewise.
7785         * tree-parloops.c (reduction_phi, initialize_reductions,
7786         eliminate_local_variables_1, add_field_for_reduction,
7787         add_field_for_name, create_phi_for_local_result,
7788         create_call_for_reduction_1, create_loads_for_reductions,
7789         create_stores_for_reduction, create_loads_and_stores_for_name):
7790         Likewise.
7791         * tree-phinodes.c (allocate_phi_node): Likewise.
7792         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
7793         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
7794         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
7795         * tree-ssa-coalesce.c (compare_pairs): Likewise.
7796         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
7797         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
7798         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
7799         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
7800         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
7801         vn_nary_op_insert): Likewise.
7802         * tree-ssa.c (redirect_edge_var_map_add,
7803         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
7804         * tree-vectorizer.c (vectorize_loops): Likewise.
7805         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
7806         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
7807         tree_cons_stat, build1_stat, build_variant_type_copy,
7808         decl_init_priority_lookup, decl_fini_priority_lookup,
7809         decl_priority_info, decl_restrict_base_lookup,
7810         decl_restrict_base_insert, decl_debug_expr_lookup,
7811         decl_debug_expr_insert, decl_value_expr_lookup,
7812         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
7813         type_hash_add, get_file_function_name, tree_check_failed,
7814         tree_not_check_failed, tree_range_check_failed,
7815         omp_clause_range_check_failed, build_omp_clause,
7816         build_vl_exp_stat): Likewise.
7817         * value-prof.c (gimple_histogram_value,
7818         gimple_duplicate_stmt_histograms): Likewise.
7819         * var-tracking.c (attrs_list_insert, attrs_list_copy,
7820         unshare_variable, variable_union_info_cmp_pos, variable_union,
7821         dataflow_set_different_1, dataflow_set_different_2,
7822         vt_find_locations, variable_was_changed, set_variable_part,
7823         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
7824         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
7825         section_entry_hash, object_block_entry_eq,
7826         object_block_entry_hash, create_block_symbol,
7827         initialize_cold_section_name, default_function_rodata_section,
7828         strip_reg_name, set_user_assembler_name, const_desc_eq,
7829         build_constant_desc, output_constant_def, lookup_constant_def,
7830         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
7831         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
7832         default_internal_label): Likewise.
7833         * varray.c (varray_init, varray_grow): Likewise.
7834         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
7835
7836 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
7837
7838         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
7839         operators for "test" insn.  Macroize insn using SWI mode macro.
7840         (*jcc_fused_2): Ditto.
7841         (*jcc_fused_3): Macroize insn using SWI mode macro.
7842         (*jcc_fused_4): Ditto.
7843
7844 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
7845
7846         * tree-ssa-pre.c: Fix typo in comment.
7847         (init_antic, fini_antic): Add explicit funtions for
7848         initializing and deinitializing ANTIC and AVAIL sets.
7849         (create_expression_by_pieces): Fix typo in comment.
7850         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
7851         (execute_pre): Eventually dump details about ANTIC_IN.
7852
7853 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7854
7855         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
7856         * gcc.c (translate_options, init_spec, store_arg, read_specs,
7857         add_to_obstack, file_at_path, find_a_file, execute,
7858         add_preprocessor_option, add_assembler_option, add_linker_option,
7859         process_command, insert_wrapper, do_option_spec, do_self_spec,
7860         spec_path, do_spec_1, is_directory, main, used_arg,
7861         getenv_spec_function): Likewise.
7862         * tlink.c (symbol_hash_lookup, file_hash_lookup,
7863         demangled_hash_lookup, symbol_push, file_push, frob_extension):
7864         Likewise.
7865
7866 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
7867
7868         * doc/rtl.texi: Updated subreg section.
7869
7870 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
7871
7872         PR c++/36523
7873         * cgraphunit.c (cgraph_process_new_functions): Don't clear
7874         node->needed and node->reachable.
7875         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
7876         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
7877         (expand_task_call): Don't call expand_task_copyfn.
7878         (expand_task_copyfn): Renamed to...
7879         (finalize_task_copyfn): ... this.
7880
7881 2008-06-19  Jan Hubicka  <jh@suse.cz>
7882
7883         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
7884         clobbering framepointer.
7885
7886 2008-06-19  Jan Hubicka  <jh@suse.cz>
7887
7888         * tree-optimize.c (execute_early_local_optimizations): Set
7889         cgraph_state only at first invocation.
7890
7891 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7892
7893         * system.h (-Wc++-compat): Activate as a warning, no an error.
7894
7895 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
7896
7897         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
7898         instead of "#" in insn asm template.
7899         (*jcc_fused_2): Ditto.
7900
7901 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
7902
7903         * config/i386/i386.h (ix86_tune_indices)
7904         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
7905         (TARGET_FUSE_CMP_AND_BRANCH): New define.
7906         * config/i386/i386.md (*jcc_fused_1): New insn pattern
7907         (*jcc_fused_2): Ditto.
7908         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
7909         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
7910         (print operand): Handle 'E' and 'e' code.
7911
7912 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
7913
7914         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
7915         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
7916         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
7917
7918 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
7919
7920         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
7921         node->decl.
7922         (cgraph_expand_function): Use local copy of decl.
7923         (cgraph_expand_all_functions): Remove redundant initialization of
7924         order_pos.
7925         (cgraph_optimize): Reword internal_error message.
7926
7927 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
7928
7929         * arm-protos.h (arm_return_in_memory): Remove public
7930         arm_return_in_memory() prototype.
7931         * arm.c (arm_return_in_memory): Add static prototype, add target
7932         hook macro, change definition and comments.
7933         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
7934
7935 2008-06-19  Ben Elliston  <bje@au.ibm.com>
7936
7937         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
7938         real.c: Remove references to IEEE 754R.
7939         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
7940         * doc/libgcc.texi (Decimal float library routines): Likewise.
7941
7942 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7943
7944         * targhooks.h (struct gcc_target): New member unwind_word_mode.
7945         (default_unwind_word_mode): Add prototype.
7946         * targhooks.c (default_unwind_word_mode): New function.
7947         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
7948         instead of word_mode.
7949         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
7950         (TARGET_INITIALIZER): Use it.
7951
7952         * c-common.c (handle_mode_attribute): Support "unwind_word"
7953         mode attribute.
7954         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
7955
7956         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
7957         word_mode to access SjLj_Function_Context member "data".
7958         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
7959         conversion from targetm.eh_return_filter_mode () to
7960         targetm.unwind_word_mode () if they differ.
7961
7962         * builtin-types.def (BT_UNWINDWORD): New primitive type.
7963         (BT_FN_UNWINDWORD_PTR): New function type.
7964         (BT_FN_WORD_PTR): Remove.
7965         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
7966         * except.c (expand_builtin_extend_pointer): Convert pointer to
7967         targetm.unwind_word_mode () instead of word_mode.
7968
7969         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
7970         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
7971         (spu_unwind_word_mode): New function.
7972         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
7973         (TARGET_UNWIND_WORD_MODE): Define.
7974         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
7975
7976 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7977
7978         * config/spu/spu.c (reg_align): Remove.
7979         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
7980         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
7981         (spu_split_store): Likewise.
7982
7983 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
7984
7985         * gcc/tree-vn.c: Fix typo in comment.
7986
7987 2008-06-18  Jan Hubicka  <jh@suse.cz>
7988
7989         * cgraphunit.c (cgraph_optimize): Output debug info when doing
7990         toplevel reorder too.
7991
7992 2008-06-18  Jan Hubicka  <jh@suse.cz>
7993
7994         * c-opts.c (c_common_post_options): PCH is not compatible with
7995         no-unit-at-a-time.
7996         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
7997         -fno-toplevel-reorder by default now.
7998
7999 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8000
8001         PR documentation/30739
8002         * doc/install.texi (Prerequisites): Document dependency on awk.
8003
8004 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
8005             Ian Lance Taylor  <iant@google.com>
8006
8007         PR rtl-optimization/35604
8008         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
8009         only want to change jump destinations, not eventual label comparisons.
8010
8011 2008-06-16  Jan Hubicka  <jh@suse.cz>
8012
8013         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
8014         syntax errors.
8015         (cgraph_analyze_function): Likewise.
8016
8017 2008-06-16  Jan Hubicka  <jh@suse.cz>
8018
8019         * cgraph.h (cgraph_mark_if_needed): New function.
8020         * cgraphunit.c (cgraph_mark_if_needed): New function.
8021         * c-decl.c (duplicate_decl): Use it.
8022
8023 2008-06-16  Jan Hubicka  <jh@suse.cz>
8024
8025         * cgraph.c (cgraph_add_new_function): When in expansion state, do
8026         lowering.
8027
8028 2008-06-16  Jan Hubicka  <jh@suse.cz>
8029
8030         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
8031
8032 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
8033             Kazu Hirata  <kazu@codesourcery.com>
8034             Maxim Kuvyrkov  <maxim@codesourcery.com
8035
8036         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
8037         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
8038         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
8039         EXTRA_SPEC_FUNCTIONS.
8040         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
8041         (DRIVER_SELF_SPECS): Adjust.
8042         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
8043         * config/mips/st.h, config/mips/t-st: New.
8044         * config/mips/driver-native.c, config/mips/x-native: New.
8045         * doc/invoke.texi (MIPS): Document 'native' value for -march and
8046         -mtune options.
8047
8048 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
8049
8050         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
8051         from it.
8052         (ISA_HAS_FP_CONDMOVE): New macro.
8053         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
8054         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
8055         (ISA_HAS_NMADD3_NMSUB3): New macro.
8056         * config/mips/mips.c (mips_rtx_costs): Update.
8057         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
8058         compiling for ST Loongson 2E/2F.
8059         (madd<mode>): Rename to madd4<mode>.  Update.
8060         (madd3<mode>): New pattern.
8061         (msub<mode>): Rename to msub4<mode>.  Update.
8062         (msub3<mode>): New pattern.
8063         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
8064         (nmadd3<mode>): New pattern.
8065         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
8066         (nmadd3<mode>_fastmath): New pattern.
8067         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
8068         (nmsub3<mode>): New pattern.
8069         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
8070         (nmsub3<mode>_fastmath): New pattern.
8071         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
8072
8073 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
8074
8075         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
8076         (DF_REF_INSN_INFO): New.
8077         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
8078         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
8079         with a NULL DF_REF_INSN_INFO.
8080         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
8081         DF_INSN_SET.
8082         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
8083         DF_INSN_INFO_EQ_USES): New.
8084         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
8085         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
8086         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
8087         * df-core.c: Update comment for above changes.
8088         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
8089         DF_INSN_UID_* macros.
8090         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
8091         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
8092         insn rtx.  Update all callers.
8093         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
8094         df_ref_create_structure, df_insn_refs_collect): Likewise.
8095         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
8096         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
8097         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
8098         macros to access the insn refs.
8099         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
8100         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
8101         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
8102         for accessing the refs.
8103         (try_fwprop_subst): Likewise.
8104         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
8105         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
8106         for accessing the refs.
8107         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
8108         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
8109         to look at the insn refs.
8110         (record_uses): Likewise.
8111         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
8112         function anymore.
8113         (mark_artificial_uses): Don't mark_insn for artificial refs.
8114         (mark_reg_rependencies): Likewise.
8115
8116         * doc/rtl.texi: Remove documentation of ADDRESSOF.
8117
8118 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8119
8120         * configure: Regenerate.
8121
8122 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
8123
8124         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
8125         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
8126         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
8127
8128 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
8129
8130         * config/avr/avr.c (avr_mcu_t): Add attiny167.
8131         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
8132         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
8133
8134 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
8135
8136         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
8137         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
8138         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
8139
8140 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
8141
8142         * tree-ssa-sccvn.c: Fix format of comments.
8143
8144 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
8145
8146         * cgraph.c: Remove unneeded forward declarations of eq_node()
8147         and hash_node().
8148
8149 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
8150
8151         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
8152         REG_RETVAL notes.
8153         (see_update_relevancy): Likewise.
8154         * fwprop.c (try_fwprop_subst): Likewise.
8155         * rtlanal.c (noop_move_p): Likewise.
8156         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
8157         notes to non-existing libcall blocks.
8158         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
8159         Remove orig_set.
8160         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
8161         (dead_libcall_p): Remove.
8162         (delete_trivially_dead_insns): Don't use it.
8163         * web.c (union_defs): Remove comment about keeping nops.
8164         * gcse.c (hash_scan_insn): Don't take libcall pointers.
8165         (compute_hash_table_work): Don't track libcall notes.
8166         (do_local_cprop): Don't take libcall pointers.  Don't update
8167         libcall notes.
8168         (adjust_libcall_notes): Deleted.
8169         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
8170         ever have existed in the first place).
8171         (replace_store_insn): Don't try to remove libcall notes.
8172         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
8173         (resolve_reg_notes): Don't call them.
8174         (resolve_simple_move): Likewise.
8175         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
8176         Don't remove REG_RETVAL notes.
8177         * emit-rtl.c (try_split): Don't update libcall notes.
8178         (emit_copy_of_insn_after): Dito.
8179         * cselib.c (cselib_current_insn_in_libcall): Remove.
8180         (cselib_process_insn): Don't set/clear it.
8181         (new_elt_loc_list): Don't record it.
8182         (cselib_init): Don't initialize it.
8183         * cselib.c (struct elt_loc_list): Remove in_libcall field.
8184         * loop-invariant.c (find_invariant_insn): Don't look for libcall
8185         notes.
8186         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
8187         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
8188         (init_deps): Don't initialize it.
8189         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
8190         * combine.c (delete_noop_moves): Don't update libcall notes.
8191         (can_combine_p): Remove now pointless #if 0 block.
8192         (try_combine): Remove another obsolete #if 0 block.
8193         (distribute_notes): Don't distribute libcall notes.
8194         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
8195         * dce.c (libcall_dead_p): Remove.
8196         (delete_unmarked_insns): Don't handle libcall blocks.
8197         (preserve_libcall_for_dce): Remove.
8198         (prescan_insns_for_dce): Don't special-case libcall block insns.
8199         * reload1 (reload): Don't handle libcall notes.
8200         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
8201         documentation.
8202
8203 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
8204
8205         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
8206         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
8207         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
8208
8209 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
8210
8211         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
8212         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
8213         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
8214
8215 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8216
8217         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
8218
8219 2008-06-16  Ira Rosen  <irar@il.ibm.com>
8220
8221         PR tree-optimization/36493
8222         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
8223         the arguments list. Use VECTYPE to create vector pointer.
8224         (vectorizable_store): Fail if accesses through a pointer to vectype
8225         do not alias the original memory reference operands.
8226         Call vect_create_data_ref_ptr without the removed argument.
8227         (vectorizable_load): Likewise.
8228         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
8229         removed argument.
8230
8231 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
8232
8233         PR target/36336
8234         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
8235         reg_equiv_constant.
8236
8237 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
8238
8239         * config/mips/loongson2ef.md: New file.
8240         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
8241         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
8242         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
8243         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
8244         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
8245         and loongson_2f.
8246         (loongson2ef.md): New include.
8247         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
8248         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
8249         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
8250         (loongson_gt_<mode>, loongson_extract_halfword)
8251         (loongson_insert_halfword_0, loongson_insert_halfword_2)
8252         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
8253         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
8254         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
8255         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
8256         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
8257         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
8258         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
8259         (vec_interleave_low<mode>): Define type attribute.
8260         * config/mips/mips.c (mips_ls2): New static variable.
8261         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
8262         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
8263         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
8264         Implement target scheduling hooks.
8265         (mips_multipass_dfa_lookahead): Update to handle tuning for
8266         Loongson 2E/2F.
8267         (mips_sched_init): Initialize data for Loongson scheduling.
8268         (mips_ls2_variable_issue): New static function.
8269         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
8270         Add sanity check.
8271         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
8272         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
8273         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
8274         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
8275         Handle ST Loongson 2E/2F cores.
8276         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
8277
8278 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8279
8280         * omp-low.c (extract_omp_for_data): Fix comment typo.
8281         * c.opt: Fix typo.
8282
8283 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8284
8285         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
8286         FIXME note about gcc/config.guess.
8287         * doc/options.texi (Option file format): Remove non-ASCII bytes.
8288         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
8289         * doc/cppopts.texi: Likewise.
8290         * doc/extend.texi: Likewise.
8291         * doc/gcc.texi: Likewise.
8292         * doc/gccint.texi: Likewise.
8293         * doc/gcov.texi: Likewise.
8294         * doc/gty.texi: Likewise.
8295         * doc/hostconfig.texi: Likewise.
8296         * doc/install.texi: Likewise.
8297         * doc/invoke.texi: Likewise.
8298         * doc/loop.texi: Likewise.
8299         * doc/makefile.texi: Likewise.
8300         * doc/md.texi: Likewise.
8301         * doc/passes.texi: Likewise.
8302         * doc/tm.texi: Likewise.
8303         * doc/tree-ssa.texi: Likewise.
8304         * doc/trouble.texi: Likewise.
8305
8306 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
8307             Nathan Sidwell  <nathan@codesourcery.com>
8308             Maxim Kuvyrkov  <maxim@codesourcery.com>
8309             Richard Sandiford  <rdsandiford@googlemail.com>
8310
8311         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
8312         * config/mips/mips-protos.h (mips_expand_vector_init): New.
8313         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
8314         builtins.
8315         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
8316         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
8317         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
8318         V8QImode cases.
8319         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
8320         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
8321         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
8322         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
8323         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
8324         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
8325         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
8326         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
8327         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
8328         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
8329         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
8330         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
8331         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
8332         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
8333         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
8334         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
8335         (mips_builtins): Add Loongson builtins.
8336         (mips_loongson_2ef_bdesc): New.
8337         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
8338         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
8339         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
8340         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
8341         New.
8342         (mips_expand_vector_init): New.
8343         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
8344         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
8345         if appropriate.
8346         * config/mips/mips.md: Add unspec numbers for Loongson
8347         builtins.  Include loongson.md.
8348         (MOVE64): Include Loongson vector modes.
8349         (SPLITF): Include Loongson vector modes.
8350         (HALFMODE): Handle Loongson vector modes.
8351         * config/mips/loongson.md: New.
8352         * config/mips/loongson.h: New.
8353         * config.gcc: Add loongson.h header for mips*-*-* targets.
8354         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
8355
8356 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
8357
8358         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
8359         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
8360         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
8361         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
8362         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
8363         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
8364         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
8365         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
8366         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
8367         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
8368         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
8369         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
8370         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
8371         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
8372         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
8373         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
8374         Remove use_fixproto=yes.
8375         (ia64*-*-hpux*): Remove comment about using fixproto.
8376         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
8377
8378 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8379
8380         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
8381         library rebuilds.
8382         * configure: Regenerate.
8383
8384 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
8385
8386         PR middle-end/36520
8387         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
8388         before evaluating it.
8389
8390 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
8391
8392         PR c/36507
8393         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
8394         nested inline functions.
8395         (start_decl, start_function): Don't invert DECL_EXTERNAL
8396         for nested inline functions.
8397
8398 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
8399
8400         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
8401         splits that must be made for correctness.
8402
8403 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
8404
8405         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
8406         (AVAIL_NON_MIPS16): Likewise.
8407         (mips_builtin_description): Replace target_flags with a predicate.
8408         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
8409         (dspr2_32): New availability predicates.
8410         (MIPS_BUILTIN): New macro.
8411         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
8412         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
8413         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
8414         Replace the TARGET_FLAGS parameters with AVAIL parameters.
8415         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
8416         (mips_dsp_32only_bdesc): Merge into...
8417         (mips_builtins): ...this new array.
8418         (mips_bdesc_map, mips_bdesc_arrays): Delete.
8419         (mips_init_builtins): Update after above changes.
8420         (mips_expand_builtin_1): Merge into...
8421         (mips_expand_builtin): ...here and update after above changes.
8422
8423 2008-06-12  Paul Brook  <paul@codesourcery.com>
8424
8425         * longlong.h (__arm__): Define count_leading_zeros.
8426         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
8427         (clzsi2, clzdi2): New functions.
8428         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
8429         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
8430         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
8431         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
8432         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
8433         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
8434         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
8435         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
8436         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
8437         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
8438
8439 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
8440
8441         * config/m68k/m68k.c (m68k_tune_flags): New.
8442         (override_options): Compute m68k_tune_flags.
8443         (MULL_COST, MULW_COST): Update for various variants of CFV2.
8444         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
8445
8446 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
8447
8448         PR middle-end/36506
8449         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
8450
8451 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
8452
8453         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
8454         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
8455
8456 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
8457
8458         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
8459         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
8460
8461 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
8462
8463         PR middle-end/36506
8464         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
8465         reductions.
8466
8467 2008-06-12  Richard Guenther  <rguenther@suse.de>
8468
8469         PR tree-optimization/36345
8470         * tree-flow.h (struct ptr_info_def): Align escape_mask,
8471         add memory_tag_needed flag.
8472         (may_alias_p): Declare.
8473         * tree-ssa-alias.c (may_alias_p): Export.
8474         (set_initial_properties): Use memory_tag_needed flag.
8475         (update_reference_counts): Likewise.
8476         (reset_alias_info): Reset memory_tag_needed flag.
8477         (create_name_tags): Check memory_tag_needed flag.
8478         (dump_points_to_info_for): Dump it.
8479         * tree-ssa-structalias.c (struct variable_info): Remove
8480         directly_dereferenced flag.
8481         (new_var_info): Do not initialize it.
8482         (process_constraint_1): Do not set it.
8483         (update_alias_info): Set is_dereferenced flag.
8484         (set_uids_in_ptset): Use may_alias_p.
8485         (set_used_smts): Check memory_tag_needed flag.
8486         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
8487         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
8488         memory_tag_needed flag.
8489         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
8490         from broken design.
8491
8492 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
8493
8494         * config/i386/i386.c (ix86_compute_frame_layout): Disable
8495         red zone for w64 abi.
8496         (ix86_expand_prologue): Likewise.
8497         (ix86_force_to_memory): Likewise.
8498         (ix86_free_from_memory): Likewise.
8499
8500 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
8501
8502         PR target/36425
8503         * config/rs6000/rs6000.c (rs6000_override_options): Set
8504         rs6000_isel conditionally to the absence of comand line override.
8505         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8506         Remove duplicate rs6000_isel setting.
8507         * config/rs6000/eabispe.h: Ditto.
8508
8509 2008-06-11  Richard Guenther  <rguenther@suse.de>
8510
8511         * alias.c (get_alias_set): Use the element alias-set for arrays.
8512         (record_component_aliases): For arrays and vectors do nothing.
8513         * c-common.c (strict_aliasing_warning): Handle the cases
8514         of alias set zero explicitly.
8515         * Makefile.in (dfp.o-warn): Add -Wno-error.
8516
8517 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
8518
8519         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
8520         tune_32 tune_64.
8521         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
8522         tune_32 tune_64 to supported_defaults.  Allow values not
8523         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
8524         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
8525         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
8526         with_cpu_64 to generic for 64-bit-supporting configurations, not
8527         with_cpu.  Remove FIXMEs.
8528         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
8529         --with-arch-64, --with-tune-32, --with-tune-64): Document.
8530         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
8531         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
8532         arch_32 and arch_64.
8533
8534 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
8535             Olivier Hainque  <hainque@adacore.com>
8536
8537         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
8538         Use DECL_SIZE_UNIT to retrieve the size of the field.
8539
8540 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
8541
8542         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
8543         with function calls after declarations.  Lay out
8544         neon_float_type_node before further use.
8545
8546 2008-06-11  Richard Guenther  <rguenther@suse.de>
8547
8548         * tree-flow.h (may_point_to_global_var): Declare.
8549         * tree-ssa-alias.c (may_point_to_global_var): New function.
8550         * tree-ssa-sink.c (is_hidden_global_store): Use it.
8551
8552 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
8553
8554         * configure.ac: Teach that fido supports .debug_line.
8555         * configure: Regenerate.
8556
8557 2008-06-10  Tom Tromey  <tromey@redhat.com>
8558
8559         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
8560         debug hook.
8561
8562 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
8563
8564         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
8565         (encode_decimal64, decode_decimal64, encode_decimal128,
8566         decode_decimal128): Reverse order of 32-bit parts of value if host
8567         and target endianness differ.
8568
8569 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
8570
8571         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
8572         Avoid division by 0.
8573         (tree_mod_pow2_value_transform): Likewise.
8574         (tree_ic_transform): Likewise.
8575         (tree_stringops_transform): Likewise.
8576         (tree_mod_subtract_transform): Likewise.
8577         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
8578         (copy_edges_for_bb): Likewise.
8579         (initialize_cfun): Likewise.
8580
8581 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
8582
8583         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
8584         nonmemory_operand. Add "N" operand constraint.
8585         (*btsi): Ditto.
8586         (*jcc_btdi_mask_rex64): New instruction and split pattern.
8587         (*jcc_btsi_mask): Ditto.
8588         (*jcc_btsi_mask_1): Ditto.
8589
8590 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
8591
8592         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
8593         TYPE_CANONICAL for copied element type.
8594
8595 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
8596
8597         PR target/36473
8598         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
8599         Add m_CORE2 and m_GENERIC.
8600         * config/i386/predicates.md (bt_comparison_operator): New predicate.
8601         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
8602         (*btsi): Ditto.
8603         (*jcc_btdi_rex64): New instruction and split pattern.
8604         (*jcc_btsi): Ditto.
8605         (*jcc_btsi_1): Ditto.
8606         (*btsq): Fix Intel asm dialect operand order.
8607         (*btrq): Ditto.
8608         (*btcq): Ditto.
8609
8610 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
8611
8612         PR middle-end/36447
8613         * simplify-rtx.c (simplify_subreg): Add check for shift count
8614         greater than size.
8615
8616 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
8617
8618         * doc/md.texi: Synchronize with later constraints.md change.
8619         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
8620         with a C implementation.
8621         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
8622         MFLO handling.
8623         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
8624         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
8625         when moving to and from MD_REGNUM.
8626         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
8627         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
8628         Handle byte and halfword moves.
8629         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
8630         separately.
8631         * config/mips/constraints.md (h): Turn into NO_REGS.
8632         (l, x): Update documentation.
8633         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
8634         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
8635         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
8636         (HILO): New mode iterator.
8637         (MOVE128): Add TI.
8638         (any_div): New code iterator.
8639         (u): Extend code attribute to div and udiv.
8640         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
8641         d_operand in the splitters.  Remove redundant CONST_INT checks.
8642         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
8643         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
8644         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
8645         accordingly, using normal moves instead of unspecs to move LO into
8646         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
8647         (<u>mulsidi3): Handle expansion in C code.
8648         (<u>mulsidi3_32bit_internal): Rename to...
8649         (<u>mulsidi3_32bit): ...this.
8650         (<u>mulsidi3_32bit_r4000): Fix insn separator.
8651         (*<u>mulsidi3_64bit): Rename to...
8652         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
8653         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
8654         to set LO and HI to the multiplication result.  Use a normal move
8655         for MFLO and an unspec for MFHI.
8656         (*<u>mulsidi3_64bit_parts): Replace with...
8657         (<u>mulsidi3_64bit_hilo): ...this new instruction.
8658         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
8659         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
8660         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
8661         instead of HI.  Split the instruction into a separate multiplication
8662         and MFHI if !TARGET_FIX_R4000.
8663         (<su>muldi3_highpart): Likewise.
8664         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
8665         and the "=h" clobber.
8666         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
8667         (<u>mulditi3): New expander.
8668         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
8669         (madsi): Remove "=h" clobber.
8670         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
8671         Force the modulus result to be a GPR and split the instruction into
8672         a division followed by an MFHI after reload.
8673         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
8674         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
8675         the MIPS16 HIGH define_split.
8676         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
8677         of acc<->gpr moves to "multi".
8678         (*movdi_64bit): Replace the single "x" alternative with
8679         alternatives for moving into and out of "a".
8680         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
8681         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
8682         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
8683         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
8684         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
8685         (movti): New expander.
8686         (*movti, *movti_mips16): New insns.
8687         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
8688         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
8689         (mthi<GPR:mode>_<HILO:mode>): Likewise.
8690         * config/mips/predicates.md (fpr_operand): Delete.
8691         (d_operand): New predicate.
8692
8693 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
8694
8695         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
8696         failure on some Bourne shells.
8697         (x86_64-*-*): Ditto.
8698
8699 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
8700
8701         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
8702
8703 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
8704
8705         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
8706         (sparc-sun-solaris2*): Likewise.
8707
8708 2008-06-09  Arnaud Charlet  <charlet@adacore.com
8709
8710         * doc/install.texi: Update requirements to build the Ada compiler.
8711
8712 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
8713
8714         * df-scan.c (struct df_scan_problem_data): Remove the
8715         mw_link_pool alloc pool.
8716         (df_scan_free_internal): Don't free it.
8717         (df_scan_alloc): Don't allocate it.
8718         * df.h (struct df_link): Update comment.
8719
8720 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
8721
8722         * except.h: Correct checks for when SJLJ exceptions must be used.
8723
8724 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8725
8726         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
8727         default.
8728
8729 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
8730
8731         PR tree-optimization/36218
8732         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
8733         configure for the build system.
8734         (BUILD_LDFLAGS): Define.
8735         * configure: Regenerate.
8736         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
8737
8738 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
8739
8740         PR target/36424
8741         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
8742         * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
8743         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
8744
8745 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
8746
8747         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
8748
8749 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
8750
8751         * config.gcc (Obsolete configurations): Remove list of
8752         configurations.
8753         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
8754         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
8755         targets matched by those patterns.
8756         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
8757         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
8758         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
8759         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
8760         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
8761         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
8762         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
8763         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
8764         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
8765         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
8766         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
8767         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
8768         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
8769         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
8770         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
8771         Make code for Solaris 7 and greater unconditional for Solaris.
8772         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
8773         Remove --with-* handling.
8774         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
8775         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
8776         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
8777         LINK_OS_WINDISS_SPEC): Remove.
8778         * config/rs6000/sysv4.opt (mwindiss): Remove.
8779         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
8780         * configure: Regenerate.
8781         * doc/cpp.texi: Don't mention BeOS.
8782         * doc/extend.texi (interrupt): Don't mention MS1.
8783         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
8784         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
8785         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
8786         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
8787         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
8788         Remove.
8789         * doc/invoke.texi (MT Options): Remove.
8790         (-mwindiss): Remove.
8791         (CRIS Options): Remove cris-axis-aout references.
8792         (HPPA Options): Don't mention hppa1.1-*-pro.
8793         * doc/md.texi: (MorphoTech family): Remove.
8794         * libgcc2.c: Don't handle UWIN.
8795         * config/alpha/t-unicosmk: Remove.
8796         * config/alpha/unicosmk.h: Remove.
8797         * config/arm/kaos-arm.h: Remove.
8798         * config/arm/kaos-strongarm.h: Remove.
8799         * config/arm/strongarm-coff.h: Remove.
8800         * config/arm/strongarm-elf.h: Remove.
8801         * config/arm/strongarm-pe.h: Remove.
8802         * config/arm/t-strongarm-pe: Remove.
8803         * config/arm/t-xscale-coff: Remove.
8804         * config/arm/t-xscale-elf: Remove.
8805         * config/arm/xscale-coff.h: Remove.
8806         * config/arm/xscale-elf.h: Remove.
8807         * config/chorus.h: Remove.
8808         * config/cris/aout.h: Remove.
8809         * config/cris/aout.opt: Remove.
8810         * config/cris/t-aout: Remove.
8811         * config/i386/beos-elf.h: Remove.
8812         * config/i386/kaos-i386.h: Remove.
8813         * config/i386/ptx4-i.h: Remove.
8814         * config/i386/sco5.h: Remove.
8815         * config/i386/sco5.opt: Remove.
8816         * config/i386/sysv4-cpp.h: Remove.
8817         * config/i386/sysv5.h: Remove.
8818         * config/i386/t-beos: Remove.
8819         * config/i386/t-sco5: Remove.
8820         * config/i386/t-uwin: Remove.
8821         * config/i386/uwin.asm: Remove.
8822         * config/i386/uwin.h: Remove.
8823         * config/kaos.h: Remove.
8824         * config/mips/windiss.h: Remove.
8825         * config/mt: Remove directory.
8826         * config/pa/pa-osf.h: Remove.
8827         * config/pa/pa-pro-end.h: Remove.
8828         * config/pa/t-pro: Remove.
8829         * config/ptx4.h: Remove.
8830         * config/rs6000/beos.h: Remove.
8831         * config/rs6000/kaos-ppc.h: Remove.
8832         * config/rs6000/t-beos: Remove.
8833         * config/rs6000/windiss.h: Remove.
8834         * config/sh/kaos-sh.h: Remove.
8835         * config/sol2-6.h: Remove.
8836         * config/sparc/sol26-sld.h: Remove.
8837         * config/sparc/sysv4-only.h: Remove.
8838         * config/vax/bsd.h: Remove.
8839         * config/vax/t-memfuncs: Remove.
8840         * config/vax/ultrix.h: Remove.
8841         * config/vax/vaxv.h: Remove.
8842         * config/windiss.h: Remove.
8843
8844 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
8845
8846         PR rtl-optimization/36438
8847         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
8848         for vector shifts with constant scalar shift operands.
8849
8850 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
8851
8852         * doc/invoke.texi: Document -march=xlr.
8853         * config/mips/xlr.md: New file.
8854         * config/mips/mips.md: Include it.
8855         (cpu): Add "xlr".
8856         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
8857         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
8858         (mips_rtx_cost_data): Likewise.
8859
8860 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
8861
8862         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
8863         PRE_INC and PRE_DEC cases.
8864
8865 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
8866
8867         PR rtl-optimization/36419
8868         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
8869         the emitting jump insn.
8870
8871         PR target/36362
8872         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
8873         is not bool, boolify the whole *expr_p and convert to the desired type.
8874
8875 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
8876
8877         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
8878         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
8879         Add omp_private_outer_ref hook, add another argument to
8880         omp_clause_default_ctor hook.
8881         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
8882         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
8883         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
8884         hook_tree_tree_tree_tree_null.
8885         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
8886         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
8887         * hooks.c (hook_tree_tree_tree_tree_null): New function.
8888         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
8889         * tree.def (OMP_TASK): New tree code.
8890         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
8891         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
8892         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
8893         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
8894         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
8895         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
8896         OMP_CLAUSE_COLLAPSE_EXPR): Define.
8897         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
8898         (OMP_DIRECTIVE_P): Add OMP_TASK.
8899         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
8900         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
8901         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
8902         and OMP_CLAUSE_UNTIED entries.
8903         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
8904         num_ops to 2.
8905         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
8906         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
8907         * tree-pretty-print.c (dump_omp_clause): Handle
8908         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
8909         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
8910         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
8911         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
8912         warning about unsigned iterators.  Change decl/init/cond/incr
8913         arguments to TREE_VECs, check arguments for all collapsed loops.
8914         (c_finish_omp_taskwait): New function.
8915         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
8916         ws_clauses.
8917         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
8918         default_function_array_conversion on init.  Add par_clauses argument.
8919         If decl is present in parallel's lastprivate clause, change it to
8920         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
8921         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
8922         collapse count in clauses.
8923         (c_parser_omp_for, c_parser_omp_parallel): Adjust
8924         c_parser_omp_for_loop callers.
8925         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
8926         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
8927         (c_parser_omp_clause_name): Handle collapse and untied clauses.
8928         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
8929         functions.
8930         (c_parser_omp_clause_schedule): Handle schedule(auto).
8931         Include correct location in the error message.
8932         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
8933         and PRAGMA_OMP_CLAUSE_UNTIED.
8934         (OMP_TASK_CLAUSE_MASK): Define.
8935         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
8936         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
8937         * tree-nested.c (convert_nonlocal_omp_clauses,
8938         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
8939         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
8940         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
8941         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
8942         OMP_CLAUSE_DECL.
8943         (conver_nonlocal_reference, convert_local_reference,
8944         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
8945         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
8946         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
8947         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
8948         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
8949         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
8950         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
8951         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
8952         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
8953         OMP_CLAUSE_UNTIED.
8954         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
8955         * c-common.h (c_finish_omp_taskwait): New prototype.
8956         * gimple-low.c (lower_stmt): Handle OMP_TASK.
8957         * tree-parloops.c (create_parallel_loop): Create 1 entry
8958         vectors for OMP_FOR_{INIT,COND,INCR}.
8959         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
8960         (make_edges): Handle OMP_TASK.
8961         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
8962         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
8963         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
8964         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
8965         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
8966         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
8967         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
8968         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
8969         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
8970         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
8971         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
8972         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
8973         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
8974         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
8975         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
8976         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
8977         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
8978         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
8979         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
8980         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
8981         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
8982         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
8983         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
8984         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
8985         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
8986         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
8987         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
8988         original iterator is present in lastprivate clause or if
8989         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
8990         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
8991         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
8992         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
8993         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
8994         if it is set, lookup var in outer contexts too.  Handle
8995         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
8996         to be implicitly determined firstprivate for task regions.
8997         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
8998         if it is set, lookup var in outer contexts too.  Set
8999         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
9000         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
9001         OMP_CLAUSE_UNTIED.  Take region_type as last argument
9002         instead of in_parallel and in_combined_parallel.
9003         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
9004         Adjust callers.
9005         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
9006         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
9007         (new_omp_context): Set default_kind to
9008         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
9009         (omp_region_type): New enum.
9010         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
9011         fields, add region_type.
9012         (new_omp_context): Take region_type as argument instead of is_parallel
9013         and is_combined_parallel.
9014         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
9015         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
9016         ctx->is_combined_parallel checks.
9017         (gimplify_omp_task): New function.
9018         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
9019         OMP_CLAUSE_UNTIED.
9020         * omp-low.c (extract_omp_for_data): Use schedule(static)
9021         for schedule(auto).  Handle pointer and unsigned iterators.
9022         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
9023         Add loops argument.  Extract data for collapsed OMP_FOR loops.
9024         (expand_parallel_call): Assert sched_kind isn't auto,
9025         map runtime schedule to index 3.
9026         (struct omp_for_data_loop): New type.
9027         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
9028         Add loop, loops, collapse and iter_type fields.
9029         (workshare_safe_to_combine_p): Disallow combined for if
9030         iter_type is unsigned long long.  Don't combine collapse > 1 loops
9031         unless all bounds and steps are constant.  Adjust extract_omp_for_data
9032         caller.
9033         (expand_omp_for_generic): Handle pointer, unsigned and long long
9034         iterators.  Handle collapsed OMP_FOR loops.  Adjust
9035         for struct omp_for_data changes.  If libgomp function doesn't return
9036         boolean_type_node, add comparison of the return value with 0.
9037         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
9038         pointer, unsigned and long long iterators.  Adjust for struct
9039         omp_for_data changes.
9040         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
9041         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
9042         unsigned long long.  Allocate loops array, pass it to
9043         extract_omp_for_data.  For collapse > 1 loops use always
9044         expand_omp_for_generic.
9045         (omp_context): Add sfield_map and srecord_type fields.
9046         (is_task_ctx, lookup_sfield): New functions.
9047         (use_pointer_for_field): Use is_task_ctx helper.  Change first
9048         argument's type from const_tree to tree.  Clarify comment.
9049         In OMP_TASK disallow copy-in/out sharing.
9050         (build_sender_ref): Call lookup_sfield instead of lookup_field.
9051         (install_var_field): Add mask argument.  Populate both record_type
9052         and srecord_type if needed.
9053         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
9054         in srecord_type.
9055         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
9056         and DECL_FIELD_OFFSET.
9057         (scan_sharing_clauses): Adjust install_var_field callers.  For
9058         firstprivate clauses on explicit tasks allocate the var by value in
9059         record_type unconditionally, rather than by reference.
9060         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
9061         Use is_taskreg_ctx instead of is_parallel_ctx.
9062         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
9063         (create_omp_child_function_name): Add task_copy argument, use
9064         *_omp_cpyfn* names if it is true.
9065         (create_omp_child_function): Add task_copy argument, if true create
9066         *_omp_cpyfn* helper function.
9067         (scan_omp_parallel): Adjust create_omp_child_function callers.
9068         Rename parallel_nesting_level to taskreg_nesting_level.
9069         (scan_omp_task): New function.
9070         (lower_rec_input_clauses): Don't run constructors for firstprivate
9071         explicit task vars which are initialized by *_omp_cpyfn*.
9072         Pass outer var ref to omp_clause_default_ctor hook if
9073         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
9074         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
9075         OMP_CLAUSE_REDUCTION_INIT.
9076         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
9077         avoid duplicate setting of fields.  Handle
9078         OMP_CLAUSE_PRIVATE_OUTER_REF.
9079         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
9080         copy-out if TREE_READONLY, only copy-in.
9081         (expand_task_copyfn): New function.
9082         (expand_task_call): New function.
9083         (struct omp_taskcopy_context): New type.
9084         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
9085         New functions.
9086         (lower_omp_parallel): Rename to...
9087         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
9088         Call create_task_copyfn if srecord_type is needed.  Adjust
9089         sender_decl type.
9090         (task_shared_vars): New variable.
9091         (check_omp_nesting_restrictions): Warn if work-sharing,
9092         barrier, master or ordered region is closely nested inside OMP_TASK.
9093         Add warnings for barrier if closely nested inside of work-sharing,
9094         ordered, or master region.
9095         (scan_omp_1): Call check_omp_nesting_restrictions even for
9096         GOMP_barrier calls.  Rename parallel_nesting_level to
9097         taskreg_nesting_level.  Handle OMP_TASK.
9098         (lower_lastprivate_clauses): Even if some lastprivate is found on a
9099         work-sharing construct, continue looking for them on parent parallel
9100         construct.
9101         (lower_omp_for_lastprivate): Add lastprivate clauses
9102         to the beginning of dlist rather than end.  Adjust for struct
9103         omp_for_data changes.
9104         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
9105         not after it.  Handle collapsed OMP_FOR loops, adjust for
9106         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
9107         (get_ws_args_for): Adjust extract_omp_for_data caller.
9108         (scan_omp_for): Handle collapsed OMP_FOR
9109         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
9110         (lower_omp_single_simple): If libgomp function doesn't return
9111         boolean_type_node, add comparison of the return value with 0.
9112         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
9113         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
9114         (parallel_nesting_level): Rename to...
9115         (taskreg_nesting_level): ... this.
9116         (is_taskreg_ctx): New function.
9117         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
9118         of is_parallel_ctx.
9119         (execute_lower_omp): Rename parallel_nesting_level to
9120         taskreg_nesting_level.
9121         (expand_omp_parallel): Rename to...
9122         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
9123         Call omp_task_call for OMP_TASK regions.
9124         (expand_omp): Adjust caller, handle OMP_TASK.
9125         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
9126
9127         * bitmap.c (bitmap_default_obstack_depth): New variable.
9128         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
9129         if argument is NULL and bitmap_default_obstack is already initialized.
9130         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
9131         at the end.
9132         * matrix-reorg.c (matrix_reorg): Likewise.
9133
9134 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
9135
9136         * config/i386/i386.md (*indirect_jump): Macroize using P
9137         mode iterator.  Remove !TARGET_64BIT from insn constraints.
9138         (*tablejump_1): Ditto.
9139         (*indirect_jump_rex64): Remove insn pattern.
9140         (*tablejump_1_rex64): Ditto.
9141         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
9142         and eh_return_si insn patterns.
9143
9144 2008-06-06  Richard Guenther  <rguenther@suse.de>
9145
9146         * tree-ssa-structalias.c (merge_smts_into): Remove.
9147         (find_what_p_points_to): Do not bother to compute the
9148         points-to set for pt_anything pointers.
9149         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
9150         for pt_anything pointers is ok.
9151
9152 2008-06-06  Jan Hubicka  <jh@suse.cz>
9153
9154         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
9155
9156 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9157
9158         * cgraph.c: Fix typos in comments.
9159         (cgraph_availability_names): Fix string typo.
9160         * fold-const.c: Fix typos in comments.
9161         (fold_binary): Fix typo in warning.
9162         * genautomata.c: Fix typos in comments.
9163         (check_presence_pattern_sets): Fix typo in local variable.
9164         (output_description): Fix typo in output.
9165         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
9166         * hwint.h: Likewise.
9167         * matrix-reorg.c (check_allocation_function): Likewise.
9168         * omega.c (smooth_weird_equations): Likewise.
9169         * auto-inc-dec.c: Fix typos in comments.
9170         * bb-reorder.c: Likewise.
9171         * builtins.c: Likewise.
9172         * c-common.c: Likewise.
9173         * c-cppbuiltin.c: Likewise.
9174         * c-parser.c: Likewise.
9175         * c-pretty-print.c: Likewise.
9176         * cfgcleanup.c: Likewise.
9177         * cfgexpand.c: Likewise.
9178         * cfghooks.c: Likewise.
9179         * cfglayout.c: Likewise.
9180         * cfgloopmanip.c: Likewise.
9181         * cgraphunit.c: Likewise.
9182         * coverage.c: Likewise.
9183         * dbxout.c: Likewise.
9184         * df-byte-scan.c: Likewise.
9185         * df-core.c: Likewise.
9186         * df-problems.c: Likewise.
9187         * df-scan.c: Likewise.
9188         * dfp.c: Likewise.
9189         * dominance.c: Likewise.
9190         * domwalk.c: Likewise.
9191         * dse.c: Likewise.
9192         * dwarf2out.c: Likewise.
9193         * emit-rtl.c: Likewise.
9194         * et-forest.c: Likewise.
9195         * function.c: Likewise.
9196         * function.h: Likewise.
9197         * gcc.c: Likewise.
9198         * gcov-io.c: Likewise.
9199         * gcov.c: Likewise.
9200         * gcse.c: Likewise.
9201         * genattrtab.c: Likewise.
9202         * ggc-page.c: Likewise.
9203         * gimplify.c: Likewise.
9204         * gthr-lynx.h: Likewise.
9205         * haifa-sched.c: Likewise.
9206         * ipa-cp.c: Likewise.
9207         * ipa-inline.c: Likewise.
9208         * ipa-prop.h: Likewise.
9209         * ipa-pure-const.c: Likewise.
9210         * ipa-struct-reorg.c: Likewise.
9211         * ipa-struct-reorg.h: Likewise.
9212         * ipa-type-escape.c: Likewise.
9213         * ipa.c: Likewise.
9214         * loop-doloop.c: Likewise.
9215         * mips-tfile.c: Likewise.
9216         * mkmap-flat.awk: Likewise.
9217         * mkmap-symver.awk: Likewise.
9218         * modulo-sched.c: Likewise.
9219         * omp-low.c: Likewise.
9220         * optabs.c: Likewise.
9221         * optabs.h: Likewise.
9222         * opts.c: Likewise.
9223         * passes.c: Likewise.
9224         * postreload-gcse.c: Likewise.
9225         * postreload.c: Likewise.
9226         * predict.c: Likewise.
9227         * pretty-print.h: Likewise.
9228         * profile.c: Likewise.
9229         * protoize.c: Likewise.
9230         * ra-conflict.c: Likewise.
9231         * real.c: Likewise.
9232         * recog.c: Likewise.
9233         * regclass.c: Likewise.
9234         * regs.h: Likewise.
9235         * reload.c: Likewise.
9236         * rtl-error.c: Likewise.
9237         * rtlanal.c: Likewise.
9238         * scan.h: Likewise.
9239         * sched-rgn.c: Likewise.
9240         * see.c: Likewise.
9241         * stmt.c: Likewise.
9242         * target.h: Likewise.
9243         * tree-dfa.c: Likewise.
9244         * tree-eh.c: Likewise.
9245         * tree-flow-inline.h: Likewise.
9246         * tree-inline.c: Likewise.
9247         * tree-into-ssa.c: Likewise.
9248         * tree-loop-distribution.c: Likewise.
9249         * tree-nested.c: Likewise.
9250         * tree-parloops.c: Likewise.
9251         * tree-pass.h: Likewise.
9252         * tree-pretty-print.c: Likewise.
9253         * tree-profile.c: Likewise.
9254         * tree-scalar-evolution.c: Likewise.
9255         * tree-sra.c: Likewise.
9256         * tree-ssa-alias-warnings.c: Likewise.
9257         * tree-ssa-ccp.c: Likewise.
9258         * tree-ssa-coalesce.c: Likewise.
9259         * tree-ssa-dom.c: Likewise.
9260         * tree-ssa-dse.c: Likewise.
9261         * tree-ssa-forwprop.c: Likewise.
9262         * tree-ssa-live.c: Likewise.
9263         * tree-ssa-live.h: Likewise.
9264         * tree-ssa-loop-im.c: Likewise.
9265         * tree-ssa-loop-ivopts.c: Likewise.
9266         * tree-ssa-loop-niter.c: Likewise.
9267         * tree-ssa-loop-prefetch.c: Likewise.
9268         * tree-ssa-phiopt.c: Likewise.
9269         * tree-ssa-phiprop.c: Likewise.
9270         * tree-ssa-sccvn.c: Likewise.
9271         * tree-ssa-ter.c: Likewise.
9272         * tree-ssa-threadupdate.c: Likewise.
9273         * tree-ssa.c: Likewise.
9274         * tree-vect-analyze.c: Likewise.
9275         * tree-vect-transform.c: Likewise.
9276         * tree-vectorizer.c: Likewise.
9277         * tree-vn.c: Likewise.
9278         * tree-vrp.c: Likewise.
9279         * tree.c: Likewise.
9280         * tree.def: Likewise.
9281         * tree.h: Likewise.
9282         * unwind-dw2-fde.c: Likewise.
9283         * unwind.inc: Likewise.
9284         * value-prof.c: Likewise.
9285         * vmsdbgout.c: Likewise.
9286
9287 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
9288
9289         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
9290         always place FP constants in the TOC for TARGET_POWERPC64.
9291         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
9292
9293 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
9294
9295         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
9296         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
9297         enable for TARGET_E500_DOUBLE.
9298         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
9299         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
9300         floating-point modes like integer modes for E500 double.
9301         (rs6000_legitimate_offset_address_p): Likewise.
9302         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
9303         addressing for DDmode for E500 double.
9304         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
9305         modes as using 64-bits of registers for E500 double.
9306         (spe_build_register_parallel): Do not handle DDmode or TDmode.
9307         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
9308         specially for E500 double.
9309         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
9310         TDmode for E500 double.
9311         (rs6000_gimplify_va_arg): Only handle SDmode in registers
9312         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
9313         (rs6000_split_multireg_move): Do not handle TDmode specially for
9314         E500 double.
9315         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
9316         using 64-bit registers for E500 double.
9317         (emit_frame_save): Do not handle DDmode specially for E500 double.
9318         (gen_frame_mem_offset): Likewise.
9319         (rs6000_function_value): Do not call spe_build_register_parallel
9320         for DDmode or TDmode.
9321         (rs6000_libcall_value): Likewise.
9322         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
9323         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
9324         for E500 double.
9325
9326 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
9327
9328         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
9329         in comments.
9330
9331 2008-06-04  Junjie Gu <jgu@tensilica.com>
9332
9333         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
9334         comparison for frame pointers.
9335
9336 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
9337
9338         PR target/27386
9339         * config/avr/avr.h (PUSH_ROUNDING): Remove.
9340
9341 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
9342
9343         PR target/30243
9344         * builtins.c (expand_builtin_signbit): Don't take lowpart when
9345         register is already smaller or equal to required mode.
9346
9347 2008-06-04  Xinliang David Li  <davidxl@google.com>
9348
9349         * tree-call-cdce.c: New file.
9350         (cond_dead_built_in_calls): New static variable.
9351         (input_domain): New struct.
9352         (check_pow): New function.
9353         (check_builtin_call): Ditto.
9354         (check_target_format): Ditto.
9355         (is_call_dce_candidate): Ditto.
9356         (gen_one_condition): Ditto.
9357         (gen_conditions_for_domain): Ditto.
9358         (get_domain): Ditto.
9359         (gen_conditions_for_pow_cst_base): Ditto.
9360         (gen_conditions_for_pow_int_base): Ditto.
9361         (gen_conditions_for_pow): Ditto.
9362         (get_no_error_domain): Ditto.
9363         (gen_shrink_wrap_conditions): Ditto.
9364         (shrink_wrap_one_built_in_call): Ditto.
9365         (shink_wrap_conditional_dead_built_in_calls): Ditto.
9366         (tree_call_cdce): Ditto.
9367         (gate_call_cdce): Ditto.
9368         (pass_call_cdce): New gimple pass.
9369         * passes.c: (init_optimization_passes): New pass.
9370         * tree-pass.h: New pass declaration.
9371         * opts.c (decode_options): New flag setting.
9372         * common.opt: Add -ftree-builtin-call-dce flag.
9373         * Makefile.in: Add new source file.
9374         * tempvar.def: New tv_id.
9375         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
9376
9377 2008-06-04  Richard Guenther  <rguenther@suse.de>
9378
9379         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
9380         (is_call_clobbered): Always check var_ann->call_clobbered.
9381         (mark_call_clobbered): Always set var_ann->call_clobbered.
9382         (clear_call_clobbered): Always clear var_ann->call_clobbered.
9383         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
9384         (reset_alias_info): Clear call clobbering info on MTAGs and
9385         globals as well.
9386         (set_pt_anything): Set pt_global_mem.
9387         (create_tag_raw): Adjust comment.
9388         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
9389
9390 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
9391             Maxim Kuvyrkov  <maxim@codesourcery.com>
9392
9393         * config/m68k/m68k.opt (mxgot): New option.
9394         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
9395         (m68k_output_addr_const_extra): New.
9396         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
9397         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
9398         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
9399         * doc/invoke.texi (M680x0 Options): Document -mxgot.
9400
9401 2008-06-04  Richard Guenther  <rguenther@suse.de>
9402
9403         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
9404         negative or non-representable offsets.
9405
9406 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
9407
9408         * config/i386/i386.c (ix86_gen_leave): New.
9409         (ix86_gen_pop1): Likewise.
9410         (ix86_gen_add3): Likewise.
9411         (ix86_gen_sub3): Likewise.
9412         (ix86_gen_sub3_carry): Likewise.
9413         (ix86_gen_one_cmpl2): Likewise.
9414         (ix86_gen_monitor): Likewise.
9415         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
9416         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
9417         ix86_gen_one_cmpl2 and ix86_gen_monitor.
9418         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
9419         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
9420         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
9421         (ix86_expand_epilogue): Updated.
9422         (print_operand): Handle integer register operand for 'z'.
9423         (ix86_expand_strlensi_unroll_1): Likewise.
9424         (ix86_expand_strlen): Likewise.
9425         (ix86_expand_builtin): Likewise.
9426         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
9427         mov{q}/mov{l} and add{q}/add{l}.
9428
9429 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
9430
9431         * config/i386/i386.md (P): New mode iterator.
9432         (SFmode push_operand splitter): Macroize DImode and SImode pushes
9433         using P mode iterator.
9434         (DFmode push_operand splitter): Ditto.
9435         (XFmode push_operand splitter): Ditto.
9436         (DFmode float_extend SFmode push_operand splitter): Ditto.
9437         (XFmode float_extend SFmode push_operand splitter): Do not generate
9438         SImode pushes for 64bit target.  Macroize Dimode and SImode
9439         pushes using P mode iterator.
9440         (XFmode float_extend DFmode push_operand splitter): Ditto.
9441
9442 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
9443
9444         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
9445         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
9446         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
9447         return type to int.
9448         (ix86_call_abi_override): Remove check for call_used_regs.
9449
9450 2008-06-03  Richard Guenther  <rguenther@suse.de>
9451
9452         * tree-ssa-structalias.c (find_func_aliases): Add constraints
9453         for the lhs of calls if the return type contains pointers.
9454
9455 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
9456
9457         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
9458         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
9459         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
9460         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
9461         of cfun and DEFAULT_ABI to deceide abi mode.
9462         (DEFAULT_ABI): New.
9463         (REG_PARM_STACK_SPACE): Removed.
9464         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
9465         (STACK_BOUNDARY): Use default target to deceide stack boundary.
9466         * config/i386/i386-protos.h (ix86_cfun_abi): New.
9467         (ix86_function_abi): Likewise.
9468         (ix86_function_type_abi): Likewise.
9469         (ix86_call_abi_override): Likewise.
9470         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
9471         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
9472         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
9473         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
9474         specific defines.
9475         (X86_64_REGPARM_MAX): New.
9476         (X86_64_SSE_REGPARM_MAX): New.
9477         (X64_REGPARM_MAX): New.
9478         (X64_SSE_REGPARM_MAX): New.
9479         (X86_32_REGPARM_MAX): New.
9480         (X86_32_SSE_REGPARM_MAX): New.
9481         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
9482         (ix86_function_regparm): Handle user calling abi.
9483         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
9484         by DEFAULT_ABI versus SYSV_ABI check.
9485         (ix86_reg_parm_stack_space): New.
9486         (ix86_function_type_abi): New.
9487         (ix86_call_abi_override): New.
9488         (ix86_function_abi): New.
9489         (ix86_cfun_abi): New.
9490         (init_cumulative_args): Call abi specific initialization.
9491         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
9492         (function_arg_64): Extend SSE_REGPARM_MAX check.
9493         (function_arg (): Remove TARGET_64BIT_MS_ABI.
9494         (ix86_pass_by_reference): Likewise.
9495         (ix86_function_value_regno_p): Likewise.
9496         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
9497         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
9498         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
9499         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
9500         (setup_incoming_varargs_64): Adjust regparm for call abi.
9501         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
9502         (ix86_va_start): Likewise.
9503         (ix86_gimplify_va_arg): Likewise.
9504         (ix86_expand_prologue): Likewise.
9505         (output_pic_addr_const): Likewise.
9506         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
9507         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
9508         (x86_output_mi_thunk): Likewise.
9509         (x86_function_profiler): Likewise.
9510         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
9511         (SYSV_ABI, MS_ABI): New constants.
9512         (DEFAULT_ABI): New.
9513         (init_regs): Add prototype of function in regclass.c file.
9514         (OVERRIDE_ABI_FORMAT): New.
9515         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
9516         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
9517         (OUTGOING_REG_PARM_STACK_SPACE): New.
9518         (ix86_reg_parm_stack_space): New prototype.
9519         (CUMULATIVE_ARGS): Add call_abi member.
9520         (machine_function): Add call_abi member.
9521         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
9522         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
9523
9524 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com>
9525
9526         PR target/34879
9527         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
9528         (avr_builtin_setjmp_frame_value): New function.
9529         * config/avr/avr.md (nonlocal_goto_receiver): Define.
9530         (nonlocal_goto): Define.
9531
9532 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
9533
9534         * config/mips/mips.c (mips_emit_loadgp): Return early if
9535         there is nothing do to, otherwise emit a blockage if
9536         !TARGET_EXPLICIT_RELOCS || crtl->profile.
9537         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
9538
9539 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9540
9541         * configure.ac: Drop unneeded backslash ending up in config.in.
9542         * acinclude.m4: Likewise.
9543         * config.in: Regenerate.
9544
9545 2008-05-26  Jan Hubicka  <jh@suse.cz>
9546
9547         * predict.c (maybe_hot_frequency_p): Break out of...
9548         (maybe_hot_bb_p): ... here.
9549         (maybe_hot_edge_p): New.
9550         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
9551         * basic-block.h (maybe_hot_edge_p): Declare.
9552
9553 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
9554
9555         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
9556         (*cmpfp_<mode>_cc): Ditto.
9557         (*fp_jcc_8<mode>_387): Ditto.
9558         (*fop_<MODEF:mode>_2_i387): Ditto.
9559         (*fop_<MODEF:mode>_3_i387): Ditto.
9560         (*fop_xf_2_i387): Ditto.
9561         (*fop_xf_3_i387): Ditto.
9562
9563 2008-06-02  Tomas Bily  <tbily@suse.cz>
9564
9565         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
9566
9567 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9568
9569         * config/mips/mips.c (mips_valid_offset_p): New function.
9570         (mips_valid_lo_sum_p): Likewise.
9571         (mips_classify_address): Use them.
9572         (mips_force_address): New function.
9573         (mips_legitimize_address): Use it.
9574         * config/mips/mips.md (MOVE128): New mode iterator.
9575         (movtf): Require TARGET_64BIT.  Remove empty strings.
9576         (*movtf_internal): Rename to...
9577         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
9578         of "R" and use {,fp}{load,store} attributes instead of "multi".
9579         Use a separate define_split.
9580         (*movtf_mips16): New pattern.
9581
9582 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9583
9584         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
9585         * config/mips/mips.c (mips_expand_before_return): New function.
9586         (mips_expand_epilogue): Call it.
9587         * config/mips/mips.md (return): Turn into a define_expand.
9588         (*return): New insn.
9589
9590 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9591
9592         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
9593         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
9594         functions.  Do not emit uses and clobbers of CONCATs; individually
9595         use and clobber their operands.
9596         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
9597         gen_clobber, emit_use and gen_use.
9598         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
9599         (expand_builtin_return): Likewise.
9600         * cfgbuild.c (count_basic_blocks): Likewise.
9601         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
9602         * explow.c (emit_stack_restore): Likewise.
9603         * expmed.c (extract_bit_field_1): Likewise.
9604         * expr.c (convert_move, emit_move_complex_parts): Likewise.
9605         (emit_move_multi_word, store_constructor): Likewise.
9606         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
9607         (thread_prologue_and_epilogue_insns): Likewise.
9608         * lower-subreg.c (resolve_simple_move): Likewise.
9609         * optabs.c (widen_operand, expand_binop): Likewise.
9610         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
9611         * reload.c (find_reloads): Likewise.
9612         * reload1.c (eliminate_regs_in_insn): Likewise.
9613         * stmt.c (expand_nl_goto_receiver): Likewise.
9614         * config/alpha/alpha.md (builtin_longjmp): Likewise.
9615         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
9616         * config/arm/arm.c (arm_load_pic_register): Likewise.
9617         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
9618         * config/arm/arm.md (untyped_return): Likewise.
9619         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
9620         * config/avr/avr.c (expand_prologue): Likewise.
9621         * config/bfin/bfin.c (do_unlink): Likewise.
9622         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
9623         * config/cris/cris.c (cris_expand_prologue): Likewise.
9624         * config/darwin.c (machopic_indirect_data_reference): Likewise.
9625         (machopic_legitimize_pic_address): Likewise.
9626         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
9627         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
9628         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
9629         (ix86_expand_convert_uns_didf_sse): Likewise.
9630         (ix86_expand_vector_init_general): Likewise.
9631         * config/ia64/ia64.md (eh_epilogue): Likewise.
9632         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
9633         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
9634         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
9635         (config/iq2000/iq2000.c): Likewise.
9636         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
9637         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
9638         (builtin_longjmp): Likewise.
9639         * config/mn10300/mn10300.md (call, call_value): Likewise.
9640         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
9641         * config/pdp11/pdp11.md (abshi2): Likewise.
9642         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
9643         * config/s390/s390.c (s390_emit_prologue): Likewise.
9644         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
9645         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
9646         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
9647         * config/sh/sh.c (prepare_move_operands): Likewise.
9648         (output_stack_adjust, sh_expand_epilogue): Likewise.
9649         (sh_set_return_address, sh_expand_t_scc): Likewise.
9650         * config/sparc/sparc.c (load_pic_register): Likewise.
9651         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
9652         * config/spu/spu.c (spu_expand_epilogue): Likewise.
9653         * config/v850/v850.c (expand_epilogue): Likewise.
9654
9655 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
9656
9657         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
9658         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
9659         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
9660         * config/avr/avr.c (expand_prologue, expand_epilogue): Use
9661         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
9662         stack pointer register.
9663         (output_movhi): Remove code for interrupt specific writing to the
9664         stack pointer register.
9665
9666 2008-05-31  Richard Guenther  <rguenther@suse.de>
9667
9668         PR tree-optimization/34244
9669         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
9670         (tree_expr_nonzero_warnv_p): Likewise.
9671         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
9672         ssa_name_nonnegative_p.
9673         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
9674         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
9675         not tree_expr_nonzero_warnv_p.
9676
9677         PR tree-optimization/36262
9678         Revert
9679         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
9680
9681         PR tree-optimization/34244
9682         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
9683         (record_numbers_of_iterations): New function.
9684         (execute_vrp): Cache the numbers of iterations of loops.
9685         * tree-scalar-evolution.c (scev_reset_except_niters):
9686         New function.
9687         (scev_reset): Use scev_reset_except_niters.
9688         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
9689
9690 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
9691
9692         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
9693         __WORKAROUND_RETS when appropriate.
9694
9695 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
9696
9697         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
9698         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
9699         mode iterator.
9700         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
9701         *fop_df_comm_sse insn patterns using MODEF mode iterator.
9702         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
9703         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
9704         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
9705         *fop_df_1_mixed insn patterns using MODEF mode iterator.
9706         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
9707         *fop_df_1_sse insn patterns using MODEF mode iterator.
9708         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
9709         *fop_df_1_i387 insn patterns using MODEF mode iterator.
9710         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
9711         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
9712         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
9713         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
9714         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
9715         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
9716         (*fop_xf_4_i387): Use <MODE> for mode attribute.
9717         (*fop_xf_5_i387): Ditto.
9718         (*fop_xf_6_i387): Ditto.
9719
9720 2008-05-30  Richard Guenther  <rguenther@suse.de>
9721
9722         * builtins.c (build_string_literal): Avoid generating
9723         a non-gimple_val result.
9724
9725 2008-05-30  DJ Delorie  <dj@redhat.com>
9726
9727         * exec-tool.in: Use an environment variable (private) instead of a
9728         file (shared) as a semaphore, so as to not break parallel builds.
9729
9730 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
9731
9732         * optabs.c (maybe_encapsulate_block): Remove.
9733         (emit_libcall_block): Adjust accordingly.
9734         * optabs.h (maybe_encapsulate_block): Remove prototype.
9735
9736         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
9737         Don't use maybe_encapsulate_block.
9738
9739 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
9740
9741         * config/rs6000/rs6000.c (rs6000_legitimize_address,
9742         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
9743         rtx is a SYMBOL_REF before calling get_pool_constant.
9744
9745 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
9746
9747         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
9748
9749 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
9750
9751         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
9752         rather than OS names to choose INO_T_EQ definition.
9753         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
9754         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
9755
9756 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
9757
9758         PR target/36348
9759         * config/darwin-f.c: New.
9760         * config/t-darwin: Added rule to build darwin-f.o.
9761         * config.gcc: Defined new variable, fortran_target_objs.
9762         (*-*-darwin*): Set fortran_target_objs.
9763         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
9764         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
9765         * configure: Regenerated.
9766
9767 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
9768
9769         PR target/35771
9770         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
9771         canonical type if needed.
9772
9773 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
9774
9775         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
9776
9777 2008-05-29  Richard Guenther  <rguenther@suse.de>
9778
9779         PR tree-optimization/36343
9780         PR tree-optimization/36346
9781         PR tree-optimization/36347
9782         * tree-flow.h (clobber_what_p_points_to): Declare.
9783         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
9784         pointed-to variable is dereferenced is irrelevant to whether
9785         the pointer can access the pointed-to variable.
9786         (clobber_what_p_points_to): New function.
9787         * tree-ssa-alias.c (set_initial_properties): Use it.
9788         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
9789         call clobber check for NMTs.
9790
9791 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
9792
9793         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
9794         for printing gcov_type.
9795
9796 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
9797
9798         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
9799         and the eh region information.
9800         * value-prof.c (gimple_move_stmt_histograms): New function.
9801         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
9802
9803 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
9804
9805         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
9806
9807 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
9808
9809         * value-prof.c (tree_ic_transform): Print counts.
9810         * tree-profile.c (tree_gen_ic_func_profiler):
9811         Clear __gcov_indreict_call_callee variable to avoid misattribution
9812         of the profile.
9813
9814 2008-05-28  Rafael Espindola  <espindola@google.com>
9815
9816         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
9817         invalid sharing.
9818
9819 2008-05-28  Richard Guenther  <rguenther@suse.de>
9820
9821         PR tree-optimization/36339
9822         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
9823         and clobbering code out of the loop.
9824
9825 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
9826
9827         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
9828         letters defined.
9829
9830         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
9831         s390_contiguous_bitmask_p, s390_symref_operand_p,
9832         s390_check_symref_alignment, s390_reload_larl_operand,
9833         s390_reload_symref_address): New functions.
9834         (s390_branch_condition_mnemonic): Support compare and branch
9835         instructions.
9836         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
9837         and 'W' constraints.
9838         (s390_secondary_reload): Add secondary reloads for unaligned
9839         symbol refs or symbol refs to floating point or QI/TI mode
9840         integer values.
9841         (legitimate_address_p): Accept symbol references as addresses.
9842         (s390_expand_insv): Use rotate and insert selected bits
9843         instruction for insv when building for z10.
9844         (print_operand_address): Handle symbol ref addresses.
9845         (print_operand): Output modifier 'c' added for signed byte values.
9846         (s390_encode_section_info): Mark symbol refs with
9847         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
9848
9849         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
9850         (length attribute): RRF, RRR have 4 byte length.
9851         (FPALL, INTALL): New mode iterators added.
9852         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
9853         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
9854         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
9855         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
9856         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
9857         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
9858         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
9859         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
9860         instructions.
9861         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
9862         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
9863         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
9864         reload<INTALL:mode><P:mode>_toreg_z10,
9865         reload<FPALL:mode><P:mode>_tomem_z10,
9866         reload<FPALL:mode><P:mode>_toreg_z10,
9867         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
9868         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
9869         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
9870         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
9871         definition.
9872         (movmem, clrmem, cmpmem): New splitters added.
9873
9874         * config/s390/predicates.md (larl_operand): Use
9875         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
9876         SYMBOL_REF_ALIGN1_P.
9877         (s390_signed_integer_comparison,
9878         s390_unsigned_integer_comparison): New predicates.
9879
9880         * config/s390/s390-protos.h (s390_check_symref_alignment,
9881         s390_contiguous_bitmask_p, s390_reload_larl_operand,
9882         s390_reload_symref_address,
9883         s390_compare_and_branch_condition_mask): Prototypes added.
9884
9885         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
9886         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
9887         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
9888
9889 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
9890
9891         * config/s390/s390.c (z10_cost): New cost function for z10.
9892         (s390_handle_arch_option, override_options): Support -march=z10 switch.
9893         (s390_issue_rate): Adjust issue rate for z10.
9894         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
9895         (processor_flags): Add PF_Z10.
9896         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
9897         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
9898         * gcc/config.gcc: Add z10.
9899
9900 2008-05-28  Richard Guenther  <rguenther@suse.de>
9901
9902         PR tree-optimization/36291
9903         * tree-flow. h (struct gimple_df): Remove var_anns member.
9904         * tree-flow-inline.h (gimple_var_anns): Remove.
9905         (var_ann): Simplify.
9906         * tree-dfa.c (create_var_ann): Simplify.
9907         (remove_referenced_var): Clear alias info from var_anns of globals.
9908         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
9909         (delete_tree_ssa): Clear alias info from var_anns of globals.
9910         Do not free var_anns.
9911         (var_ann_eq): Remove.
9912         (var_ann_hash): Likewise.
9913
9914 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
9915
9916         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
9917         and loongson2f entries.
9918         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
9919         * config/mips/mips.h (processor_type): Add Loongson-2E
9920         and Loongson-2F entries.
9921         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
9922         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
9923         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
9924         * doc/invoke.texi (MIPS Options): Document loongson2e
9925         and loongson2f processor names.
9926
9927 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
9928
9929         PR target/35767
9930         PR target/35771
9931         * config/i386/i386.c (ix86_function_arg_boundary): Use
9932         alignment of canonical type.
9933         (ix86_expand_vector_move): Check unaligned memory access for
9934         all SSE modes.
9935
9936 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
9937
9938         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
9939         Moved to the front of file.
9940
9941 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
9942             H.J. Lu  <hongjiu.lu@intel.com>
9943
9944         * dwarf2out.c (current_fde): New.
9945         (add_cfi): Use it.
9946         (lookup_cfa:): Likewise.
9947         (dwarf2out_end_epilogue): Likewise.
9948         (dwarf2out_note_section_used): Likewise.
9949
9950 2008-05-27  Michael Matz  <matz@suse.de>
9951
9952         PR c++/27975
9953         * c.opt (Wenum-compare): New warning option.
9954         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
9955
9956 2008-05-27  Michael Matz  <matz@suse.de>
9957
9958         PR middle-end/36326
9959         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
9960         non-BLKmode types.
9961         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
9962         into memory as tail calls.
9963
9964 2008-05-27  Richard Guenther  <rguenther@suse.de>
9965
9966         PR tree-optimization/36339
9967         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
9968         pointers cause all addressable variables to be call clobbered.
9969
9970 2008-05-27  Richard Guenther  <rguenther@suse.de>
9971
9972         PR tree-optimization/36245
9973         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
9974
9975 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
9976
9977         * config/s390/s390.md: Replace all occurences of the 'm'
9978         constraint with 'RT'.
9979
9980 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
9981
9982         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
9983         definitions added.
9984         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
9985         "*movdi_64".
9986         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
9987         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
9988         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
9989
9990 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
9991
9992         * reload.c: (find_reloads): Skip alternatives according to the
9993         "enabled" attribute. Constify the constraint variable.
9994         * recog.c (get_attr_enabled): Add default implementation.
9995         (extract_insn): Set the alternative_enabled_p array
9996         in the recog_data struct.
9997         (preprocess_constraints, constrain_operands): Skip
9998         alternatives according to the "enabled" attribute
9999         * recog.h (struct recog_data): New field alternative_enabled_p.
10000         (skip_alternative): New inline function.
10001         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
10002         (record_reg_classes): Skip alternative according to the
10003         "enabled" attribute.
10004
10005         * doc/md.texi: Add documention for the "enabled" attribute.
10006
10007 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
10008
10009         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
10010         * postreload.c (reload_cse_simplify_operands): Replace 'm'
10011         constraint with TARGET_MEM_CONSTRAINT.
10012         * recog.c (asm_operand_ok, preprocess_constraints,
10013         constrain_operands): Likewise.
10014         * regclass.c (record_reg_classes): Likewise.
10015         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
10016         * reload1.c (maybe_fix_stack_asms): Likewise.
10017         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
10018         * recog.h: Adjust comment.
10019         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
10020         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
10021         * doc/md.texi: Add a note to description of 'm' constraint.
10022         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
10023
10024 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
10025
10026         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
10027         that the bitfield is of integral type before testing its precision.
10028
10029 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
10030             Sa Liu  <saliu@de.ibm.com>
10031
10032         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
10033         __modti3, __udivti3, __umodti3 and __udivmodti4.
10034         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
10035         that implement TImode mul and div functions.
10036         * config/spu/multi3.c: New. Implement __multi3.
10037         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
10038         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
10039         functions on SPU.
10040
10041 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
10042
10043         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
10044         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
10045         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
10046         tls_sysv_suffix): New mode and mode attribute iterators.
10047         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
10048         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
10049         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
10050         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
10051         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
10052         iterators.
10053
10054 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
10055
10056         PR tree-optimization/36329
10057         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
10058         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
10059         * cgraphbuild.c (initialize_inline_failed): Use the latter
10060         macro in lieu of the former.
10061         * ipa-inline.c (cgraph_mark_inline): Likewise.
10062         (cgraph_decide_inlining_of_small_function): Likewise.
10063         (cgraph_decide_inlining): Likewise.
10064         (cgraph_decide_inlining_incrementally): Likewise.
10065
10066 2008-05-26  Tristan Gingold  <gingold@adacore.com>
10067             Anatoly Sokolov  <aesok@post.ru>
10068
10069         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
10070         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
10071         * config/avr/avr.c (expand_prologue): Tune "call_prologue"
10072         optimization for 'avr6' architecture.
10073
10074 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
10075
10076         PR target/34932
10077         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
10078
10079 2008-05-26  Richard Guenther  <rguenther@suse.de>
10080
10081         * tree-ssa-sccvn.c (expr_has_constants): Declare.
10082         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
10083
10084 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
10085
10086         PR middle-end/36253
10087         * caller-save.c (insert_restore): Verify alignment of spill space.
10088         (insert_save): Likewise.
10089         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
10090         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
10091         (STACK_SLOT_ALIGNMENT): Likewise.
10092         * function.c (LOCAL_ALIGNMENT): Removed.
10093         (get_stack_local_alignment): New.
10094         (assign_stack_local): Use it.  Set alignment on stack slot.
10095         (assign_stack_temp_for_type): Use get_stack_local_alignment.
10096         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
10097         (STACK_SLOT_ALIGNMENT): New.
10098         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
10099         stack slot in XFmode.
10100
10101         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
10102
10103 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
10104
10105         PR/36321
10106         * config/i386/i386.md (allocate_stack_worker_64): Make sure
10107         argument operand in rax isn't removed.
10108
10109 2008-05-26  Richard Guenther  <rguenther@suse.de>
10110
10111         PR middle-end/36300
10112         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
10113         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
10114
10115 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
10116
10117         PR bootstrap/36331
10118         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
10119
10120 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
10121
10122         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
10123         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
10124
10125 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
10126
10127         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
10128         build a trampoline if we don't want one.
10129         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
10130         return zero for nested functions if we don't want a trampoline.
10131
10132 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
10133
10134         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
10135
10136 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
10137
10138         PR fortran/18428
10139         * c.opt: Removed undocumented option '-lang-fortran'.
10140         * c-common.h: Removed global variable 'lang_fortran'.
10141         * c-opts.c (c_common_handle_option): Removed code to handle
10142         option '-lang-fortran'. Updated includes.
10143         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
10144         definition of '__GFORTRAN__'.
10145         (define__GNUC__): Reimplemented to use BASEVER and
10146         cpp_define_formatted.
10147         (builtin_define_with_value_n): Removed.
10148         * c-incpath.h: Renamed to ...
10149         * incpath.h: ... this.
10150         * c-incpath.c: Renamed to ...
10151         * incpath.c: ... this. Updated includes.
10152         * fix-header.c: Updated includes.
10153         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
10154         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
10155         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
10156
10157 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
10158
10159         * tree.h: Update the table of flags used on tree nodes.
10160         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
10161         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
10162         (FORCED_LABEL): Add access check.
10163         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
10164         (ASM_INPUT_P): Likewise.
10165         (ASM_VOLATILE_P): Likewise.
10166         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
10167         (OMP_SECTION_LAST): Access private_flag directly.
10168         (OMP_RETURN_NOWAIT): Likewise.
10169         (OMP_PARALLEL_COMBINED): Likewise.
10170         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
10171         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
10172         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
10173         deprecated_flag directly.
10174
10175 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
10176
10177         * final.c (frame_pointer_needed): Removed.
10178         * flags.h (frame_pointer_needed): Likewise.
10179
10180         * function.h (rtl_data): Add frame_pointer_needed.
10181         (frame_pointer_needed): New.
10182
10183 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
10184
10185         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
10186
10187 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
10188
10189         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
10190         SRC is a REG.
10191
10192 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
10193
10194         * c-common.c (strip_array_types): Move function to..
10195         * tree.c: ..here.
10196         (get_inner_array_type): Delete.
10197         * c-common.h (strip_array_types): Move declaration to..
10198         * tree.h: ..here.
10199         (get_inner_array_type): Delete.
10200         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
10201         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
10202         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
10203         * config/pa/pa.c (emit_move_sequence): Likewise.
10204
10205 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
10206
10207         * config/i386/i386.md (*sse_prologue_save_insn): Set length
10208         attribute to 34.
10209
10210 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
10211
10212         * function.c: Include target hook for nonlocal_goto frame value.
10213
10214 2008-05-24  Richard Guenther  <rguenther@suse.de>
10215
10216         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
10217         variable can be only accessed through a pointer or a union.
10218
10219 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10220
10221         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
10222         * doc/extend.texi: Likewise.
10223
10224 2008-05-23  DJ Delorie  <dj@redhat.com>
10225
10226         * config/m32c/jump.md (untyped_call): Add.
10227
10228         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
10229         for A24 to PSImode.
10230         (m32c_address_cost): Detail costs for indirect offsets.
10231
10232 2008-05-23  Rafael Espindola  <espindola@google.com>
10233
10234         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
10235         if a node is a SUBREG.
10236         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
10237         is a SUBREG.
10238
10239 2008-05-23  Paul Brook  <paul@codesourcery.com>
10240             Carlos O'Donell  <carlos@codesourcery.com>
10241
10242         * doc/extend.texi: Clarify use of __attribute__((naked)).
10243         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
10244         * target.h (gcc_target): Add allocate_stack_slots_for_args.
10245         * function.c (use_register_for_decl): Use
10246         targetm.calls.allocate_stack_slots_for_args.
10247         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
10248         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
10249         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
10250
10251 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
10252
10253         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
10254
10255 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
10256
10257         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
10258         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
10259         is only rounded once.
10260
10261 2008-05-23  Richard Guenther  <rguenther@suse.de>
10262
10263         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
10264
10265 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
10266             Jakub Jelinek  <jakub@redhat.com>
10267
10268         PR target/36079
10269         * configure.ac: Handle --enable-cld.
10270         * configure: Regenerated.
10271         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
10272         * config/i386/i386.h (struct machine_function): Add needs_cld field.
10273         (ix86_current_function_needs_cld): New define.
10274         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
10275         (cld): New isns pattern.
10276         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
10277         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
10278         * config/i386/i386.opt (mcld): New option.
10279         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
10280         TARGET_CLD and ix86_current_function_needs_cld.
10281         (override_options): Use -mcld by default for 32-bit code if
10282         USE_IX86_CLD.
10283
10284         * doc/install.texi (Options specification): Document --enable-cld.
10285         * doc/invoke.texi (Machine Dependent Options)
10286         [i386 and x86-64 Options]: Add -mcld option.
10287         (Intel 386 and AMD x86-64 Options): Document -mcld option.
10288
10289 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
10290         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
10291         (return_in_memory_64): Likewise.
10292         (return_in_memory_ms_64): Likewise.
10293
10294 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10295
10296         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
10297         * builtins.c (fold_builtin_fpclassify): New.
10298         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
10299         * builtins.def (BUILT_IN_FPCLASSIFY): New.
10300         * c-common.c (handle_type_generic_attribute): Adjust to accept
10301         fixed arguments before an elipsis.
10302         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
10303         * doc/extend.texi: Document __builtin_fpclassify.
10304
10305 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
10306
10307         * omp-low.c (gate_expand_omp_ssa): Remove.
10308         (pass_expand_omp_ssa): Remove.
10309         (gate_expand_omp): Do not check for flag_openmp_ssa.
10310         * common.opt (-fopenmp-ssa): Remove.
10311         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
10312
10313 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
10314
10315         * config/sh/sh.opt (mfixed-range): New option.
10316         * config/sh/sh-protos.h (sh_fix_range): Declare.
10317         * config/sh/sh.c (sh_fix_range): New function.
10318         * config/sh/sh.h (sh_fixed_range_str): Declare.
10319         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
10320         is not empty.
10321         * doc/invoke.texi (SH Options): Document -mfixed-range.
10322
10323 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
10324
10325         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
10326         it before the redeclaration.
10327
10328 2008-05-22  Anatoly Sokolov <aesok@post.ru>
10329
10330         * config/avr/avr.c (get_sequence_length): Add new function.
10331         (expand_prologue, expand_epilogue): Remove duplicate code.
10332
10333 2008-05-22  Rafael Espindola  <espindola@google.com>
10334
10335         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
10336         sharing.
10337
10338 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
10339
10340         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
10341         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
10342
10343         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
10344         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
10345         (vect_update_misalignment_for_peel): Likewise.
10346         (vector_alignment_reachable_p): Likewise.
10347         * tree-vect-transform.c (vectorizable_load): Likewise.
10348         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
10349         (get_vectype_for_scalar_type): Pass mode of scalar_type
10350         to UNITS_PER_SIMD_WORD.
10351
10352         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
10353         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
10354         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
10355         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
10356         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
10357
10358 2008-05-22  Ira Rosen  <irar@il.ibm.com>
10359
10360         PR tree-optimization/36293
10361         * tree-vect-transform.c (vect_transform_strided_load): Don't check
10362         if the first load must be skipped because of a gap.
10363
10364 2008-05-22  Richard Guenther  <rguenther@suse.de>
10365
10366         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
10367         more cases of offset disambiguation that is possible if
10368         strict-aliasing rules apply.
10369         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
10370         for basic offset and type-based disambiguation.
10371
10372 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10373
10374         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
10375         ix86_expand_vector_set on V16QImode for SSE4.1.
10376
10377 2008-05-21  Tom Tromey  <tromey@redhat.com>
10378
10379         * c.opt (Wimport): Mark as undocumented.
10380         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
10381         -Wno-import.
10382         (Warning Options): Likewise.
10383         * doc/cppopts.texi: Don't mention -Wimport.
10384
10385 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
10386
10387         PR tree-optimization/36287
10388         PR tree-optimization/36286
10389         * lambda-code.c (build_access_matrix): Do not use the loop->num
10390         for computing the number of induction variables: use the loop depth
10391         instead.
10392
10393 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
10394
10395         PR/36280
10396         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
10397         option -f(no-)leading-underscore.
10398
10399 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10400
10401         * config/i386/i386.c (ix86_expand_vector_init_general): Use
10402         GET_MODE_NUNITS (mode).
10403
10404 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
10405
10406         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
10407         (-mmulhw): Add 464 to description.
10408         (-mdlmzb): Likewise.
10409         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
10410         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
10411         464fp entries.
10412         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
10413         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
10414         * config/rs6000/rs6000.md: Update comments for 464.
10415
10416 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
10417
10418         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
10419
10420 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10421
10422         * config/i386/sse.md (vec_extractv4sf): Removed.
10423         (vec_extractv2df): Likewise.
10424         (vec_extractv2di): Likewise.
10425         (vec_extractv4si): Likewise.
10426         (vec_extractv8hi): Likewise.
10427         (vec_extractv16qi): Likewise.
10428         (vec_extract<mode>): New.
10429
10430 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10431
10432         * config/i386/sse.md (vec_setv4sf): Removed.
10433         (vec_setv2df): Likewise.
10434         (vec_setv2di): Likewise.
10435         (vec_setv4si): Likewise.
10436         (vec_setv8hi): Likewise.
10437         (vec_setv16qi): Likewise.
10438         (vec_set<mode>): New.
10439
10440 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10441
10442         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
10443         goto for vec_concat and vec_interleave.
10444
10445 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10446
10447         * config/i386/sse.md (vec_initv4sf): Removed.
10448         (vec_initv2df): Likewise.
10449         (vec_initv2di): Likewise.
10450         (vec_initv4si): Likewise.
10451         (vec_initv8hi): Likewise.
10452         (vec_initv16qi): Likewise.
10453         (vec_init<mode>): New.
10454
10455 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
10456
10457         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
10458
10459 2008-05-21  Tom Tromey  <tromey@redhat.com>
10460
10461         * ggc-zone.c (lookup_page_table_if_allocated): New function.
10462         (zone_find_object_offset): Likewise.
10463         (gt_ggc_m_S): Likewise.
10464         (highest_bit): Likewise.
10465         * ggc-page.c (gt_ggc_m_S): New function.
10466         * stringpool.c (string_stack): Remove.
10467         (init_stringpool): Update.
10468         (ggc_alloc_string): Use ggc_alloc.
10469         (maybe_delete_ident): New function.
10470         (ggc_purge_stringpool): Likewise.
10471         (gt_ggc_m_S): Remove.
10472         * ggc-common.c (ggc_protect_identifiers): New global.
10473         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
10474         ggc_protect_identifiers.
10475         * ggc.h (ggc_protect_identifiers): Declare.
10476         (gt_ggc_m_S): Update.
10477         (ggc_purge_stringpool): Declare.
10478         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
10479         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
10480         special case.
10481         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
10482
10483 2008-05-21  David S. Miller  <davem@davemloft.net>
10484
10485         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
10486         tmake_file.
10487
10488 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
10489
10490         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
10491         once finished.
10492
10493 2008-05-20  David Daney  <ddaney@avtrex.com>
10494
10495         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
10496         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
10497         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
10498         UNSPEC_UPDATE_GOT_VERSION): Renumber.
10499         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
10500         (atomic_hiqi_op): New define_code_iterator.
10501         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
10502         mips_expand_compare_and_swap_12.
10503         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
10504         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
10505         (sync_<optab><mode>, sync_old_<optab><mode>,
10506         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
10507         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
10508         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
10509         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
10510         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
10511         (test_and_set_12): New insn.
10512         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
10513         sync_new_<optab><mode>, sync_old_nand<mode>,
10514         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
10515         clobber to operand 0 for SI and DI mode insns.
10516         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
10517         mips_gen_fn_4): New typedefs.
10518         (mips_gen_fn_ptrs): Define new union type.
10519         (mips_expand_compare_and_swap_12): Remove declaration.
10520         (mips_expand_atomic_qihi): Declare function.
10521         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
10522         (mips_expand_atomic_qihi): ... this.  Use new generator function
10523         parameter.
10524         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
10525         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
10526         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
10527         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
10528         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
10529         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
10530         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
10531         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
10532         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
10533         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
10534         New macros.
10535
10536 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
10537
10538         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
10539         the missing break.
10540
10541 2008-05-20  Anatoly Sokolov <aesok@post.ru>
10542
10543         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
10544         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
10545         (avr_attribute_table): Add 'OS_main' function attribute.
10546         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
10547         functions with 'OS_main' attribute.
10548
10549 2008-05-20  Richard Guenther  <rguenther@suse.de>
10550
10551         PR tree-optimization/35204
10552         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
10553         helper, split out from ...
10554         (DFS): ... here.  Make the DFS walk non-recursive.
10555
10556 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
10557             Jan Sjodin  <jan.sjodin@amd.com>
10558
10559         PR tree-optimization/36181
10560         * tree-parloops.c (loop_has_vector_phi_nodes): New.
10561         (parallelize_loops): Don't parallelize when the loop has vector
10562         phi nodes.
10563
10564 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
10565             Sebastian Pop  <sebastian.pop@amd.com>
10566
10567         * tree-loop-linear.c (gather_interchange_stats): Look in the access
10568         matrix, and never look at the tree representation of the memory
10569         accesses.
10570         (linear_transform_loops): Computes parameters and access matrices.
10571         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
10572         when fails.
10573         (access_matrix_get_index_for_parameter): New.
10574         * tree-data-ref.h (struct access_matrix): New.
10575         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
10576         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
10577         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
10578         am_vector_index_for_loop): New.
10579         (struct data_reference): Add field access_matrix.
10580         (DR_ACCESS_MATRIX): New.
10581         (compute_data_dependences_for_loop): Update declaration.
10582         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
10583         * lambda.h (lambda_vector_vec_p): Declared.
10584         * lambda-code.c: Depend on pointer-set.h.
10585         (lambda_collect_parameters_from_af, lambda_collect_parameters,
10586         av_for_af_base, av_for_af, build_access_matrix,
10587         lambda_compute_access_matrices): New.
10588         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
10589
10590 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
10591
10592         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
10593         $SOURCEDIR/include.
10594
10595 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
10596             Sebastian Pop  <sebastian.pop@amd.com>
10597
10598         PR tree-optimization/36206
10599         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
10600         FOLD_CONVERSIONS.
10601         (instantiate_scev_1): Rename flags to fold_conversions.
10602         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
10603         outeside instantiation_loop.
10604         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
10605         (evolution_function_is_affine_or_constant_p): Removed.
10606         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
10607         instantiate_scev.
10608         (analyze_siv_subscript): Pass in the loop nest number.
10609         Call evolution_function_is_affine_in_loop instead of
10610         evolution_function_is_affine_p.
10611         (analyze_overlapping_iterations): Pass in the loop nest number.
10612
10613 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
10614             Sebastian Pop  <sebastian.pop@amd.com>
10615
10616         PR tree-optimization/36206
10617         * tree-chrec.h (chrec_fold_op): New.
10618         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
10619         and other trees.
10620
10621 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
10622
10623         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
10624         (DIRS_EQ): New.
10625         (remove_duplicates): Do not set inode on non-inode systems.
10626         Use DIRS_EQ.
10627
10628 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
10629
10630         * config.gcc (tm_file): Update comments about relative pathnames.
10631
10632 2008-05-20  Richard Guenther  <rguenther@suse.de>
10633
10634         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
10635         * tree-ssa-sccvn.c (process_scc): Likewise.
10636         * tree-ssa-sink.c (execute_sink_code): Likewise.
10637         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
10638         * tree-vrp.c (process_assert_insertions): Likewise.
10639         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
10640         (perform_tree_ssa_dce): Likewise.
10641         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
10642         (dump_dominator_optimization_stats): Likewise.
10643         * tree-vectorizer.c (vectorize_loops): Likewise.
10644
10645 2008-05-20  Richard Guenther  <rguenther@suse.de>
10646
10647         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
10648
10649 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
10650
10651         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
10652         (ix86_i386elf_return_in_memory): Likewise.
10653         (ix86_i386interix_return_in_memory): Likewise.
10654         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
10655         (SUBTARGET_RETURN_IN_MEMORY): New.
10656         * config/i386/i386elf.h: Likewise.
10657         * config/i386/ptx4-i.h: Likewise.
10658         * config/i386/sol2-10.h: Likewise.
10659         * config/i386/sysv4.h: Likewise.
10660         * config/i386/vx-common.h: Likewise.
10661         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
10662         * config/i386/i386.c (ix86_return_in_memory): Made static and
10663         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
10664         (ix86_i386elf_return_in_memory): Removed.
10665         (ix86_i386interix_return_in_memory): Removed.
10666         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
10667         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
10668
10669 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
10670
10671         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
10672
10673 2008-05-19  Xinliang David Li  <davidxl@google.com>
10674
10675         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
10676         * opts.c: Ditto.
10677         * common.opt: Ditto.
10678         * doc/invoke.texi: Ditto.
10679
10680 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
10681
10682         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
10683         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
10684
10685 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
10686
10687         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
10688         sizes of operand array from 8/4 to 4/2.
10689         (ix86_expand_vector_init_general): Change size of operand array
10690         from 32 to 16.  Remove op0, op1 and half_mode.
10691
10692 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
10693
10694         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
10695         (ix86_expand_vector_init_interleave): Likewise.
10696         (ix86_expand_vector_init_general): Use them.  Assert
10697         word_mode == SImode when n_words == 4.
10698
10699 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
10700
10701         * config/i386/i386.c (ix86_secondary_reload): New static function.
10702         (TARGET_SECONDARY_RELOAD): New define.
10703         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
10704         * config/i386/i386.md (reload_outqi): Remove.
10705
10706 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10707
10708         PR middle-end/35509
10709         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
10710         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
10711         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
10712         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
10713         (fold_builtin_1): Likewise.
10714         * builtins.def (BUILT_IN_ISINF_SIGN): New.
10715         c-common.c (check_builtin_function_arguments): Handle
10716         BUILT_IN_ISINF_SIGN.
10717         * doc/extend.texi: Document __builtin_isinf_sign.
10718         * fold-const.c (operand_equal_p): Handle COND_EXPR.
10719
10720 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
10721
10722         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
10723         EH cleanup at the end of the pass, search for those that have been
10724         turned into forwarder blocks and do the cleanup on their successor.
10725
10726 2008-05-18  Richard Guenther  <rguenther@suse.de>
10727
10728         * tree-cfg.c (verify_gimple_expr): Allow conversions from
10729         pointers to sizetype and vice versa.
10730
10731 2008-05-18 Xinliang David Li   <davidxl@google.com>
10732
10733         * gcc/tree-ssa-dce.c: Coding style fix.
10734         (check_pow): Documentation comment.
10735         (check_log): Documenation comment. Coding style fix.
10736         (is_unnecessary_except_errno_call): Ditto.
10737         (gen_conditions_for_pow): Ditto.
10738         (gen_conditions_for_log): Ditto.
10739         (gen_shrink_wrap_conditions): Ditto.
10740         (shrink_wrap_one_built_in_calls): Ditto.
10741         * gcc/doc/invoke.texi: Better documentation string.
10742         * ChangeLog: Fix wrong change log entries from
10743         May 17 checkin on function call DCE.
10744
10745 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
10746
10747         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
10748
10749 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
10750
10751         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
10752         * df-problems.c (simulation routines): Fixed block comment to
10753         properly say how to add forwards scanning functions.
10754
10755 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
10756
10757         * tree-inline.c (setup_one_parameter): Remove dead code.
10758
10759 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
10760
10761         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
10762         a BIT_AND_EXPR only for an INTEGER_TYPE.
10763
10764 2008-05-17 Xinliang David Li   <davidxl@google.com>
10765
10766         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
10767         (check_pow, check_log, is_unnecessary_except_errno_call): New
10768         functions to check for eliminating math functions that are pure
10769         except for setting errno.
10770         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
10771         general condition expressions for shrink-wrapping pow/log calls.
10772         (gen_shrink_wrap_conditions): Ditto.
10773         (shrink_wrap_one_built_in_call): Ditto.
10774         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
10775         (mark_operand_necessary): If debugging, output if OP is necessary.
10776         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
10777         unnecessary.
10778         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
10779         opt level >= 2.
10780         * gcc/common.opt: New user flag -ftree-builtin-dce.
10781         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
10782
10783 2008-05-16  David S. Miller  <davem@davemloft.net>
10784
10785         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
10786         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
10787
10788 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
10789
10790         PR target/36246
10791         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
10792
10793 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10794
10795         * ifcvt.c (dead_or_predicable): Rename
10796         df_simulate_one_insn_backwards to df_simulate_one_insn.
10797         * recog.c (peephole2_optimize): Ditto.
10798         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
10799         Ditto.
10800         * df.h: Rename df_simulate_one_insn_backwards to
10801         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
10802         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
10803         scanning of defs and uses.
10804         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
10805         (df_simulate_one_insn_forwards): Removed.
10806
10807 2008-05-16  Doug Kwan  <dougkwan@google.com>
10808
10809         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
10810         QNaN & SNaN.
10811         (real_from_string): Handle NaNs and Inf as approriate.
10812
10813 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
10814
10815         * doc/gty.texi (Source Files Containing Type Information): Note
10816         that headers should appear first in the gtfiles list.
10817
10818 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10819
10820         * tree.def (COND_EXEC): Properly documented this code.
10821
10822 2008-05-16  Diego Novillo  <dnovillo@google.com>
10823
10824         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
10825         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
10826         the new field.
10827
10828 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10829
10830         * tree-ssa-dse (max_stmt_uid): Removed.
10831         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
10832         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
10833         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
10834         * function.h (cfun.last_stmt_uid): New field.
10835         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
10836         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
10837         New functions.
10838         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
10839         (create_stmt_ann): Initialize the ann->uid field.
10840         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
10841         with new calls.
10842         * tree-flow.h (renumber_gimple_stmt_uids): New function.
10843
10844 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
10845
10846         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
10847         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
10848         (init_empty_tree_cfg): Call it.
10849
10850 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10851
10852         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
10853         Update all users.
10854
10855 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10856
10857         * doc/invoke.text (-fdump-tree-*-verbose): New option.
10858         * tree-dump.c (dump_options): New verbose option.
10859         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
10860         Add verbose dump.
10861         * tree-pass.h (TDF_VERBOSE): New dump flag.
10862         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
10863         (tree-flow.h): Added include.
10864         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
10865
10866 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
10867
10868         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
10869
10870         From Jie Zhang  <jie.zhang@analog.com>
10871         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10872         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
10873         mcpu=bf561-none and mcpu=bf561-0.2.
10874         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10875         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
10876         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10877         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
10878         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
10879         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
10880         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
10881         option.
10882         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
10883         (cputype_selected): Remove.
10884         (bfin_handle_option): Don't use cputype_selected.
10885         (override_options): When no mcpu option, enable all workarounds.
10886         Don't use bfin_workarounds.
10887         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
10888         processor type.
10889         (DEFAULT_CPU_TYPE): Don't define.
10890
10891 2008-05-16  Richard Guenther  <rguenther@suse.de>
10892
10893         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
10894         on deletion of the last stmt.
10895
10896 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
10897
10898         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
10899         V8HImode for SSE2 and V16QImode for SSE4.1.
10900
10901 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
10902
10903         * cgraph.h (compute_inline_parameters): Made public.
10904         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
10905         variable_generate_summary, function_write_summary,
10906         variable_write_summary, variable_read_summary.  Added generate_summary,
10907         write_summary, read_summary.
10908         * cgraphunit.c (cgraph_process_new_functions): Changed call from
10909         pass_ipa_inline.function_generate_summary, to
10910         compute_inline_parameters.
10911         * ipa-inline.c (compute_inline_parameters): Made public and added
10912         node parameter.
10913         (compute_inline_parameters_for_current): New function.
10914         (pass_inline_param): Now calls compute_inline_parameters_for_current.
10915         (inline_generate_summary): Removed parameter and made to loop over
10916         all cgraph nodes.
10917         (pass_ipa_inline): Updated for new IPA_PASS structure.
10918         * passes.c (execute_ipa_summary_passes): Now is called once per
10919         pass rather than once per node*pass.
10920
10921 2008-05-15  Anatoly Sokolov <aesok@post.ru>
10922
10923         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
10924         avr_have_mul_p, avr_asm_only_p): Remove variables.
10925         (avr_override_options): Remove initialization of removed variables.
10926         (avr_file_start):  Convert removed variables to fields of
10927         'struct base_arch_s *avr_current_arch'.
10928         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
10929         (AVR_HAVE_MUL): (Ditto.).
10930         (AVR_HAVE_MOVW): (Ditto.).
10931         (AVR_HAVE_LPMX): (Ditto.).
10932         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
10933         avr_asm_only_p): Remove declaration.
10934
10935 2008-05-15  Diego Novillo  <dnovillo@google.com>
10936
10937         * config/arm/arm.c (arm_return_in_memory): Fix return type.
10938         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
10939
10940 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
10941
10942         PR middle-end/36194
10943         * combine.c (check_conversion): Rename back to check_promoted_subreg.
10944         Don't call record_truncated_value from here.
10945         (record_truncated_value): Turn it into a for_each_rtx callback.
10946         (record_truncated_values): New function.
10947         (combine_instructions): Call note_uses with record_truncated_values.
10948         Change name of check_conversion to check_promoted_subreg.
10949
10950 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
10951
10952         * doc/sourcebuild.texi: Document support for torture tests.
10953
10954 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
10955
10956         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
10957         to alternative 4 of operand 2.
10958
10959 2008-05-15  Richard Guenther  <rguenther@suse.de>
10960
10961         * tree-pass.h (current_pass): Declare.
10962         (get_pass_for_id): Likewise.
10963         * passes.c (passes_by_id, passes_by_id_size): New globals.
10964         (set_pass_for_id): New function.
10965         (get_pass_for_id): Likewise.
10966         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
10967         (execute_function_todo): Flush per function statistics.
10968         * toplev.c (compile_file): Init statistics.
10969         (general_init): Do early statistics initialization.
10970         (finalize): Finish statistics.
10971         * statistics.h (statistics_early_init): Declare.
10972         (statistics_init): Likewise.
10973         (statistics_fini): Likewise.
10974         (statistics_fini_pass): Likewise.
10975         (statistics_counter_event): Likewise.
10976         (statistics_histogram_event): Likewise.
10977         * statistics.c: New file.
10978         * Makefile.in (OBJS-common): Add statistics.o.
10979         (statistics.o): Add dependencies.
10980         * doc/invoke.texi (-fdump-statistics): Document.
10981
10982         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
10983         (insert): Likewise.
10984         (execute_pre): Use statistics_counter_event.
10985         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
10986         (substitute_and_fold): Increment it.  Use statistics_counter_event.
10987
10988 2008-05-15  Diego Novillo  <dnovillo@google.com>
10989
10990         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
10991
10992         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
10993         * tree-ssa-alias.c (new_type_alias): Remove references to
10994         sub-variables from comment.
10995         * tree-ssa-operands.c (swap_tree_operands): Likewise.
10996
10997 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
10998
10999         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
11000         attribute to 1 only for insertps alternative.
11001
11002 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
11003
11004         * config/bfin/bfin.md (loadbytes): New pattern.
11005         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
11006         (bfin_init_builtins): Initialize it.
11007         (bdesc_1arg): Add it.
11008
11009 2008-05-15  Sa Liu  <saliu@de.ibm.com>
11010
11011         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
11012         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
11013         * testsuite/lib/target-supports.exp: Add
11014         check_effective_target_fortran_integer_16.
11015
11016 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
11017
11018         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
11019         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
11020         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
11021         (TARGET_RETURN_IN_MEMORY): Define.
11022
11023 2008-05-15  Richard Guenther  <rguenther@suse.de>
11024
11025         PR middle-end/36244
11026         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
11027         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
11028         represent unmodifiable vars.
11029
11030 2008-05-15  Richard Guenther  <rguenther@suse.de>
11031
11032         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
11033         INDIRECT_REF and TARGET_MEM_REF.
11034         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
11035         TARGET_MEM_REF.
11036
11037 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
11038             H.J. Lu  <hongjiu.lu@intel.com>
11039
11040         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
11041         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
11042         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
11043         insn alternatives.  Add missing alternatives.
11044         (*vec_concatv2di_rex64_sse4_1): Likewise.
11045         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
11046         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
11047         Require TARGET_SSE.
11048
11049 2008-05-15  Richard Guenther  <rguenther@suse.de>
11050
11051         PR tree-optimization/36009
11052         PR tree-optimization/36204
11053         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
11054         (determine_invariantness_stmt): Record the loop a store is
11055         always executed in.
11056         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
11057         dependency.
11058
11059 2008-05-15  Richard Guenther  <rguenther@suse.de>
11060
11061         PR tree-optimization/34330
11062         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
11063         through the pointer will alias the SMT.
11064
11065 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
11066
11067         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
11068
11069 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
11070
11071         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
11072
11073 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
11074             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
11075
11076         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
11077         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
11078         (vashl_optab): New optab for vector/vector shifts.
11079         (vashr_optab): Ditto.
11080         (vlshr_optab): Ditto.
11081         (vrotl_optab): Ditto.
11082         (vrotr_optab): Ditto.
11083         (optab_subtype): New enum for optab_for_tree_code call.
11084         (optab_for_tree_code): Add enum optab_subtype argument.
11085
11086         * optabs.c (optab_for_tree_code): Take an additional argument to
11087         distinguish between a vector shift by a scalar and vector shift by
11088         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
11089         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
11090         vector shift by a vector.
11091         (expand_widen_pattern_expr): Pass additional argument to
11092         optab_for_tree_code.
11093
11094         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
11095         vrotl_optab, vrotr_optab.
11096
11097         * expr.c (expand_expr_real_1): Update calls to
11098         optab_for_tree_code to distinguish between vector shifted by a
11099         scalar and vector shifted by a vector.
11100         * tree-vectorizer.c (supportable_widening_operation): Ditto.
11101         (supportable_narrowing_operation): Ditto.
11102         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
11103         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
11104         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
11105         (vect_create_epilog_for_reduction): Ditto.
11106         (vectorizable_reduction): Ditto.
11107         (vectorizable_operation): Ditto.
11108         (vect_strided_store_supported): Ditto.
11109         (vect_strided_load_supported): Ditto.
11110         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
11111         * expmed.c (expand_shift): Ditto.
11112
11113         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
11114         scalar type.
11115         (ashr@var{m}3): Ditto.
11116         (vashl@var{m}3): Document new vector/vector shift standard name.
11117         (vashr@var{m}3): Ditto.
11118         (vlshr@var{m}3): Ditto.
11119         (vrotl@var{m}3): Ditto.
11120         (vrotr@var{m}3): Ditto.
11121
11122         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
11123         (PPERM_INVERT): Ditto.
11124         (PPERM_REVERSE): Ditto.
11125         (PPERM_REV_INV): Ditto.
11126         (PPERM_ZERO): Ditto.
11127         (PPERM_ONES): Ditto.
11128         (PPERM_SIGN): Ditto.
11129         (PPERM_INV_SIGN): Ditto.
11130         (PPERM_SRC1): Ditto.
11131         (PPERM_SRC2): Ditto.
11132
11133         * config/i386/sse.md (mulv2di3): Add SSE5 support.
11134         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
11135         allows a memory operand to be the value being added, and split it
11136         to improve vectorization.
11137         (sse5_pmacsdqh_mem): Ditto.
11138         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
11139         (sse5_mulv2div2di3_high): Ditto.
11140         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
11141         (vec_pack_trunc_v4si): Ditto.
11142         (vec_pack_trunc_v2di): Ditto.
11143         (sse5_pcmov_<mode>): Remove code that tried to use use
11144         andps/andnps instead of pcmov.
11145         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
11146         pmacsdqh instructions.
11147         (vec_widen_smult_lo_v4si): Ditto.
11148
11149         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
11150         (PPERM_INVERT): Ditto.
11151         (PPERM_REVERSE): Ditto.
11152         (PPERM_REV_INV): Ditto.
11153         (PPERM_ZERO): Ditto.
11154         (PPERM_ONES): Ditto.
11155         (PPERM_SIGN): Ditto.
11156         (PPERM_INV_SIGN): Ditto.
11157         (PPERM_SRC1): Ditto.
11158         (PPERM_SRC2): Ditto.
11159         (ix86_expand_sse_movcc): Move the SSE5 test after the if
11160         true/false tests.
11161         (ix86_expand_int_vcond): If SSE5 generate all possible integer
11162         comparisons.
11163         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
11164         says ignore whether the last reference is a memory operand.
11165
11166 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
11167             Paolo Bonzini <bonzini at gnu dot org>
11168
11169         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
11170         shift patterns.
11171
11172         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
11173         (vlshr<mode>3): Rename from vlshr<mode>3.
11174         (vashr<mode>3): Rename from vashr<mode>3.
11175         (mulv4sf3): Change the names of vector shift patterns.
11176         (mulv4si3): Ditto.
11177         (negv4sf2): Ditt.
11178
11179         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
11180         shift insns.
11181
11182         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
11183         (SI_SHLHI): Ditto.
11184         (SI_SHL): Ditto.
11185         (SI_SHLI): Ditto.
11186         (SI_ROTH): Ditto.
11187         (SI_ROTHI): Ditto.
11188         (SI_ROT): Ditto.
11189         (SI_ROTI): Ditto.
11190         (SPU_RL_0): Ditto.
11191         (SPU_RL_1): Ditto.
11192         (SPU_RL_2): Ditto.
11193         (SPU_RL_3): Ditto.
11194         (SPU_RL_4): Ditto.
11195         (SPU_RL_5): Ditto.
11196         (SPU_RL_6): Ditto.
11197         (SPU_RL_7): Ditto.
11198         (SPU_SL_0): Ditto.
11199         (SPU_SL_1): Ditto.
11200         (SPU_SL_2): Ditto.
11201         (SPU_SL_3): Ditto.
11202         (SPU_SL_4): Ditto.
11203         (SPU_SL_5): Ditto.
11204         (SPU_SL_6): Ditto.
11205         (SPU_SL_7): Ditto.
11206
11207         * config/spu/spu.md (v): New iterator macro to add v for vector types.
11208         (floatunssidf2_internal): Change vector/vector shift names.
11209         (floatunsdidf2_internal): Ditto.
11210         (mulv8hi3): Ditto.
11211         (ashrdi3): Ditto.
11212         (ashrti3): Ditto.
11213         (cgt_df): Ditto.
11214         (cgt_v2df): Ditto.
11215         (dftsv): Ditto.
11216         (vashl<mode>3): Rename from ashl<mode>3.
11217         (vashr<mode>3): Rename from ashr<mode>3.
11218         (vlshr<mode>3): Rename from lshr<mode>3.
11219         (vrotl<mode>3): Rename from rotl<mode>3.
11220
11221 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
11222
11223         PR target/36224
11224         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
11225         multiply gives the wrong value when doing widening multiplies.
11226         (vec_widen_smult_lo_v4si): Ditto.
11227
11228 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
11229
11230         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
11231         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
11232         emit_library_call_value.
11233         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
11234         * tree.h (ECF_LIBCALL_BLOCK): Removed.
11235         * calls.c (initialize_argument_information, precompute_arguments,
11236         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
11237         (precompute_arguments): Removed flags parameter.
11238         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
11239
11240 2008-05-14  Richard Guenther  <rguenther@suse.de>
11241
11242         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
11243         Make sure to register the store if the use is a PHI_NODE.
11244
11245 2008-05-14  Olivier Hainque  <hainque@adacore.com>
11246
11247         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
11248         memory if the component is to be referenced in BLKmode according
11249         to get_inner_reference.
11250
11251 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
11252
11253         * calls.c (emit_library_call_value_1): Restore code clearing
11254         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
11255
11256 2008-05-14  Olivier Hainque  <hainque@adacore.com>
11257             Nicolas Roche  <roche@adacore.com>
11258
11259         * configure.ac: Add support for a "gcc_subdir" variable in
11260         config-lang.in, to denote a subdirectory where the language/GCC
11261         integration files are to be found.
11262         * configure: Regenerate.
11263
11264 2008-05-14  Ira Rosen  <irar@il.ibm.com>
11265
11266         PR tree-optimization/36098
11267         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
11268         value for the first load in the group in case of a gap.
11269         (vect_build_slp_tree): Check that there are no gaps in loads.
11270
11271 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
11272
11273         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
11274         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
11275         expand_copysign_bit, ): Change call to emit_no_conflict_block to
11276         emit_insn and remove unneeded code to construct extra args.
11277         (emit_no_conflict_block): Removed.
11278         * optabls.h: (emit_no_conflict_block): Removed.
11279         * cse.c (cse_extended_basic_block): Remove search for
11280         REG_NO_CONFLICT note.
11281         * global.c: Removed incorrect comment added in revision 117.
11282         * expr.c (convert_move): Change call to emit_no_conflict_block to
11283         emit_insn.
11284         * recog.c: Change comments so that they do not mention
11285         REG_NO_CONFLICT.
11286         * local_alloc.c (combine_regs): Removed last parameter.
11287         (no_conflict_p): Removed.
11288         (block_alloc): Removed note, no_conflict_combined_regno and set
11289         local vars. Removed all code to process REG_NO_CONFLICT blocks.
11290         (combine_regs): Removed already_dead and code to look for
11291         REG_NO_CONFLICT notes.
11292         * lower_subreg (remove_retval_note): Removed code to look for
11293         REG_NO_CONFLICT block.
11294         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
11295         (resolve_clobber): Remove code to process libcalls that have
11296         REG_NO_CONFLICT notes.
11297         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
11298         case.
11299         * combine.c (can_combine_p, distribute_notes):  Removed
11300         REG_NO_CONFLICT case.
11301         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
11302         to emit_insns.
11303         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
11304         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
11305         Ditto.
11306         * reg-notes.def (NO_CONFLICT): Removed.
11307
11308 2008-05-14  David S. Miller  <davem@davemloft.net>
11309
11310         * config/sparc/sparc.c (sparc_profile_hook): If
11311         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
11312         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
11313         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
11314
11315 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
11316
11317         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
11318
11319 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
11320
11321         PR target/36222
11322         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
11323         and op1 expansion before vector concat to have less live pseudos.
11324
11325 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
11326
11327         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
11328         ix86_expand_vector_set if supported.
11329
11330 2008-05-13  Diego Novillo  <dnovillo@google.com>
11331             Kenneth Zadeck  <zadeck@naturalbridge.com>
11332
11333         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
11334
11335         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
11336         phinodes_print_statistics, init_ssanames, fini_ssanames,
11337         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
11338         release_ssa_name, release_defs, replace_ssa_name_symbol,
11339         ssanames_print_statistics): Move ...
11340         * tree-flow.h: ... here.
11341         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
11342         Use FN instead of cfun.
11343         (make_ssa_name_fn): Rename from make_ssa_name.
11344         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
11345         * tree-flow-inline.h (make_ssa_name): Move from
11346         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
11347         * omp-low.c (expand_omp_parallel):
11348         * tree-flow-inline.h (redirect_edge_var_map_result):
11349         * tree-ssa.c (init_tree_ssa): Add argument FN.
11350         Use it instead of cfun.  Update all users.
11351
11352 2008-05-13  Tom Tromey  <tromey@redhat.com>
11353
11354         PR preprocessor/22168:
11355         * doc/cpp.texi (Top): Update menu.
11356         (Alternatives to Wrapper #ifndef): New node.
11357         (Other Directives): Document deprecation.
11358         (Obsolete Features): Remove menu.
11359         (Assertions): Merge node into Obsolete Features.
11360         (Obsolete once-only headers): Move earlier; rename to Alternatives
11361         to Wrapper #ifndef.
11362         * doc/cppopts.texi: Update.
11363         * c.opt (Wdeprecated): Enable for C and ObjC.
11364         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
11365         (C++ Dialect Options): Move -Wno-deprecated from here to...
11366         (Warning Options): ... here.
11367
11368 2008-05-13  Richard Guenther  <rguenther@suse.de>
11369
11370         PR middle-end/36227
11371         * fold-const.c (fold_sign_changed_comparison): Do not allow
11372         changes in pointer-ness.
11373
11374 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
11375
11376         PR target/24713
11377         * config/sh/sh.c (sh_expand_prologue): Don't clear
11378         RTX_FRAME_RELATED_P for push insns.
11379
11380 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
11381
11382         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
11383
11384 2008-05-12  Anatoly Sokolov <aesok@post.ru>
11385
11386         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
11387         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
11388         Use 'machine->is_leaf' instead of 'leaf_func_p'.
11389
11390 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
11391
11392         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
11393         (*vec_concatv4sf_sse): This.
11394         (*sse2_concatv2si): Renamed to ...
11395         (*vec_concatv2si_sse2): This.
11396         (*sse1_concatv2si): Renamed to ...
11397         (*vec_concatv2si_sse): This.
11398         (*vec_concatv2di_rex): Renamed to ...
11399         (*vec_concatv2di_rex64): This.
11400         (*vec_concatv2si_sse4_1): New.
11401         (*vec_concatv2di_rex64_sse4_1): Likewise.
11402
11403 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
11404
11405         PR rtl-optimization/36111
11406         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
11407         that was created for swappable operands.
11408
11409 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
11410
11411         PR ada/36001
11412         * Makefile.in: Substitute GNATMAKE and GNATBIND.
11413         * configure.ac: Add call to ACX_PROG_GNAT.
11414
11415 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
11416
11417         * optc-gen.awk: Fix comment typo.
11418
11419 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
11420
11421         * pretty-print.c (pp_integer_with_precision): Use
11422         HOST_LONG_LONG_FORMAT.
11423
11424 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
11425
11426         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
11427
11428 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
11429
11430         * config/i386/i386.c (bdesc_ptest): Removed.
11431         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
11432         (bdesc_args): Add __builtin_ia32_ptestz128,
11433         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
11434         (ix86_init_mmx_sse_builtins): Updated.
11435         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
11436         (ix86_expand_builtin): Updated.
11437
11438 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
11439
11440         * tree-cfg.c (valid_fixed_convert_types_p): New function.
11441         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
11442
11443 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
11444
11445         * value-prof.c (interesting_stringop_to_profile): Do not
11446         return early for BUILT_IN_MEMPCPY.
11447
11448 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
11449
11450         * calls.c (expand_call): Don't use callgraph to increase
11451         preferred_stack_boundary.
11452
11453         * cgraph.h (cgraph_rtl_info): Use unsigned on
11454         preferred_incoming_stack_boundary.
11455
11456         * final.c (rest_of_clean_state): Use unsigned on
11457         preferred_stack_boundary.
11458
11459 2008-05-09  Tom Tromey  <tromey@redhat.com>
11460
11461         PR preprocessor/22231:
11462         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
11463         proceeding.
11464
11465 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
11466
11467         PR tree-optimization/36129
11468         * tree-ssa-ccp.c: Include value-prof.h.
11469         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
11470         built-in function was folded to a constant.
11471         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
11472
11473 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
11474             Sebastian Pop  <sebastian.pop@amd.com>
11475
11476         * tree-scalar-evolution.c: Document instantiate_scev.
11477         (instantiate_parameters_1): Renamed instantiate_scev_1.
11478         Don't use the same loop for instantiation_loop and evolution_loop.
11479         (instantiate_scev): New.
11480         (instantiate_parameters): Moved...
11481         (resolve_mixers): Update call to instantiate_scev_1 to pass the
11482         same loop twice.  Maintains the semantics for this function.
11483         * tree-scalar-evolution.h (instantiate_scev): Declare.
11484         (instantiate_parameters): ...here.  Now static inline.
11485         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
11486         instead of resolve_mixers.
11487
11488 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
11489
11490         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
11491
11492 2008-05-09  Tomas Bily  <tbily@suse.cz>
11493
11494         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
11495         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
11496         * tree-ssa-structalias.c (get_constraint_for): Likewise.
11497         * c-common.c (c_common_truthvalue_conversion): Likewise.
11498         * tree-object-size.c (compute_object_offset): Likewise.
11499         * tree-inline.c (estimate_num_insns_1): Likewise.
11500         * varasm.c (const_hash_1, compare_constant, copy_constant)
11501         (compute_reloc_for_constant, output_addressed_constants)
11502         (initializer_constant_valid_p): Likewise.
11503         * c-omp.c (check_omp_for_incr_expr): Likewise.
11504         * gimplify.c (gimplify_expr): Likewise.
11505         * c-typeck.c (c_finish_return): Likewise.
11506         * tree-vectorizer.c (supportable_widening_operation)
11507         (supportable_narrowing_operation): Likewise.
11508         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
11509         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
11510         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
11511         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
11512         (descr_info_loc): Likewise.
11513         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
11514         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
11515         (fold_unary): Likewise.
11516         * builtins.c (get_pointer_alignment): Likewise.
11517         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
11518         (instantiate_parameters_1): Likewise.
11519         * tree.c (expr_align, stabilize_reference): Likewise.
11520         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
11521         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
11522         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
11523         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
11524         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
11525         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
11526         Likewise.
11527         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
11528         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
11529         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
11530         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
11531         (forward_propagate_comparison)
11532         (tree_ssa_forward_propagate_single_use_vars): Likewise.
11533         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
11534         * emit-rtl.c (component_ref_for_mem_expr)
11535         (set_mem_attributes_minus_bitpos): Likewise.
11536         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
11537         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
11538         Likewise.
11539         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
11540         (build_function_call, pointer_diff, build_compound_expr)
11541         (c_finish_return): Likewise.
11542         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
11543         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
11544         Likewise.
11545         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
11546         * expr.c (is_aligning_offset): Likewise.
11547         * tree-ssa-alias.c (is_escape_site): Likewise.
11548         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
11549         (check_all_va_list_escapes): Likewise.
11550         * tree-ssa-loop-ivopts.c (determine_base_object)
11551         (determine_common_wider_type): Likewise.
11552         * dojump.c (do_jump): Likewise.
11553         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
11554         * tree-gimple.c (is_gimple_cast): Likewise.
11555         * fold-const.c (decode_field_reference, )
11556         (fold_sign_changed_comparison, fold_unary, fold_comparison)
11557         (fold_binary): Likewise.
11558         * tree-ssa-alias-warnings.c (find_alias_site_helper)
11559         (already_warned_in_frontend_p): Likewise.
11560         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
11561         * tree.c (really_constant_p, get_unwidened): Likewise.
11562         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
11563         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
11564         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
11565         Likewise.
11566         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
11567         CONVERT_EXPR_P.
11568         (CONVERT_EXPR_P): Define.
11569         (CASE_CONVERT): Define.
11570
11571 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
11572
11573         PR middle-end/36117
11574         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
11575         (delete_unmarked_insns): When deleting a call, call
11576         delete_unreachable_blocks.
11577         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
11578         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
11579
11580 2008-05-08  Richard Guenther  <rguenther@suse.de>
11581
11582         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
11583         (-ftree-salias): Likewise.
11584         (salias-max-implicit-fields): Remove param documentation.
11585         (salias-max-array-elements): Likewise.
11586         * tree-pass.h (pass_create_structure_vars): Remove.
11587         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
11588         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
11589         * tree-ssa-alias.c (create_structure_vars): Remove.
11590         (gate_structure_vars): Likewise.
11591         (pass_create_structure_vars): Likewise.
11592         (gate_build_alias): Likewise.
11593         (pass_build_alias): Adjust to run always and dump the function.
11594         * common.opt (ftree-salias): Hide.
11595         * passes.c (init_optimization_passes): Remove
11596         pass_create_structure_vars, adjust comment.
11597         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
11598         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
11599         * opts.c (decode_options): Do not set flag_tree_salias.
11600         (common_handle_option): Add OPT_ftree_salias to the backward
11601         compatibility section.
11602
11603 2008-05-08  Richard Guenther  <rguenther@suse.de>
11604
11605         * tree-flow-inline.h (var_can_have_subvars): Move ...
11606         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
11607         * tree-flow.h (var_can_have_subvars): Remove.
11608         (push_fields_onto_fieldstack): Remove.
11609         (sort_fieldstack): Likewise.
11610         (struct fieldoff): Move ...
11611         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
11612         alias_set and base_for_components fields.
11613         (sort_fieldstack): Make static.
11614         (push_fields_onto_fieldstack): Likewise.  Remove code that
11615         handles anything but RECORD_TYPEs.  Remove alias_set and
11616         base_for_components handling.
11617         (create_variable_info_for): Adjust.
11618
11619 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
11620
11621         * common.opt (Wframe-larger-than=): Shorten the help message
11622         to one line.
11623         * doc/invoke.texi (Wframe-larger-than=): Add more description.
11624
11625 2008-05-08  Rafael Espindola  <espindola@google.com>
11626
11627         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
11628         trap.
11629         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
11630         trap and that both operands are gimple values.
11631         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
11632         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
11633         is a fp operation.
11634
11635 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
11636
11637         * read-rtl.c (join_c_conditions): Return the first string if the
11638         two strings are equal.
11639
11640 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
11641
11642         * gensupport.h (pred_data): Add a "num_codes" field.
11643         (add_predicate_code): Declare.
11644         * gensupport.c (add_predicate_code): New function.
11645         (std_pred_table): Add an "allows_const_p" field.
11646         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
11647         Remove the (incomplete) list of such codes from the codes field.
11648         (init_predicate_table): Use add_predicate_code.  Add all
11649         RTX_CONST_OBJs if allows_const_p is true.
11650         * genrecog.c (process_define_predicate): Use add_predicate_code.
11651
11652 2008-05-08  David Daney  <ddaney@avtrex.com>
11653             Richard Sandiford  <rsandifo@nildram.co.uk>
11654
11655         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
11656         special case of constant zero operands.
11657         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
11658         old and new values.  Special case constant zero values.
11659         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
11660         fails.
11661         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
11662         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
11663
11664 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
11665
11666         PR target/36090
11667         * simplify-rtx.c (simplify_plus_minus): Create CONST of
11668         similar RTX_CONST_OBJ before CONST_INT.
11669
11670 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
11671
11672         * stmt.c (expand_stack_restore): Change sa mode if needed.
11673
11674 2008-05-08  Richard Guenther  <rguenther@suse.de>
11675
11676         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
11677         return type to bool.
11678         (ix86_sol10_return_in_memory): Likewise.
11679         (ix86_i386elf_return_in_memory): Likewise.
11680         (ix86_i386interix_return_in_memory): Likewise.
11681         * config/i386/i386.c (ix86_return_in_memory): Likewise.
11682         (ix86_sol10_return_in_memory): Likewise.
11683         (ix86_i386elf_return_in_memory): Likewise.
11684         (ix86_i386interix_return_in_memory): Likewise.
11685
11686 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
11687
11688         PR bootstrap/36180
11689         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
11690         fndecl argument.
11691         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
11692         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
11693         declared in front.
11694
11695 2008-05-08  Richard Guenther  <rguenther@suse.de>
11696
11697         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
11698         * tree-data-ref.h (struct dr_alias): Remove subvars field.
11699         (DR_SUBVARS): Remove.
11700         * tree-dfa.c (dump_subvars_for): Remove.
11701         (debug_subvars_for): Likewise.
11702         (dump_variable): Do not dump subvars.
11703         (remove_referenced_var): Do not remove subvars.
11704         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
11705         (lookup_subvars_for_var): Remove.
11706         (get_subvars_for_var): Likewise.
11707         (get_subvars_at): Likewise.
11708         (get_first_overlapping_subvar): Likewise.
11709         (overlap_subvar): Likewise.
11710         * tree-flow.h (subvar_t): Remove.
11711         (struct var_ann_d): Remove subvars field.
11712         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
11713         argument.  Remove special handling of SFTs.
11714         (compute_tag_properties): Likewise.
11715         (set_initial_properties): Likewise.
11716         (compute_call_clobbered): Likewise.
11717         (count_mem_refs): Likewise.
11718         (compute_memory_partitions): Likewise.
11719         (compute_flow_insensitive_aliasing): Likewise.
11720         (setup_pointers_and_addressables): Likewise.
11721         (new_type_alias): Likewise.
11722         (struct used_part): Remove.
11723         (used_portions): Likewise.
11724         (struct used_part_map): Likewise.
11725         (used_part_map_eq): Likewise.
11726         (used_part_map_hash): Likewise.
11727         (free_used_part_map): Likewise.
11728         (up_lookup): Likewise.
11729         (up_insert): Likewise.
11730         (get_or_create_used_part_for): Likewise.
11731         (create_sft): Likewise.
11732         (create_overlap_variables_for): Likewise.
11733         (find_used_portions): Likewise.
11734         (create_structure_vars): Likewise.
11735         * tree.def (STRUCT_FIELD_TAG): Remove.
11736         * tree.h (MTAG_P): Adjust.
11737         (struct tree_memory_tag): Remove base_for_components and
11738         unpartitionable flags.
11739         (struct tree_struct_field_tag): Remove.
11740         (SFT_PARENT_VAR): Likewise.
11741         (SFT_OFFSET): Likewise.
11742         (SFT_SIZE): Likewise.
11743         (SFT_NONADDRESSABLE_P): Likewise.
11744         (SFT_ALIAS_SET): Likewise.
11745         (SFT_UNPARTITIONABLE_P): Likewise.
11746         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
11747         (union tree_node): Remove sft field.
11748         * alias.c (get_alias_set): Remove special handling of SFTs.
11749         * print-tree.c (print_node): Remove handling of SFTs.
11750         * tree-dump.c (dequeue_and_dump): Likewise.
11751         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
11752         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
11753         * tree-predcom.c (set_alias_info): Do not set subvars.
11754         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
11755         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
11756         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
11757         (add_vars_for_offset): Remove.
11758         (add_virtual_operand): Remove special handling of SFTs.
11759         (add_call_clobber_ops): Likewise.
11760         (add_call_read_ops): Likewise.
11761         (get_asm_expr_operands): Likewise.
11762         (get_modify_stmt_operands): Likewise.
11763         (get_expr_operands): Likewise.
11764         (add_to_addressable_set): Likewise.
11765         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
11766         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
11767         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
11768         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
11769         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
11770         (tree_node_structure): Likewise.
11771         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
11772         handling of SFTs.
11773         (find_what_p_points_to): Likewise.
11774
11775 2008-05-08  Sa Liu  <saliu@de.ibm.com>
11776
11777         * config/spu/spu.md: Fixed subti3 pattern.
11778
11779 2008-05-08  Richard Guenther  <rguenther@suse.de>
11780
11781         PR middle-end/36154
11782         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
11783         sure to create a representative for trailing arrays for PTA.
11784
11785 2008-05-08  Richard Guenther  <rguenther@suse.de>
11786
11787         PR middle-end/36172
11788         * fold-const.c (operand_equal_p): Two objects which types
11789         differ in pointerness are not equal.
11790
11791 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
11792
11793         * calls.c (compute_argument_block_size): Add argument tree fndecl.
11794         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
11795         (emit_library_call_value_1): Add new variable fndecl initialized by
11796         NULL_TREE. It should be the decl type of orgfun, but this information
11797         seems not to be available here, so it uses the default calling abi.
11798         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
11799         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
11800         by TARGET_RETURN_IN_MEMORY.
11801         * config/i386/i386-interix.h: Likewise.
11802         * config/i386/i386.h: Likewise.
11803         * config/i386/i386elf.h: Likewise.
11804         * config/i386/ptx4-i.h: Likewise.
11805         * config/i386/sol2-10.h: Likewise.
11806         * config/i386/sysv4.h: Likewise.
11807         * config/i386/vx-common.h: Likewise.
11808         * config/cris/cris.h: Removed #if 0 clause.
11809         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
11810         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
11811         argument.
11812         (ix86_sol10_return_in_memory): Likewise.
11813         (ix86_i386elf_return_in_memory): New.
11814         (ix86_i386interix_return_in_memory): New.
11815         * config/mt/mt-protos.h (mt_return_in_memory): New.
11816         * config/mt/mt.c: Likewise.
11817         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
11818         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
11819         * config/bfin/bfin.h: Likewise.
11820         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
11821         argument.
11822         * config/bfin/bfin.c: Likewise.
11823         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
11824         * config/alpha/unicosmk.h: Likewise.
11825         * config/i386/cygming.h: Likewise.
11826         * config/iq2000/iq2000.h: Likewise.
11827         * config/mips/mips.h: Likewise.
11828         * config/mn10300/mn10300.h: Likewise.
11829         * config/rs6000/rs6000.h: Likewise.
11830         * config/score/score.h: Likewise.
11831         * config/spu/spu.h: Likewise.
11832         * config/v850/v850.h: Likewise.
11833         * defaults.h: Likewise.
11834         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
11835         * expr.c (emit_block_move): Adjust use of
11836         OUTGOING_REG_PARM_STACK_SPACE.
11837         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
11838         OUTGOING_REG_PARM_STACK_SPACE.
11839         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
11840
11841 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
11842
11843         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
11844         on OMP_RETURN for OMP_FOR.
11845
11846         PR debug/35896
11847         * dwarf2out.c (dw_expand_expr, common_check): Removed.
11848         (fortran_common): New function.
11849         (gen_variable_die): Call fortran_common instead of common_check,
11850         adjust for it returning tree instead of rtx.  Formatting.
11851
11852 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
11853
11854         PR rtl/7335
11855         PR rtl/33826
11856         * see.c (see_copy_insn): Copy new pure const attributes for new call.
11857         * c-decl.c (merge_decls): Ditto.
11858         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
11859         to RTL_CONST_OR_PURE_CALL_P.
11860         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
11861         Initialized DECL_LOOPING_CONST_PURE.
11862         (process_call_operands): Set tree_side_effects properly.
11863         * tree.h (TREE_READONLY_DECL_P): Removed.
11864         (DECL_IS_PURE): Renamed to DECL_PURE_P.
11865         (DECL_LOOPING_OR_CONST_P): New macro.
11866         (struct tree_function_decl): Added looping_const_or_pure_p.
11867         (ECF_*) Renumbered.
11868         (ECF_LOOPING_OR_CONST_P): New macro.
11869         * rtlanal.c (pure_const_p): Removed.
11870         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
11871         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
11872         to RTL_CONST_CALL_P.
11873         * ipa-pure-const.c (pure_const_state_e): Added looping field.
11874         (check_decl, check_tree, check_call, scan_function): Initialize
11875         looping.
11876         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
11877         (static_execute): Set looping true for recursive functions.
11878         Undo setting state to IPA_NEITHER for recursive functions.
11879         * cse.c (cse_insn):
11880         * ifcvt.c (noce_can_store_speculate_p): Changed
11881         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
11882         RTL_CONST_OR_PURE_CALL_P.
11883         * dse.c (scan_insn): Ditto.
11884         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
11885         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
11886         RTL_CONST_OR_PURE_CALL_P.
11887         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
11888         pure_call_p to RTL_CONST_CALL_P.
11889         * gimplify.c (gimplify_call_expr): Clear side effects for
11890         non-looping pure and constant calls.
11891         * calls.c (emit_call_1): Set rtl flags from ecf flags.
11892         (flags_from_decl_or_type): Set ecf flags from decl flags.
11893         (initialize_argument_information): Turn off
11894         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
11895         Change const to pure if callee_copies is true rather than just
11896         turning off const.
11897         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
11898         way of marking pure calls.
11899         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
11900         Remove hack that was supposed to fix pr7335 and remove old
11901         way of marking pure calls.
11902         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
11903         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
11904         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
11905         RTL_CONST_OR_PURE_CALL_P.
11906         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
11907         * loop-invariant.c (find_exits, find_invariant_bb): Changed
11908         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
11909         * sched-deps.c (schedule_analyze): Ditto.
11910         * rtl.h (struct rtx_def): Use call field, unchanging field, and
11911         return_val field of calls to represent pure and const function info.
11912         (CONST_OR_PURE_CALL_P): Deleted macro.
11913         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
11914         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
11915         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
11916         TREE_READONLY.
11917         * tree-optimize.c (execute_fixup_cfg): Added test for
11918         ECF_LOOPING_CONST_OR_PURE.
11919         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
11920         DECL_PURE_P.
11921         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
11922         effects for looping pure or const calls.
11923         (verify_gimple_expr): Added verification code.
11924         * config/alpha/alpha.c (alpha_legitimize_address,
11925         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
11926         RTL_CONST_CALL_P.
11927         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
11928         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
11929         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
11930         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
11931         RTL_CONST_OR_PURE_CALL_P.
11932         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
11933         and const calls to be deleted.
11934
11935 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
11936
11937         PR target/35714
11938         * config/i386/mmx.md (mmx_subv2sf3): New expander.
11939         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
11940         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
11941         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
11942         to handle nonimmediate operands.
11943         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
11944         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
11945         to handle nonimmediate operands.
11946         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
11947         (mmx_pmulhrwv4hi3): New expander.  Use
11948         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11949         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
11950         (sse2_umulv1siv1di3): New expander.  Use
11951         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11952         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
11953         (mmx_eq<mode>3): New expander.  Use
11954         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11955         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
11956         (mmx_uavgv8qi3): New expander.  Use
11957         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11958         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
11959         (mmx_uavgv4hi3): New expander.  Use
11960         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11961
11962         * config/i386/sse.md
11963         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
11964         to handle nonimmediate operands.
11965         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
11966         to handle nonimmediate operands.
11967         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
11968         to handle nonimmediate operands.
11969         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
11970         to handle nonimmediate operands.
11971         (sse2_unpckhpd_exp): New expander.  Use
11972         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11973         (sse2_unpcklpd_exp): New expander.  Use
11974         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11975         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
11976         to handle nonimmediate operands.
11977         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
11978         to handle nonimmediate operands.
11979         (*sse2_<plusminus_insn><mode>3): Rename from
11980         sse2_<plusminus_insn><mode>3 insn pattern.
11981         (sse2_<plusminus_insn><mode>3): New expander.  Use
11982         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11983         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
11984         (sse2_umulv2siv2di3): New expander.  Use
11985         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11986         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
11987         (sse4_1_mulv2siv2di3): New expander.  Use
11988         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11989         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
11990         (sse2_pmaddwd): New expander.  Use
11991         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11992         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
11993         (sse2_eq<mode>3): New expander.  Use
11994         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11995         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
11996         (sse4_1_eqv2di3): New expander.  Use
11997         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11998         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
11999         (sse2_uavgv16qi3): New expander.  Use
12000         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12001         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
12002         (sse2_uavgv16qi3): New expander.  Use
12003         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12004         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
12005         (sse2_uavgv8hi3): New expander.  Use
12006         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12007         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
12008         (ssse3_pmulhrswv8hi3): New expander.  Use
12009         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12010         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
12011         (ssse3_pmulhrswv4hi3): New expander.  Use
12012         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12013
12014         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
12015         (<sse>_vmmul<mode>3): Ditto.
12016         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
12017         (divv2df3): Ditto.
12018         (ssse3_pmaddubsw128): Use register_operand for operand 1.
12019         (ssse3_pmaddubsw): Ditto.
12020
12021         * config/i386/i386.c (struct_builtin_description)
12022         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
12023         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
12024         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
12025         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
12026         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
12027         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
12028         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
12029         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
12030         (ix86_fixup_binary_operands): Assert that src1
12031         and src2 must have the same mode when swapped.
12032         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
12033         and ix86_binary_operator_ok.  Do not force operands in registers
12034         when optimizing.
12035
12036 2008-05-07  Jan Hubicka  <jh@suse.cz>
12037
12038         * cgraph.c (dump_cgraph_node): Update.
12039         * cgraph.h (cgraph_local_info): Break out inline summary.
12040         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
12041         hook.
12042         * ipa-inline (inline_summary): New accestor function.
12043         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
12044         cgraph_decide_inlining, compute_inline_parameters): Update.
12045         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
12046
12047 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
12048
12049         Cleanup ColdFire scheduling support and add V4 pipeline model.
12050
12051         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
12052         (define_attr cpu): Add cfv4 value.
12053         (define_attr type, define_attr type1): Merge into a single 'type'
12054         attribute.  Update all uses.
12055         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
12056         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
12057         Update all uses.
12058         (define_attr opx_mem, define_attr opy_mem): Remove.
12059         (define_attr op_mem): Clean up, update comment.
12060         (define_attr size): Use specific values instead of general int.
12061         (define_attr guess, define_attr split): Remove.  Update all uses.
12062         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
12063         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
12064         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
12065         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
12066         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
12067         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
12068         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
12069         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
12070         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
12071         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
12072         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
12073         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
12074         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
12075         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
12076         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
12077         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
12078         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
12079         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
12080         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
12081         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
12082         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
12083         Update or set attributes.
12084         (stack_tie): New fake instruction.
12085
12086         * config/m68k/m68k.h (TUNE_CFV4): New macro.
12087         (m68k_sched_attr_size): Update declaration.
12088         (m68k_sched_attr_type2): Remove.
12089         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
12090         Declare new bypass predicates.
12091
12092         * config/m68k/m68k.c (m68k_sched_issue_rate,
12093         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
12094         implementations.
12095         (TARGET_SCHED_ISSUE_RATE,
12096         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
12097         (override_options): Handle scheduling for ColdFire V4 core.
12098         (m68k_expand_prologue): Emit stack_tie.
12099         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
12100         'OP_TYPE_FPN'.  Update all uses.
12101         (sched_guess_p): Remove.
12102         (sched_address_type): Handle symbolic addresses.
12103         (sched_get_operand): New static function.
12104         (sched_operand_type): Merge into sched_attr_op_type.
12105         (sched_attr_op_type): Handle FP registers, handle quick constants,
12106         update.
12107         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
12108         (m68k_sched_attr_size): Update.  Move logic to ...
12109         (sched_get_attr_size_int): New static function.
12110         (sched_get_opxy_mem_type): New static function.
12111         (m68k_sched_attr_op_mem): Update.
12112         (m68k_sched_attr_type2): Remove.
12113         (sched_cfv4_bypass_data): New static variable.
12114         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
12115         (m68k_sched_issue_rate): Implement scheduler hook.
12116         (struct _sched_ib: enabled_p): New field.
12117         (m68k_sched_variable_issue): Update.  Handle V4.
12118         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
12119         sched_dump_class_func_t, sched_dump_split_class,
12120         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
12121         sched_dump_dfa_class, m68k_sched_dump): Remove.
12122         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
12123         hook.
12124         (m68k_sched_init_global): Remove statisctics dumping, introduce
12125         sanity check that all instructions have pipeline reservations.  Handle
12126         ColdFire V4 core.
12127         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
12128         Handle ColdFire V4 core.
12129         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
12130         New static functions.
12131         (m68k_sched_address_bypass_p): New bypass predicate.
12132         (sched_get_indexed_address_scale): New static function.
12133         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
12134
12135         * cf.md: Update comments.
12136         (define_attr type2): Remove.  Use 'type' attribute instead.
12137         Update all uses.
12138         (cf_ib): Rename to cfv123_ib.  Update all uses.
12139         (cf_oep): Rename to cfv123_oep.  Update all uses.
12140         (cf_chr): Rename to cfv123_chr.  Update all uses.
12141         (cf_mem): Rename to cfv123_mem.  Update all uses.
12142         (cf_mac): Move to more appropriate place.
12143         (cfv123_guess): New automaton and cpu_unit.
12144         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
12145         Update uses of 'size' attribute.  Handle before reload scheduling.
12146         (cfv123_guess): New dummy reservation for unhandled instructions.
12147         (cfv4_*): Pipeline description of ColdFire V4 core.
12148         (ignore): New reservation to handle 'ignore' type.
12149
12150 2008-05-07  Ian Lance Taylor  <iant@google.com>
12151
12152         PR middle-end/36013
12153         * gimplify.c (find_single_pointer_decl_1): Don't look through
12154         indirections.
12155         (find_single_pointer_decl): Adjust comments.
12156
12157 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
12158
12159         PR middle-end/36137
12160         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
12161         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
12162
12163         PR middle-end/36106
12164         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
12165         integral type rather than floating point, then VIEW_CONVERT_EXPR
12166         to the floating point type.
12167
12168 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
12169
12170         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
12171         TFmode op0 to register.
12172
12173 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
12174
12175         * c-decl.c (grokdeclarator): Comment typo.
12176
12177 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
12178
12179         * tree-flow.h: Remove prototype for computed_goto_p.
12180         * tree-cfg.c (computed_goto_p): Make static.
12181
12182 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
12183
12184         PR target/35657
12185         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
12186         (contains_aligned_value_p): This.  Handle _Decimal128.
12187         (ix86_function_arg_boundary): Only align _Decimal128 to its
12188         natural boundary and handle it properly.
12189
12190 2008-05-06  Martin Jambor  <mjambor@suse.cz>
12191
12192         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
12193         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
12194         (ipcp_method_set_orig_node): Removed.
12195         (ipcp_cval_get_cvalue_type): Removed.
12196         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
12197         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
12198         (ipcp_cval_set_cvalue_type): Removed.
12199         (ipcp_cval_get_cvalue): Removed.
12200         (ipcp_cval_set_cvalue): Removed.
12201         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
12202         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
12203         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
12204         (ipcp_cval_meet): Renamed to ipa_lattice_meet
12205         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
12206         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
12207         (ipcp_get_ith_lattice): Changed parameters.
12208         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
12209         (ipcp_lattice_from_jfunc): Changed parameters.
12210         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
12211         (ipcp_method_cval_print): Added temporary variable info.
12212         (ipcp_redirect): Removed already unused local variable caller.
12213         (ipcp_redirect): New temporary variable orig_callee_info
12214         (ipcp_redirect): Removed newly unused local variable callee.
12215         (ipcp_redirect): Removed (a bit confusing) local variable type.
12216         (ipcp_insert_stage): Added local variable info.
12217         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
12218         renamed too
12219         (ipcp_formal_create): Removed.
12220         (ipcp_method_cval_set): Removed.
12221         (ipcp_propagate_stage): Renamed lattice variables.
12222         (ipcp_method_cval_set_cvalue_type): Removed.
12223         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
12224         (ipcp_print_all_lattices): Changed printed strings to refer to
12225         lattices rather than cvals.
12226         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
12227         (ipcp_propagate_const): Changed formal parameters.
12228         (build_const_val): Changed formal parameters.
12229         (ipcp_insert_stage): Removed useless variable cvalue
12230         (build_const_val): Changed formal parameters.
12231         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
12232         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
12233         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
12234         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
12235         (ipcp_print_func_profile_counts): Changed string from "method" to
12236         "function"
12237         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
12238         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
12239         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
12240         (ipcp_structures_print): Renamed to ipcp_print_all_structures
12241         (ipcp_profile_print): Renamed to ipcp_print_profile_data
12242         (ipcp_lat_is_const): Changed parameters and made inline.
12243         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
12244         (ipcp_redirect): Renamed to ipcp_need_redirect_p
12245         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
12246         the predicate condition directly
12247         (ipcp_propagate_stage): Added local variable args. Removed local
12248         variable callee.  (Both are mere code simplifications.)
12249         (ipcp_method_dont_insert_const): Renamed to
12250         ipcp_node_not_modifiable_p.
12251         (ipcp_node_not_modifiable_p): Made inline.
12252         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
12253         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
12254         (ipcp_print_all_lattices): Removed variable cvalue
12255         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
12256         Updated comments.
12257
12258 2008-05-06  Olivier Hainque  <hainque@adacore.com>
12259
12260         * tree-sra.c (try_instantiate_multiple_fields): Early return
12261         if field has POINTER_TYPE.
12262
12263 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
12264
12265         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
12266         by using 'q' specifier for instruction.
12267         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
12268
12269 2008-05-06  Anatoly Sokolov <aesok@post.ru>
12270
12271         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
12272         Change mode of zero_extract from QImode to HImode.
12273         (sign bit tests peepholes): (Ditto.).
12274
12275 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
12276
12277         * config/i386/mmx.md: Remove double backslashes from asm templates.
12278         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
12279         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
12280         to handle nonimmediate operands.
12281         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
12282         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
12283         to handle nonimmediate operands.
12284         (*mmx_<code>v2sf3_finite): New insn pattern.
12285         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
12286         (mmx_<code>v2sf3): New expander.  Use
12287         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12288         (mmx_<plusminus_insn><mode>3): New expander.  Use
12289         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12290         (*mmx_<plusminus_insn><mode>3): New insn pattern.
12291         (mmx_add<mode>3): Removed.
12292         (mmx_ssadd<mode>3): Ditto.
12293         (mmx_usadd<mode>3): Ditto.
12294         (mmx_sub<mode>3): Ditto.
12295         (mmx_sssub<mode>3): Ditto.
12296         (mmx_ussub<mode>3): Ditto.
12297         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
12298         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
12299         to handle nonimmediate operands.
12300         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
12301         insn pattern.
12302         (mmx_smulv4hi3_highpart): New expander.  Use
12303         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12304         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
12305         insn pattern.
12306         (mmx_umulv4hi3_highpart): New expander.  Use
12307         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12308         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
12309         (mmx_<code>v4hi3): New expander.  Use
12310         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12311         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
12312         (mmx_<code>v8qi3): New expander.  Use
12313         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12314         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
12315         (mmx_<code><mode>3): New expander.  Use
12316         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12317
12318 2008-05-05  Jan Hubicka  <jh@suse.cz>
12319
12320         PR tree-optimization/36118
12321         * passes.c (pass_init_dump_file): Fix dump header.
12322
12323 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12324
12325         PR middle-end/36141
12326         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
12327         VCE for function decls.
12328
12329 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
12330
12331         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
12332
12333 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
12334
12335         * config/i386/i386.md (sat_plusminus): New.
12336         (plusminus_insn): Likewise.
12337         (plusminus_mnemonic): Likewise.
12338         (addsub): Removed.
12339         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
12340         (*<addsub><mode>3_cc_overflow): Renamed to ...
12341         (*<plusminus_insn><mode>3_cc_overflow): This.
12342         (*<addsub>si3_zext_cc_overflow): Renamed to ...
12343         (*<plusminus_insn>si3_zext_cc_overflow): This.
12344
12345         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
12346         (<plusminus_insn><mode>3): This.
12347         (*<addsub><mode>3): Renamed to ...
12348         (*<plusminus_insn><mode>3): This.
12349         (<sse>_vm<addsub><mode>3): Renamed to ...
12350         (<sse>_vm<plusminus_insn><mode>3): This.
12351         (sse3_h<addsub>v4sf3): Renamed to ...
12352         (sse3_h<plusminus_insn>v4sf3): This.
12353         (sse3_h<addsub>v2df3): Renamed to ...
12354         (sse3_h<plusminus_insn>v2df3): This.
12355         (<plusminus_insn><mode>3): New.
12356         (*<plusminus_insn><mode>3): Likewise.
12357         (sse2_<plusminus_insn><mode>3): Likewise.
12358         (add<mode>): Removed.
12359         (*add<mode>3): Likewise.
12360         (sse2_ssadd<mode>3): Likewise.
12361         (sse2_usadd<mode>3): Likewise.
12362         (sub<mode>3): Likewise.
12363         (*sub<mode>3): Likewise.
12364         (sse2_sssub<mode>3): Likewise.
12365         (sse2_ussub<mode>3): Likewise.
12366
12367 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
12368
12369         * gthr-single.h: Add in required interface elements as per gthr.h.
12370         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
12371         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
12372         Generalize UNUSED macro.
12373         (__gthread_once): Add.
12374         (__gthread_key_create): Add.
12375         (__gthread_key_delete): Add.
12376         (__gthread_getspecific): Add.
12377         (__gthread_setspecific): Add.
12378
12379 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
12380
12381         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
12382         the same size types for the indirect reference on the rhs, then
12383         create a VCE.
12384
12385 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
12386
12387         * config/i386/i386.md
12388         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
12389         one insn template instead of template series.
12390         (*xordi_1_rex64): Ditto.
12391         (*xordi_2_rex64): Ditto.
12392
12393 2008-05-05  Ira Rosen  <irar@il.ibm.com>
12394
12395         PR tree-optimization/36119
12396         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
12397         in case of SLP.
12398
12399 2008-06-04  Jan Hubicka  <jh@suse.cz>
12400
12401         tree-optimization/36100
12402         * tree-pass.h (pass_O0_always_inline): Declare.
12403         * ipa-inline.c (inline_transform): Remove dead code.
12404         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
12405         pass_O0_always_inline): New.
12406         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
12407
12408 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
12409
12410         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
12411         mnemonic in this_param move for TARGET_64BIT.
12412
12413 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
12414
12415         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
12416         (*strmovsi_rex_1): Ditto.
12417         (*strsetsi_1): Ditto.
12418         (*strsetsi_rex_1): Ditto.
12419
12420         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
12421         adddicc expanders using SWI mode iterator.
12422
12423 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
12424
12425         PR target/36121
12426         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
12427         argument handling.
12428
12429 2008-05-04  David S. Miller  <davem@davemloft.net>
12430
12431         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
12432         (sparc*-*-linux*): Use linux.h in tm_file.
12433         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
12434         compiler defaulting to 32-bit.
12435         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
12436         no longer needed.
12437         * config/sparc/linux.h: Remove definitions now obtained
12438         properly from linux.h
12439         * config/sparc/linux64.h: Likewise.
12440         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
12441         don't want this setting for 32-bit builds in a biarch compiler.
12442         * doc/install.texi: Add sparc-linux to list of targets
12443         supporting --enable-targets=all.
12444
12445 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
12446
12447         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
12448
12449 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
12450
12451         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
12452         after V4SI_FTYPE_V8HI.
12453         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
12454         case V4SI_FTYPE_V2DF.
12455
12456 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
12457
12458         * doc/invoke.texi (max-flow-memory-locations): Removed.
12459         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
12460
12461 2008-05-03  Richard Guenther  <rguenther@suse.de>
12462
12463         PR middle-end/34973
12464         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
12465
12466 2008-05-02  David S. Miller  <davem@davemloft.net>
12467
12468         * config.gcc (need_64bit_hwint): Document libcpp dependency.
12469
12470 2008-05-02  Simon Baldwin <simonb@google.com>
12471
12472         PR bootstrap/36108
12473         * c-common.h (warn_array_subscript_range): Removed.
12474         * c-common.c (warn_array_subscript_range): Ditto.
12475         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
12476         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
12477
12478 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
12479
12480         * config/i386/i386.c (ix86_special_builtin_type): New.
12481         (bdesc_special_args): Likewise.
12482         (ix86_expand_special_args_builtin): Likewise.
12483         (ix86_init_mmx_sse_builtins): Updated.
12484         (ix86_expand_builtin): Updated.
12485         (ix86_expand_store_builtin): Removed.
12486         (ix86_expand_unop_builtin): Likewise.
12487
12488         * config/i386/mm3dnow.h (__v2sf): Moved to ...
12489         * config/i386/mmintrin.h (__v2sf): Here.
12490
12491         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
12492         const __v2sf.
12493         (_mm_loadl_pi): Likewise.
12494         (_mm_storeh_pi): Replace __v2si with __v2sf.
12495         (_mm_storel_pi): Likewise.
12496
12497         * doc/extend.texi: Correct __builtin_ia32_loadhps,
12498         __builtin_ia32_loadlps, __builtin_ia32_storehps,
12499         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
12500         __builtin_ia32_loadlpd.
12501
12502 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
12503
12504         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
12505         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
12506         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
12507         (ix86_init_mmx_sse_builtins): Updated.
12508         (ix86_expand_args_builtin): Likewise.
12509         (ix86_expand_builtin): Likewise.
12510         (ix86_expand_unop1_builtin): Renamed to ...
12511         (ix86_expand_unop_vec_merge_builtin): This.
12512
12513 2008-05-01  Jan Hubicka  <jh@suse.cz>
12514
12515         PR bootstrap/36100
12516         * ipa-inline.c (inline_generate_summary): Make static.
12517         (inline_transform): Do not call inlining at -O0; make static.
12518         * passes.c (execute_todo): Add sanity check.
12519         (execute_one_ipa_transform_pass): Execute proper flags.
12520
12521 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
12522
12523         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
12524         (DECL_NONADDRESSABLE_P): Likewise.
12525         * alias.c (record_component_aliases): Fix comment.
12526
12527 2008-05-01  Simon Baldwin <simonb@google.com>
12528
12529         * c-common.h (warn_array_subscript_range): New function.
12530         * c-common.c (warn_array_subscript_range): Ditto.
12531         * tree-vrp.c (check_array_ref): Corrected code to agree with
12532         comment, ignoring only arrays of size 0 or size 1.
12533         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
12534
12535 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
12536
12537         * config/i386/i386.c (ix86_builtin_type): Replace
12538         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
12539         (bdesc_args): Updated.
12540         (ix86_init_mmx_sse_builtins): Likewise.
12541         (ix86_expand_args_builtin): Likewise.
12542
12543         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
12544         with __v1di.
12545
12546         * doc/extend.texi: Correct __builtin_ia32_palignr.
12547
12548 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
12549
12550         PR target/36095
12551         * config/i386/i386.c (bdesc_crc32): Removed.
12552         (ix86_expand_crc32): Likewise.
12553         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
12554         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
12555         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
12556         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
12557         UINT_FTYPE_UINT_UCHAR.
12558         (bdesc_args): Updated. Add crc32 builtins.
12559         (ix86_init_mmx_sse_builtins): Updated.
12560         (ix86_expand_args_builtin): Updated to support subreg.
12561
12562         * doc/extend.texi: Correct __builtin_ia32_crc32di.
12563
12564 2008-05-01  Jan Hubicka  <jh@suse.cz>
12565
12566         * tree-pass.h (opt_pass): Add IPA_PASS.
12567         (varpool_node, cgraph_node): Forward declare.
12568         (ipa_opt_pass): Define.
12569         (pass_ipa_inline): Turn into ipa_opt_pass.
12570         (pass_apply_inline): Remove.
12571         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
12572         (apply_inline): Turn into ....
12573         (inline_transform): ... this one.
12574         (inline_generate_summary): New function.
12575         (pass_apply_inline): Remove.
12576         * function.h (ipa_opt_pass): Forward declare structure; typedef;
12577         vector.
12578         (struct function): Add ipa_transforms_to_apply.
12579         * passes.c (register_one_dump_file): Work on IPA_PASS.
12580         (init_optimization_passes): Remove pass_inline_parameters and
12581         pass_apply_inline.
12582         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
12583         (execute_one_pass) ... here; apply transforms when possible.
12584         (add_ipa_transform_pass, execute_ipa_summary_asses,
12585         execute_one_ipa_transform_pass): New.
12586         (execute_ipa_pass_list): Update for IPA_PASS type.
12587
12588 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
12589
12590         * config/i386/i386.c (ix86_builtin_type): Add
12591         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
12592         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
12593         (bdesc_args): Add SSE4a builtins.
12594         (ix86_init_mmx_sse_builtins): Updated.
12595         (ix86_expand_args_builtin): Likewise.
12596         (ix86_expand_builtin): Likewise.
12597
12598 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
12599
12600         * config/i386/i386.c (ix86_builtin_type): Add
12601         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
12602         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
12603         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
12604         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
12605         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
12606         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
12607         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
12608         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
12609         and DI_FTYPE_DI_DI_INT.
12610         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
12611         (ix86_init_mmx_sse_builtins): Updated.
12612         (ix86_expand_args_builtin): Likewise.
12613         (ix86_expand_builtin): Likewise.
12614         (ix86_expand_binop_imm_builtin): Removed.
12615
12616         * doc/extend.texi: Correct __builtin_ia32_palignr128.
12617
12618 2008-04-30  Richard Guenther  <rguenther@suse.de>
12619
12620         PR tree-optimization/32921
12621         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
12622
12623 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
12624
12625         * config/arm/arm.c (arm_unwind_emit): Use
12626         crtl->all_throwers_are_sibcalls instead of
12627         cfun->all_throwers_are_sibcalls.
12628         (arm_output_fn_unwind): Likewise.
12629         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
12630         instead of cfun->uses_pic_offset_table.
12631         (frv_expand_prologue): Likewise.
12632         (frv_frame_pointer_required): Likewise.
12633         (frv_expand_fdpic_call): Likewise.
12634         (frv_emit_movsi): Likewise.
12635         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
12636         cfun->returns_pcc_struct instead of
12637         current_function_returns_pcc_struct.
12638         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
12639         instead of cfun->calls_eh_return.
12640         (m32c_pushm_popm): Likewise.
12641         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
12642         "extern" declaration.
12643
12644 2008-04-30  Richard Guenther  <rguenther@suse.de>
12645
12646         PR tree-optimization/21636
12647         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
12648         constant address.
12649         (evaluate_stmt): Print the likely value.
12650         (ccp_visit_stmt): Avoid excessive vertical spacing.
12651
12652 2008-04-30  Rafael Espindola  <espindola@google.com>
12653
12654         * builtins.c (fold_call_expr): Return realret.
12655         * tree-ssa-threadedge.c
12656         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
12657         __builtin_object_size.
12658
12659 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
12660
12661         * gcc.c (wrapper_string): New variable.
12662         (insert_wrapper): New function.
12663         (execute): New option -wrapper.
12664         * doc/invoke.texi (Overall Options): New driver option -wrapper.
12665
12666 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
12667
12668         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
12669         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
12670         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
12671         from...
12672         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
12673         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
12674         config/rs6000/e500crtres64gprctr.asm,
12675         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
12676         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
12677         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
12678         config/rs6000/e500crtsav64gprctr.asm,
12679         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
12680         config/rs6000/e500crtsavg64gprctr.asm: New files.
12681         * config/rs6000/t-ppccomm: Add build rules for new files.
12682         (LIB2FUNCS_STATIC_EXTRA): Add new files.
12683         * config/rs6000/t-netbsd: Add build rules for new files.
12684         (LIB2FUNCS_STATIC_EXTRA): New variable.
12685         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
12686         (CRTSAVRES_DEFAULT_SPEC): Likewise.
12687         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
12688
12689 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
12690
12691         * config/i386/i386.c (ix86_builtin_type): Add
12692         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
12693         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
12694         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
12695         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
12696         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
12697         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
12698         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
12699         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
12700         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
12701         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
12702         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
12703         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
12704         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
12705         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
12706         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
12707         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
12708         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
12709         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
12710         V1DI_FTYPE_V2SI_V2SI.
12711         (bdesc_2arg): Moved to ...
12712         (bdesc_args): Here.
12713         (ix86_init_mmx_sse_builtins): Updated.
12714         (ix86_expand_args_builtin): Updated.  Take a pointer
12715         to const struct builtin_description.  Handle comparison
12716         builtin functions.
12717         (ix86_expand_sse_compare): Take a new argument for swapping operands.
12718         (ix86_expand_builtin): Updated.
12719
12720         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
12721         (ssse3_pmaddubsw128): This.
12722         (ssse3_pmaddubswv4hi3): Renamed to ...
12723         (ssse3_pmaddubsw): This.
12724
12725         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
12726         (__builtin_ia32_packssdw128): Likewise.
12727         (__builtin_ia32_packuswb128): Likewise.
12728         (__builtin_ia32_pmaddubsw): Likewise.
12729         (__builtin_ia32_pmaddubsw128): Likewise.
12730
12731 2008-04-30  Richard Guenther  <rguenther@suse.de>
12732
12733         PR tree-optimization/14847
12734         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
12735         (recognize_bits_test): Use it.
12736         (recognize_single_bit_test): Likewise.
12737
12738 2008-04-30  Martin Jambor  <mjambor@suse.cz>
12739
12740         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
12741         instead of setting number of formal parameters to zero.
12742         (ipcp_init_stage): Do not set the number of actual parameters to zero
12743         either.
12744         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
12745         which are called with variable number of arguments.
12746         (ipcp_insert_stage): Explicitely skipping all nodes which are
12747         called with variable number of arguments.
12748         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
12749         number of parameters.
12750
12751         * ipa-prop.h (struct ipa_node_params): Added flag
12752         called_with_var_arguments
12753         (ipa_set_param_count): Added.  Changed sole setter to use it.
12754         (ipa_get_param_count): Added.  All readers of param_count
12755         converted to use it instead.
12756         (ipa_set_called_with_variable_arg): Added.
12757         (ipa_is_called_with_var_arguments): Added.
12758         (ipa_get_ith_param): Added.  All readers of param_decls converted
12759         to use it instead.
12760         (ipa_set_cs_argument_count): Added, sole writer to argument_count
12761         changed to use it.
12762         (ipa_get_cs_argument_count): Added, all readers of argument_count
12763         changed to cal it.
12764         (ipa_get_ith_jump_func): Added. Accessors of jump values changed
12765         to use it.
12766
12767         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
12768         (struct ipcp_lattice): Renamed cval_type to type
12769         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
12770
12771         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
12772         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
12773         (ipcp_insert_stage): Changed the type of variable cvalue to tree
12774         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
12775         (build_const_val): Changed the type of parameter cvalue to tree
12776         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
12777         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
12778
12779         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
12780         constant
12781
12782         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
12783         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
12784         (ipa_add_method): Renamed to ipa_push_func_to_list
12785         (ipa_remove_method): Renamed to ipa_pop_func_from_list
12786         (ipa_callsite_param_count): Removed.
12787         (ipa_callsite_param_count_set): Removed.
12788         (ipa_callsite_param): Removed.
12789         (ipa_callsite_callee): Removed.
12790         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
12791         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
12792         (ipa_method_formal_count): Removed.
12793         (ipa_method_formal_count_set): Removed.
12794         (ipa_method_get_tree): Removed.
12795         (ipa_method_tree_map_create): Removed.
12796         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
12797         (ipa_create_param_decls_array): Creates the array itself
12798         (ipa_create_param_decls_array): Temporary variable info instead of
12799         a few dereferences.
12800         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
12801         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
12802         (get_type): Removed.
12803         (ipa_jf_get_info_type): Removed.
12804         (ipa_node_create): Renamed to ipa_create_node_params
12805         (ipa_free): Renamed to ipa_free_all_node_params
12806         (ipa_nodes_create): Renamed to ipa_create_all_node_params
12807         (ipa_edges_create): Renamed to ipa_create_all_edge_args
12808         (ipa_edges_free): Renamed to ipa_free_all_edge_args
12809         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
12810         (ipa_free_all_node_params): Deallocation to jump_functions moved to
12811         ipa_free_all_edge_args
12812         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
12813         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
12814         (ipa_create_methodlist_node): Removed.
12815         (ipa_methodlist_method): Removed.
12816         (ipa_methodlist_method_set): Removed.
12817         (ipa_methodlist_next_method): Removed.
12818         (ipa_methodlist_next_method_set): Removed.
12819         (ipa_method_is_modified): Removed.
12820         (ipa_method_modify_create): Removed.
12821         (ipa_method_modify_init): Temporary variable info instead of a few
12822         dereferences.
12823         (ipa_detect_param_modifications): Temporary variable info instead of
12824         a few dereferences.
12825         (ipa_compute_jump_functions): Temporary variable info instead of
12826         a few dereferences.
12827         (ipa_method_modify_set): Removed.
12828         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
12829         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
12830         than craph_node as the first parameter.
12831         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
12832         (ipa_method_modify_init): Removed.
12833         (ipa_compute_jump_functions): Added a temp variable instead of
12834         repeatadly dereferencing the cgraph_edge.aux pointer
12835         (ipa_callsite_param_set_type): Removed.
12836         (ipa_compute_jump_functions): i renamed to index and moved to
12837         an inner block
12838         (ipa_callsite_param_set_info_type_formal): Removed.
12839         (ipa_callsite_param_set_info_type): Removed.
12840         (ipa_callsite_param_map_create): Removed.
12841         (ipa_callsite_tree): Removed.
12842         (ipa_callsite_caller): Removed.
12843         (ipa_pop_func_from_list): return_method removed to return_func
12844
12845         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
12846         prefixed all values with IPA_. Changed all users.
12847         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
12848         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
12849         and FORMAL_IPATYPE IPA_PASS_THROUGH.
12850         (union parameter_info): Renamed to jump_func_value.
12851         (union jump_func_value): Renamed value to constant
12852         (struct ipa_jump_func): Renamed info_type to value
12853         (struct ipa_node): Renamed to ipa_node_params
12854         (struct ipa_node_params): Renamed ipa_arg_num to param_count
12855         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
12856         (struct ipa_node_params): Renamed ipa_mod to modified_flags
12857         (struct ipa_edge): Renamed to ipa_edge_args
12858         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
12859         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
12860         (struct ipa_methodlist): Renamed to ipa_func_list
12861         (struct ipa_func_list): method_p renamed to node, next_method
12862         renamed to next
12863         (ipa_methodlist_p): Removed, switched all users to struct pointer
12864         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
12865
12866 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
12867
12868         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
12869         (rs6000_emit_epilogue): Use backchain to restore only when we
12870         have a large frame.  Make use of frame pointer to restore if we
12871         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
12872
12873 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
12874
12875         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
12876         Add mode to zero_extract.
12877         (sign bit tests peepholes): (Ditto.).
12878
12879 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
12880
12881         * config/i386/i386.c (ix86_builtins): Replace Prescott New
12882         Instructions in comments with SSE3.
12883         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
12884         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
12885         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
12886         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
12887         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
12888         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
12889         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
12890         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
12891         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
12892         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
12893         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
12894         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
12895         (bdesc_sse_args): Renamed to ...
12896         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
12897         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
12898         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
12899         IX86_BUILTIN_FABSQ.
12900         (bdesc_1arg): Moved to ...
12901         (bdesc_args): Here.
12902         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
12903         Instructions in comments with SSE3.
12904         (ix86_expand_sse_operands_builtin): Renamed to ...
12905         (ix86_expand_args_builtin): This.  Updated.
12906         (ix86_expand_unop1_builtin): Update comments.
12907         (ix86_expand_builtin): Updated.
12908
12909 2008-04-29  Richard Guenther  <rguenther@suse.de>
12910
12911         PR tree-optimization/36078
12912         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
12913         Update virtual SSA form after cleaning up the CFG.
12914
12915 2008-04-29  Richard Guenther  <rguenther@suse.de>
12916
12917         PR middle-end/15255
12918         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
12919
12920 2008-04-29  Richard Guenther  <rguenther@suse.de>
12921
12922         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
12923         (compute_may_aliases): Do not call finalize_ref_all_pointers.
12924         (compute_flow_insensitive_aliasing): Do not treat
12925         PTR_IS_REF_ALL pointers special.
12926         (get_smt_for): Likewise.
12927         (may_alias_p): Re-structure.
12928         (is_escape_site): A ref-all pointer conversion is not an escape site.
12929         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
12930         PTR_IS_REF_ALL pointers special.
12931         * tree-ssa-structalias.h (struct alias_info): Remove
12932         ref_all_symbol_mem_tag field.
12933         (PTR_IS_REF_ALL): Remove.
12934
12935 2008-04-29  Richard Guenther  <rguenther@suse.de>
12936
12937         PR middle-end/36077
12938         * fold-const.c (extract_muldiv_1): In combining division constants
12939         make sure to never overflow.
12940
12941 2008-04-29  Nick Clifton  <nickc@redhat.com>
12942
12943         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
12944
12945 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12946
12947         PR bootstrap/35169
12948         * optc-gen.awk: Work around HP-UX/IA awk bug.
12949
12950 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
12951
12952         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
12953         2008-04-25 commit.
12954
12955 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
12956
12957         PR target/36073
12958         * config/i386/i386.md
12959         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
12960         Change operand 1 predicate to nonimmediate_operand.
12961
12962 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
12963
12964         PR debug/36060
12965         * dwarf2out.c (struct die_struct): Mark as chain_circular through
12966         die_sub field.
12967         * gengtype.c (walk_type, write_func_for_structure): Handle
12968         chain_circular.
12969         * doc/gty.texi: Document chain_circular.
12970
12971 2008-04-28  Richard Guenther  <rguenther@suse.de>
12972
12973         PR tree-optimization/36066
12974         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
12975         SCEV and loop.
12976
12977 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
12978
12979         PR target/36064
12980         * config/i386/i386.md
12981         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
12982         Use match_scratch instead of match_operand for operands 3 and 4.
12983
12984 2008-04-27  Richard Guenther  <rguenther@suse.de>
12985
12986         PR tree-optimization/18754
12987         PR tree-optimization/34223
12988         * tree-pass.h (pass_complete_unrolli): Declare.
12989         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
12990         loop size before and after unconditionally of UL_NO_GROWTH in effect.
12991         Rewrite loop into loop closed SSA form if it is not already.
12992         (tree_unroll_loops_completely): Re-structure to iterate over
12993         innermost loops with intermediate CFG cleanups.
12994         Unroll outermost loops only if requested or the code does not grow
12995         doing so.
12996         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
12997         loops are available.
12998         (tree_vectorize): Instead do so here.
12999         (tree_complete_unroll): Also unroll outermost loops.
13000         (tree_complete_unroll_inner): New function.
13001         (gate_tree_complete_unroll_inner): Likewise.
13002         (pass_complete_unrolli): New pass.
13003         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
13004         uses outside of the loop.
13005         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
13006         form if it is available.
13007         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
13008         * passes.c (init_optimization_passes): Schedule complete inner
13009         loop unrolling pass before the first CCP pass after final inlining.
13010
13011 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
13012
13013         * targhooks.h (default_emutls_var_fields,
13014         default_emutls_var_init): Declare.
13015         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
13016         * target.h (struct gcc_target): Add struct emutls member.
13017         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
13018         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
13019         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
13020         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
13021         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
13022         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
13023         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
13024         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
13025         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
13026         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
13027         emit debug information.
13028         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
13029         * varasm.c: Include targhooks.h.
13030         (emutls_object_section, emutls_tmpl_section): New.
13031         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
13032         (EMUTLS_SEPARATOR): New.
13033         (prefix_name): New.
13034         (get_emutls_object_name): New.
13035         (default_emutls_var_fields): New, broken out of ...
13036         (get_emutls_object_type): ... here.  Adjust to use target hooks.
13037         (get_emutls_init_templ_addr): Adjust to use target hooks.
13038         (emutls_decl): Adjust to use target hooks.
13039         (emutls_finish): Likewise.
13040         (default_emutls_var_init): New, broken out of ...
13041         (assemble_variable): ... here.  Adjust to use target hooks.
13042         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
13043         SECCAT_EMUTLS_TMPL.
13044         * c-common.c (handle_section_attribute): Prevent overriding
13045         sections for emulated tls with special sections.
13046         * config/i386/i386.c (x86_64_elf_select_section): Add
13047         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
13048         (x86_64_elf_unique_section): Likewise.
13049         * config/vxworks.c: Include tree.h.
13050         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
13051         (vxworks_override_options): Set TLS scheme.
13052         * doc/tm.texi (Emulated TLS): New node.
13053
13054 2008-04-26  Simon Baldwin <simonb@google.com>
13055
13056         PR c/35652
13057         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
13058         with propagated string constants.
13059
13060 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
13061
13062         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
13063         constraint for operand 2 when operand 0 is memory operand.
13064         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
13065         operand 0 is memory operand.
13066         (fix_trunc<mode>_i387_with_temp): Ditto.
13067         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
13068         operand 2 when operand 1 is memory operand.
13069         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
13070         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
13071         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
13072         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
13073         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
13074         operands 2,3 and 4 when operand 1 is memory operand.
13075         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
13076         is memory operand.
13077         (fistdi2_floor_with_temp): Ditto.
13078         (fist<mode>2_floor_with_temp): Ditto.
13079         (fistdi2_ceil_with_temp): Ditto.
13080         (fist<mode>2_ceil_with_temp): Ditto.
13081         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
13082
13083 2008-04-26  David Daney  <ddaney@avtrex.com>
13084
13085         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
13086         unspec_volitile.
13087         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
13088         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
13089         UNSPEC_UPDATE_GOT_VERSION): Renumber.
13090         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
13091         (compare_and_swap_12): New insn.
13092         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
13093         * config/mips/mips.c (mips_force_binary): New function.
13094         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
13095         (mips_expand_compare_and_swap_12): New function.
13096         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
13097
13098 2008-04-25  Jan Hubicka  <jh@suse.cz>
13099
13100         PR testsuite/35843
13101         * cfgexpand.c (pass_expand): Turn into RTL pass.
13102         * passes.c (execute_one_pass): Do pass typechecking after execution.
13103         * tree-pass.h (pass_expand): Turn into RTL pass.
13104
13105         * function.h (struct rtl_data): Move here fields
13106         accesses_prior_frames, calls_eh_return, saves_all_registers,
13107         has_nonlocal_goto, has_asm_statement, is_thunk,
13108         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
13109         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
13110         arg_pointer_save_area_init from struct function; turn into bool.
13111         (struct function): Move
13112         calls_eh_return, saves_all_registers, has_nonlocal_goto,
13113         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
13114         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
13115         tail_call_emit, arg_pointer_save_area_init
13116         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
13117         (current_function_returns_struct, current_function_returns_pcc_struct,
13118         current_function_calls_setjmp, current_function_calls_alloca,
13119         current_function_accesses_prior_frames,
13120         current_function_calls_eh_return, current_function_is_thunk,
13121         current_function_stdarg, current_function_profile,
13122         current_function_limit_stack, current_function_uses_pic_offset_table,
13123         current_function_uses_const_pool, current_function_has_nonlocal_label,
13124         current_function_saves_all_registers,
13125         current_function_has_nonlocal_goto,
13126         current_function_has_asm_statement): Remove accesor macros.
13127         * ra-conflict.c (global_conflicts): Update.
13128         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
13129         (suitable_for_tail_call_opt_p): Update.
13130         * builtins.c (expand_builtin_return_addr): Update.
13131         (expand_builtin_setjmp_setup): Update.
13132         (expand_builtin_nonlocal_goto): Update.
13133         * final.c (final_start_function): Update.
13134         (profile_function): Update.
13135         (leaf_function_p): Update.
13136         (only_leaf_regs_used): Update.
13137         * df-scan.c (df_get_exit_block_use_set): Update.
13138         * dojump.c (clear_pending_stack_adjust): Update.
13139         * tree-stdarg.c (gate_optimize_stdarg): Update.
13140         * gimple-low.c (lower_function_body): Update.
13141         * global.c (compute_regsets): Update.
13142         (global_alloc): Update.
13143         * dwarf2out.c (dwarf2out_begin_prologue): Update.
13144         * expr.c (expand_assignment): Update.
13145         * dse.c (dse_step0): Update.
13146         (dse_step1): Update.
13147         * c-decl.c (store_parm_decls): Update.
13148         * local-alloc.c (combine_regs): Update.
13149         (find_free_reg): Update.
13150         * function.c (assign_parms_augmented_arg_list): Update.
13151         (assign_parm_find_data_types): Update.
13152         (assign_parms): Update.
13153         (allocate_struct_function): Update.
13154         (expand_function_start): Update.
13155         (expand_function_end): Update.
13156         (get_arg_pointer_save_area): Update.
13157         (thread_prologue_and_epilogue_insns): Update.
13158         (rest_of_match_asm_constraints): Update.
13159         * stor-layout.c (variable_size): Update.
13160         * gcse.c (gcse_main): Update.
13161         (bypass_jumps): Update.
13162         * gimplify.c (gimplify_function_tree): Update.
13163         * calls.c (emit_call_1): Update.
13164         (expand_call): Update.
13165         * bt-load.c (compute_defs_uses_and_gen): Update.
13166         * except.c (sjlj_assign_call_site_values): Update.
13167         (sjlj_emit_function_enter): Update.
13168         (can_throw_external): Update.
13169         (set_nothrow_function_flags): Update.
13170         (expand_builtin_unwind_init): Update.
13171         (expand_eh_return): Update.
13172         (convert_to_eh_region_ranges): Update.
13173         (output_function_exception_table): Update.
13174         * emit-rtl.c (gen_tmp_stack_mem): Update.
13175         * cfgexpand.c (expand_used_vars): Update.
13176         (tree_expand_cfg): Update.
13177         * cfgcleanup.c (rest_of_handle_jump): Update.
13178         * explow.c (allocate_dynamic_stack_space): Update.
13179         * varasm.c (assemble_start_function): Update.
13180         (force_const_mem): Update.
13181         (mark_constant_pool): Update.
13182         * tree-optimize.c (tree_rest_of_compilation): Update.
13183         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
13184         * tree-cfg.c (notice_special_calls): Update.
13185         (is_ctrl_altering_stmt): Update.
13186         (tree_can_make_abnormal_goto): Update.
13187         (tree_purge_dead_abnormal_call_edges): Update.
13188         * config/alpha/predicates.md: Update.
13189         * config/alpha/alpha.c (alpha_sa_mask): Update.
13190         (alpha_sa_size): Update.
13191         (alpha_does_function_need_gp): Update.
13192         (alpha_expand_prologue): Update.
13193         (alpha_start_function): Update.
13194         (alpha_output_function_end_prologue): Update.
13195         (alpha_expand_epilogue): Update.
13196         * config/frv/frv.c (frv_stack_info): Update.
13197         (frv_expand_epilogue): Update.
13198         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
13199         (s390_register_info): Update.
13200         (s390_frame_info): Update.
13201         (s390_init_frame_layout): Update.
13202         (s390_can_eliminate): Update.
13203         (save_gprs): Update.
13204         * config/spu/spu.c (spu_split_immediate): Update.
13205         (need_to_save_reg): Update.
13206         (spu_expand_prologue): Update.
13207         (spu_expand_epilogue): Update.
13208         * config/sparc/sparc.md: Update.
13209         * config/sparc/sparc.c (eligible_for_return_delay): Update.
13210         (sparc_tls_got): Update.
13211         (legitimize_pic_address): Update.
13212         (sparc_emit_call_insn): Update.
13213         (sparc_expand_prologue): Update.
13214         (output_return): Update.
13215         (print_operand): Update.
13216         (sparc_function_ok_for_sibcall): Update.
13217         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
13218         * config/m32r/m32r.md: Update.
13219         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
13220         (m32r_compute_frame_size): Update.
13221         (m32r_expand_prologue): Update.
13222         (m32r_expand_epilogue): Update.
13223         (m32r_legitimize_pic_address): Update.
13224         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
13225         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
13226         * config/i386/i386.c (ix86_frame_pointer_required): Update.
13227         (gen_push): Update.
13228         (ix86_save_reg): Update.
13229         (ix86_compute_frame_layout): Update.
13230         (ix86_expand_prologue): Update.
13231         (ix86_expand_epilogue): Update.
13232         * config/sh/sh.c (output_stack_adjust): Update.
13233         (calc_live_regs): Update.
13234         (sh5_schedule_saves): Update.
13235         (sh_expand_prologue): Update.
13236         (sh_expand_epilogue): Update.
13237         (sh_setup_incoming_varargs): Update.
13238         (sh_allocate_initial_value): Update.
13239         (sh_get_pr_initial_val): Update.
13240         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
13241         * config/sh/sh.md (label:): Update.
13242         * config/avr/avr.c (out_movhi_mr_r): Update.
13243         * config/crx/crx.h (enum): Update.
13244         * config/xtensa/xtensa.h (along): Update.
13245         * config/stormy16/stormy16.c Update.
13246         (xstormy16_compute_stack_layout): Update.
13247         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
13248         (fr30_expand_prologue): Update.
13249         * config/cris/cris.c (cris_conditional_register_usage): Update.
13250         (cris_reg_saved_in_regsave_area): Update.
13251         (cris_initial_frame_pointer_offset): Update.
13252         (cris_simple_epilogue): Update.
13253         (cris_expand_prologue): Update.
13254         (cris_expand_epilogue): Update.
13255         (cris_expand_pic_call_address): Update.
13256         (cris_asm_output_symbol_ref): Update.
13257         (cris_asm_output_label_ref): Update.
13258         * config/cris/cris.md Update.
13259         * config/iq2000/iq2000.c (compute_frame_size): Update.
13260         (iq2000_expand_epilogue): Update.
13261         * config/mt/mt.h (save_direction): Update.
13262         * config/mn10300/mn10300.c (mn10300_function_value): Update.
13263         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
13264         (ia64_secondary_reload_class): Update.
13265         * config/m68k/m68k.c (m68k_save_reg): Update.
13266         (m68k_expand_prologue): Update.
13267         (m68k_expand_epilogue): Update.
13268         (legitimize_pic_address): Update.
13269         * config/rs6000/rs6000.c (rs6000_got_register): Update.
13270         (first_reg_to_save): Update.
13271         (first_altivec_reg_to_save): Update.
13272         (compute_vrsave_mask): Update.
13273         (compute_save_world_info): Update.
13274         (rs6000_stack_info): Update.
13275         (spe_func_has_64bit_regs_p): Update.
13276         (rs6000_ra_ever_killed): Update.
13277         (rs6000_emit_eh_reg_restore): Update.
13278         (rs6000_emit_allocate_stack): Update.
13279         (rs6000_emit_prologue): Update.
13280         (rs6000_emit_epilogue): Update.
13281         (rs6000_output_function_epilogue): Update.
13282         (output_profile_hook): Update.
13283         (rs6000_elf_declare_function_name): Update.
13284         * config/rs6000/rs6000.h (rs6000_args): Update.
13285         * config/rs6000/rs6000.md: Update.
13286         * config/mcore/mcore.c (mcore_expand_prolog): Update.
13287         * config/arc/arc.c (arc_output_function_epilogue): Update.
13288         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
13289         * config/darwin.c (machopic_function_base_name): Update.
13290         * config/score/score3.c (score3_compute_frame_size): Update.
13291         (rpush): Update.
13292         (rpop): Update.
13293         (score3_epilogue): Update.
13294         * config/score/score7.c (score7_compute_frame_size): Update.
13295         (score7_prologue): Update.
13296         (score7_epilogue): Update.
13297         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
13298         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
13299         * config/arm/arm.c (use_return_insn): Update.
13300         (require_pic_register): Update.
13301         (arm_load_pic_register): Update.
13302         (arm_compute_save_reg0_reg12_mask): Update.
13303         (arm_compute_save_reg_mask): Update.
13304         (thumb1_compute_save_reg_mask): Update.
13305         (output_return_instruction): Update.
13306         (arm_output_function_prologue): Update.
13307         (arm_output_epilogue): Update.
13308         (arm_get_frame_offsets): Update.
13309         (arm_expand_prologue): Update.
13310         (thumb_pushpop): Update.
13311         (thumb_exit): Update.
13312         (thumb1_expand_prologue): Update.
13313         (thumb1_expand_epilogue): Update.
13314         (arm_unwind_emit): Update.
13315         (arm_output_fn_unwind): Update.
13316         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
13317         * config/arm/arm.md: Update.
13318         * config/pa/pa.md: Update.
13319         * config/pa/pa.c (legitimize_pic_address): Update.
13320         (compute_frame_size): Update.
13321         (hppa_expand_prologue): Update.
13322         (hppa_expand_epilogue): Update.
13323         (borx_reg_operand): Update.
13324         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
13325         (HARD_REGNO_RENAME_OK): Update.
13326         * config/mips/mips.c (mips_global_pointer): Update.
13327         (mips_save_reg_p): Update.
13328         (mips_compute_frame_info): Update.
13329         (mips_frame_pointer_required): Update.
13330         (mips_expand_prologue): Update.
13331         (mips_expand_epilogue): Update.
13332         (mips_can_use_return_insn): Update.
13333         (mips_reorg_process_insns): Update.
13334         * config/v850/v850.c (compute_register_save_size): Update.
13335         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
13336         * config/mmix/mmix.c (along): Update.
13337         (mmix_expand_epilogue): Update.
13338         * config/bfin/bfin.c (legitimize_pic_address): Update.
13339         (must_save_p): Update.
13340         (stack_frame_needed_p): Update.
13341         (add_to_reg): Update.
13342         (bfin_expand_prologue): Update.
13343         * stmt.c (expand_asm_operands): Update.
13344         * reload1.c (reload): Update.
13345         (init_elim_table): Update.
13346
13347 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
13348
13349         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
13350
13351 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
13352
13353         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
13354         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
13355         (mov<mode>): Removed.
13356         (*movv4sf_internal): Likewise.
13357         (*movv2df_internal): Likewise.
13358
13359 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
13360
13361         * config.gcc (crx-*-elf): Remove deprecation.
13362
13363 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
13364
13365         * config/i386/cygming-crtend.c (register_frame_ctor): Register
13366         __gcc_deregister_frame with atexit.
13367         (deregister_frame_dtor): Remove.
13368
13369 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
13370             Nathan Sidwell  <nathan@codesourcery.com>
13371
13372         * config/rs6000/rs6000.opt (mspe): Remove Var property.
13373         (misel): Likewise.
13374         * config/rs6000/rs6000.h (rs6000_spe): Declare.
13375         (rs6000_isel): Likewise.
13376         * config/rs6000/rs6000.c (rs6000_spe): New variable.
13377         (rs6000_isel): New variable.
13378         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
13379
13380 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
13381
13382         PR c++/35758
13383         * c-common.c (handle_vector_size_attribute): Call
13384         lang_hooks.types.reconstruct_complex_type instead of
13385         reconstruct_complex_type.
13386         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
13387         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
13388         * langhooks.h (struct lang_hooks_for_types): Add
13389         reconstruct_complex_type hook.
13390         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
13391         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
13392
13393 2008-04-24  Richard Guenther  <rguenther@suse.de>
13394
13395         * c-common.h (check_builtin_function_arguments): Declare.
13396         * c-common.c (validate_nargs): New function.
13397         (check_builtin_function_arguments): Likewise.
13398         * c-typeck.c (build_function_call): Call
13399         check_builtin_function_arguments.
13400         * builtins.c (fold_builtin_classify): Remove error reporting code.
13401         (fold_builtin_unordered_cmp): Likewise.
13402         (fold_builtin_1): Likewise.
13403         (fold_builtin_n): Likewise.
13404
13405 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
13406
13407         PR tree-optimization/36008
13408         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
13409         the original op1, rather than delta by step.
13410
13411 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
13412             Sebastian Pop  <sebastian.pop@amd.com>
13413
13414         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
13415         eliminate_local_variables_stmt, eliminate_local_variables,
13416         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
13417         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
13418         of code delimited by two edges in the CFG.
13419         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
13420         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
13421         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
13422         the case of parallelisation of reductions.
13423         (expr_invariant_in_region_p): New.
13424
13425         * tree-flow.h (gather_blocks_in_sese_region): Declared.
13426         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
13427
13428 2008-04-24  Ira Rosen  <irar@il.ibm.com>
13429             Richard Guenther  <rguenther@suse.de>
13430
13431         PR tree-optimization/36034
13432         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
13433         incapable of dealing with loads with gaps.
13434
13435 2008-04-24  Rafael Espindola  <espindola@google.com>
13436
13437         * tree-flow.h (vrp_evaluate_conditional): Change signature.
13438         * tree-ssa-propagate.c (fold_predicate_in): Update call to
13439         vrp_evaluate_conditional.
13440         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
13441         (vrp_evaluate_conditional): Split the cond argument.
13442         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
13443         (simplify_stmt_for_jump_threading): Update call to
13444         vrp_evaluate_conditional.
13445
13446 2008-04-24  Ira Rosen  <irar@il.ibm.com>
13447
13448         PR tree-optimization/35982
13449         * tree-vect-analyze.c (vect_check_interleaving): Check that the
13450         interleaved data-refs are of the same type.
13451
13452 2008-04-24  Danny Smith  <dannysmith@users.net>
13453
13454         * c-format.c (check_format_info_main): Use strncmp rather than a
13455         magic prefix to handle multichar length specs.
13456         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
13457         Don't prefix "I64" and "I32" with '\0'.
13458
13459 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
13460
13461         PR target/36015
13462         * config/i386/i386.c (init_cumulative_args): Don't pass anything
13463         in registers for -m32 only if stdarg_p (fntype).
13464
13465 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
13466
13467         PR rtl-optimization/36006
13468         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
13469         temp to op0 in order to avoid invalid rtx sharing.
13470
13471 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
13472
13473         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
13474         check TREE_INVARIANT.
13475         * tree-gimple.c (is_gimple_address): New.
13476         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
13477         * tree-gimple.h (is_gimple_address): New.
13478         * tree.h (decl_address_invariant_p): New.
13479         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
13480         (build_string): Likewise.
13481         (decl_address_invariant_p): New, from is_gimple_invariant_address.
13482         (tree_invariant_p_1): Likewise.
13483         (save_expr): Use it.
13484         (tree_invariant_p): New.
13485         (skip_simple_arithmetic): Use it.
13486         (stabilize_reference_1): Use it.
13487         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
13488         simplify.
13489         (build1_stat): Drop code to compute TREE_INVARIANT.
13490         (build2_stat): Drop code to compute TREE_INVARIANT.
13491         (build3_stat): Drop code to compute TREE_INVARIANT.
13492         (build4_stat): Drop code to compute TREE_INVARIANT.
13493         (build5_stat): Drop code to compute TREE_INVARIANT.
13494         (build7_stat): Drop code to compute TREE_INVARIANT.
13495         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
13496         * tree.h (struct tree_base): Remove invariant_flag.
13497         (TREE_INVARIANT): Remove.
13498         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
13499         (fold_builtin_expect): Check TREE_CONSTANT.
13500         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
13501         * c-tree.h (c_expr_to_decl): Drop third parameter.
13502         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
13503         (build_c_cast): Don't set TREE_INVARIANT.
13504         (pop_init_level): Don't set TREE_INVARIANT.
13505         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
13506         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
13507         TREE_CONSTANT.
13508         (gimplify_init_constructor): Don't set TREE_INVARIANT.
13509         (gimplify_addr_expr): Adjust comment.
13510         * tree-mudflap.c (mf_build_string):
13511         * print-tree.c (print_node): Don't print TREE_INVARIANT.
13512         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
13513         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
13514         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
13515         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
13516         * langhooks.h (struct lang_hooks): Drop third parameter from
13517         expr_to_decl.
13518
13519 2008-04-23  Richard Guenther  <rguenther@suse.de>
13520
13521         PR tree-optimization/27799
13522         PR tree-optimization/32921
13523         PR tree-optimization/32624
13524         * tree-ssa-structalias.c (merge_smts_into): Only merge the
13525         SMTs aliases and the tag itself into the solution.
13526         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
13527         merge the points-to solution back into the SMT aliases.
13528         (may_alias_p): Use alias_set_subset_of instead of
13529         aliases_conflict_p.  A pointer which points to
13530         memory with alias set zero may access any variable.
13531
13532 2008-04-23  Richard Guenther  <rguenther@suse.de>
13533
13534         * alias.c (alias_set_subset_of): Correctly handle asking
13535         if zero is a subset of an alias set with zero child.
13536         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
13537         (compute_flow_insensitive_aliasing): Correctly walk all
13538         pointers.  Do not unnecessarily union sets.
13539
13540 2008-04-23  Richard Guenther  <rguenther@suse.de>
13541
13542         PR middle-end/36021
13543         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
13544
13545 2008-04-22  Tomas Bily  <tbily@suse.cz>
13546
13547         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
13548         unreachable case.
13549         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
13550         NON_LVALUE_EXPR.
13551         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
13552         * tree-ssa-structalias.c (get_constraint_for): Likewise.
13553         * tree-inline.c (estimate_num_insns_1): Likewise.
13554         * varasm.c (const_hash_1, compare_constant, copy_constant)
13555         (compute_reloc_for_constant, output_addressed_constants): Likewise.
13556         * emit-rtl.c (component_ref_for_mem_expr)
13557         (set_mem_attributes_minus_bitpos): Likewise.
13558         * expr.c (highest_pow2_factor, expand_expr_real_1, )
13559         (is_aligning_offset): Likewise.
13560         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
13561         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
13562         * dojump.c (do_jump): Likewise.
13563         * builtins.c (get_pointer_alignment, get_memory_rtx)
13564         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
13565         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
13566
13567 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
13568
13569         PR rtl-optimization/36017
13570         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
13571         expanding the library call.
13572
13573 2008-04-22  Ian Lance Taylor  <iant@google.com>
13574
13575         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
13576         than size_in_bytes.
13577
13578 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
13579
13580         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
13581         of LR/CTR moves for Power6.
13582
13583 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
13584
13585         PR middle-end/36003
13586         * passes.c (init_optimization_passes): Remove
13587         pass_fast_rtl_byte_dce.
13588
13589 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
13590
13591         PR target/29096
13592         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
13593         builtin functions to generate faster code.
13594         (_mm_cvtpu16_ps): Ditto.
13595         (_mm_cvtpi32x2_ps): Ditto.
13596
13597 2008-04-22  Nick Clifton  <nickc@redhat.com>
13598
13599         * common.opt (ftree-loop-distribution): Add Optimization
13600         attribute.
13601
13602         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
13603         (frv_expand_builtin_va_start): Likewise.
13604
13605         * config/arm/arm.c (thumb_find_work_register): Fix location of
13606         argument register count.
13607
13608 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
13609
13610         Support scheduling for ColdFire V1 and V3 microarchitecture.
13611         Improve scheduling of multiplication instructions.
13612
13613         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
13614         (mac): New instruction attribute.
13615         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
13616         (m68k_sched_mac): New variable.
13617         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
13618         Handle cfv1 and cfv3.
13619         (max_insn_size): New static variable.
13620         (struct _sched_ib): New type.
13621         (sched_ib): New static variable.
13622         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
13623         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
13624         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
13625         Update.
13626         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
13627         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
13628         new variables.  Update.
13629         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
13630         Add modeling of cfv3 instruction buffer.  Update.
13631         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
13632         * config/m68k/m68k.h (TUNE_CFV3): New macro.
13633         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
13634         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
13635         a particular reservation applies to.
13636         (type2): Reorganize attribute values.  Rename alu to alu_reg,
13637         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
13638         to mul_l and mul_w.
13639         (cf_ib_*): Simplify description of instruction buffer.
13640         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
13641         (cf_mem): Split into cf_mem1 and cf_mem2.
13642         (cf_v2_move_??): Rename to cfv12_alu_??.
13643         (cf_v2_move_l_??): Rename to cfv12_omove_??.
13644         (cf_v2_mul_??): Remove reservations.
13645         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
13646         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
13647         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
13648         appropriate place.
13649         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
13650         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
13651         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
13652         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
13653         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
13654         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
13655         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
13656         expansions of the above reservations for instructions of sizes
13657         1, 2 and 3 words.
13658
13659 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
13660
13661         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
13662
13663 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
13664
13665         * coverage.c: Include tree-pass.h.
13666         (coverage_counter_alloc): Print da_file_name to the dump file.
13667
13668 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
13669
13670         * sbitmap.c (sbitmap_range_empty_p): New function.
13671         * sbitmap.h (sbitmap_range_empty_p): New function.
13672         * bitmap.h: Now includes obstack.h.
13673
13674 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
13675             Kenneth Zadeck  <zadeck@naturalbridge.com>
13676
13677         * dbgcnt.def (ra_byte_scan): Added.
13678         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
13679         when the last hit happens for a counter.
13680         * timevar.def (TV_DF_BYTE_LR): New variable.
13681         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
13682         * passes.c (pass_fast_rtl_byte_dce): New pass.
13683         * fwprop.c (update_df): Added mode to call df_ref_create.
13684         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
13685         DF_REF_EXTRACT_OFFSET.
13686         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
13687         DF_BYTE_LR_OUT, df_byte_lr): New macro.
13688         (df_mm): New enum.
13689         (df_ref_extract): Added mode field.
13690         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
13691         DF_REF_EXTRACT_OFFSET.
13692         (DF_REF_EXTRACT_MODE): New macro.
13693         (df_byte_lr_bb_info): New structure.
13694         (df_print_byte_regset, df_compute_accessed_bytes,
13695         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
13696         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
13697         df_byte_lr_simulate_uses,
13698         df_byte_lr_simulate_artificial_refs_at_top,
13699         df_byte_lr_simulate_artificial_refs_at_end,
13700         df_compute_accessed_bytes): New function.
13701         (df_ref_create): Add parameter.
13702         (df_byte_lr_get_bb_info): New inline function.
13703         * df-scan.c (df_ref_record, df_uses_record,
13704         df_ref_create_structure): Added mode parameter.
13705         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
13706         df_defs_record, df_uses_record, df_get_conditional_uses,
13707         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
13708         df_entry_block_defs_collect, df_exit_block_uses_collect):
13709         Added mode parameter to calls to df_ref_record, df_uses_record,
13710         df_ref_create_structure.
13711         (df_ref_equal_p, df_ref_compare): Added test for modes.
13712         (df_ref_create_structure): Added code to set mode.  Renamed
13713         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
13714         DF_REF_EXTRACT_OFFSET.
13715         * df-core.c (df_print_byte_regset): New function.
13716         * df-byte-scan.c: New file.
13717         * df-problems.c (df_rd_transfer_function): Removed unnecessary
13718         calls to BITMAP_FREE.
13719         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
13720         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
13721         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
13722         df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
13723         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
13724         df_byte_lr_local_compute, df_byte_lr_init,
13725         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
13726         df_byte_lr_transfer_function, df_byte_lr_free,
13727         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
13728         df_byte_lr_add_problem, df_byte_lr_simulate_defs,
13729         df_byte_lr_simulate_uses,
13730         df_byte_lr_simulate_artificial_refs_at_top,
13731         df_byte_lr_simulate_artificial_refs_at_end): New function.
13732         * dce.c (byte_dce_process_block): New function.
13733         (dce_process_block): au is now passed in rather than computed
13734         locally.  Changed loops that look at artificial defs to not look
13735         for conditional or partial ones, because there never are any.
13736         (fast_dce): Now is able to drive byte_dce_process_block or
13737         dce_process_block depending on the kind of dce being done.
13738         (rest_of_handle_fast_dce): Add parameter to fast_dce.
13739         (rest_of_handle_fast_byte_dce): New function.
13740         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
13741         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
13742
13743 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
13744
13745         PR fortran/35019
13746         * gcc.h: Added fortran options that take arguments to
13747         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
13748         macros.
13749
13750 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
13751
13752         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
13753         scalarization if on the LHS and not a full access.
13754
13755 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13756
13757         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
13758
13759 2008-04-18  Rafael Espindola  <espindola@google.com>
13760
13761         * tree-vrp.c (find_case_label_index): Fix the binary search.
13762         (find_case_label_range): New.
13763         (vrp_visit_switch_stmt): Use find_case_label_range.
13764         (simplify_switch_using_ranges): Use find_case_label_range.
13765
13766 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
13767
13768         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
13769         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
13770
13771 2008-04-18  Tom Tromey  <tromey@redhat.com>
13772
13773         PR libcpp/15500:
13774         * doc/cpp.texi (Implementation-defined behavior): Mention
13775         -finput-charset.
13776
13777 2008-04-18  Ian Lance Taylor  <iant@google.com>
13778
13779         * fold-const.c (pointer_may_wrap_p): New static function.
13780         (fold_comparison): Add another test for pointer overflow.  Use
13781         pointer_may_wrap_p to disable some false positives.
13782
13783 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
13784
13785         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
13786         (fname_as_string): Match updated cpp_interpret_string prototype.
13787         (fix_string_type): Support char16_t* and char32_t*.
13788         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
13789         derivative) nodes.  Register as builtin if C++0x.
13790         (c_parse_error): Support CPP_CHAR{16,32}.
13791         * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
13792         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
13793         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
13794         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
13795         CTI_CHAR32_ARRAY_TYPE>: New elements.
13796         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
13797         char32_type_node, signed_char32_type_node, char16_array_type_node,
13798         char32_array_type_node): New defines.
13799         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
13800         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
13801         (lex_string): Support CPP_STRING{16,32}, match updated
13802         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
13803         (lex_charconst): Support CPP_CHAR{16,32}.
13804         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
13805         and CPP_STRING{16,32}.
13806
13807 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
13808
13809         PR bootstrap/35457
13810         * aclocal.m4: Regenerate.
13811         * configure: Regenerate.
13812
13813 2008-04-18  Jan Hubicka  <jh@suse.cz>
13814
13815         * except.c (dw2_size_of_call_site_table,
13816         sjlj_size_of_call_site_table): Use vector API for call_site_record.
13817
13818         * cgraphbuild.c (build_cgraph_edges): Update.
13819         * tree-pass.h: Update comment.
13820         * final.c (leaf_function_p): Update.
13821         (leaf_renumber_regs): Update.
13822         (rest_of_clean_state): Update.
13823         * omp-low.c (expand_omp_parallel): Update.
13824         * ipa-reference.c (analyze_function): Update.
13825         * reorg.c (find_end_label): Update.
13826         (optimize_skip): Update.
13827         (fill_simple_delay_slots): Update.
13828         (fill_simple_delay_slots): Update.
13829         (make_return_insns): Update.
13830         (dbr_schedule): Update.
13831         * gimple-low.c (record_vars_into): Update.
13832         * cfgbuild.c (make_edges): Update.
13833         * function.c (assign_stack_local): Update.
13834         (assign_parm_adjust_stack_rtl): Update.
13835         (locate_and_pad_parm): Update.
13836         (allocate_struct_function): Do not initialize stack_alignment_needed
13837         and preferred_stack_boundary here.
13838         (stack_protect_prologue): Update.
13839         (stack_protect_epilogue): Update.
13840         (expand_function_start): Initialize stack_alignment_needed,
13841         preferred_stack_boundary and max_jumptable_ents.
13842         (expand_function_end): Update.
13843         (free_after_compilation): Do not NULLify epilogue_delay_list.
13844         * function.h (struct rtl_data): Add stack_protect_guard,
13845         stack_alignment_needed,
13846         preferred_stack_boundary, epilogue_delay_list.
13847         (struct function): Remove value_histograms, stack_alignment_needed,
13848         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
13849         last_label_uid,
13850         unexpanded_var_list, stack_protect_guard.
13851         (current_function_epilogue_delay_list): Remove.
13852         * ipa-type-escape.c (analyze_function): Update.
13853         * gimplify.c (pop_gimplify_context): Update comment.
13854         * calls.c (expand_call): Update.
13855         (emit_library_call_value_1): Update.
13856         * except.c (set_nothrow_function_flags): Update.
13857         * cfgexpand.c (get_decl_align_unit): Update.
13858         (create_stack_guard): Update.
13859         (estimated_stack_frame_size): Update.
13860         (expand_used_vars): Update.
13861         (tree_expand_cfg): Free histogram earliers, init expansion variables.
13862         * explow.c (allocate_dynamic_stack_space): Update.
13863         * tree-ssa-live.c (remove_unused_locals): Update.
13864         * varasm.c (mark_constant_pool): Update.
13865         * tree-inline.c (remap_decls): Update.
13866         (initialize_cfun): Update.
13867         (declare_return_variable): Update.
13868         (inline_forbidden_p): Update.
13869         (expand_call_inline): Update.
13870         (declare_inline_vars): Update.
13871         (tree_function_versioning): Update.
13872         * tree-flow.h (value_histograms): New.
13873         (VALUE_HISTOGRAMS): New macro.
13874         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
13875         last_label_uid.
13876         * tree-cfg.c (set_bb_for_stmt): Update.
13877         (replace_by_duplicate_decl): Update.
13878         (move_block_to_fn): Update.
13879         (new_label_mapper): Update.
13880         (dump_function_to_file): Update.
13881         * ipa-struct-reorg.c (build_data_structure): Update.
13882         * cfgrtl.c (print_rtl_with_bb): Update.
13883         * reload1.c (reload): Update.
13884         (reload): Update.
13885         * config/i386/i386.c (setup_incoming_varargs_64,
13886         ix86_compute_frame_layout): Update.
13887         * config/arc/arc.c (arc_output_function_epilogue): Update.
13888
13889 2008-04-18  Marius Strobl <marius@FreeBSD.org>
13890
13891         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
13892         for FreeBSD as well.
13893         * gthr-posix95.h: Likewise.
13894
13895 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
13896
13897         PR rtl-optimization/35838
13898         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
13899         out the byte offset of the first subreg.
13900
13901 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
13902
13903         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
13904         to split_ti instead of three separate calls with single member arrays.
13905         (subti3 splitter): Ditto.
13906         (adddi3 splitter): Ditto with split_di.
13907         (subdi3 splitter): Ditto.
13908         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
13909         two separate calls with single member arrays.  Swap match_dup
13910         operands 1 and 2 to better fit into the array.
13911         (negdi2 splitter): Ditto with split_di.
13912         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
13913         two separate calls with single member arrays.  Swap match_dup operands
13914         6 and 7 to better fit into the array.
13915
13916 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
13917
13918         * config/i386/i386.c (sse_builtin_type): New.
13919         (bdesc_sse_args): Likewise.
13920         (bdesc_sse_3arg): Removed.
13921         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
13922         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
13923         IX86_BUILTIN_ROUNDPS.
13924         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
13925         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
13926         IX86_BUILTIN_ROUNDPS.
13927         (ix86_expand_sse_4_operands_builtin): Removed.
13928         (ix86_expand_sse_operands_builtin): New.
13929         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
13930         and CODE_FOR_sse4_1_roundps.
13931         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
13932         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
13933
13934 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
13935
13936         PR target/35907
13937         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
13938         regs before frame pop when needed.  If use_backchain_to_restore_sp
13939         then load backchain into a temp reg to restore vr and vrsave.  Add
13940         code to restore vr after frame pop if possible.
13941
13942 2008-04-17  Richard Guenther  <rguenther@suse.de>
13943
13944         * tree-vn.c (expressions_equal_p): Do not check type
13945         equality or compatibility before calling operand_equal_p.
13946         * fold-const.c (operand_equal_p): Check equivalence of
13947         integer constants before bailing out due to signedness or
13948         precision differences.
13949         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
13950         spurious differences in type qualification.  Ignore types
13951         for COMPONENT_REFs at all.
13952
13953 2008-04-17  Christian Bruel  <christian.bruel@st.com>
13954
13955         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
13956         msw_skip comparison.
13957
13958 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
13959
13960         PR c/35739
13961         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
13962         reg type.
13963
13964         PR tree-optimization/35899
13965         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
13966         rather than TREE_OPERAND.
13967
13968 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
13969
13970         PR target/35944
13971         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
13972         temporary registers.  Change operand predicate to general_operand.
13973         (remainderxf3): Ditto.
13974
13975 2008-04-16  Richard Guenther  <rguenther@suse.de>
13976
13977         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
13978         * tree-affine.c (aff_combination_expand): Look through some
13979         conversions.
13980
13981 2008-04-15  Doug Kwan  <dougkwan@google.com>
13982
13983         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
13984         for hex printing.
13985         * tree-pretty-print.c (dump_generic_node): Ditto.
13986         * final.c (output_addr_const): Ditto.
13987         * dwarf2out.c (output_cfi): Ditto.
13988         * c-pretty-print.c (pp_c_integer_constant): Ditto.
13989         * print-rtl.c (print_rtx): Ditto.
13990         * print-tree.c (print_node_brief, print_node): Ditto.
13991         * c-common.c (match_case_to_enum_1): Ditto.
13992         * sched-vis.c (print_value): Ditto.
13993         * config/i386/i386.c (print_operand): Cast to long unsigned int
13994         for hex printing.
13995
13996 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
13997         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
13998         MS Windows VirtualProtect function.
13999
14000 2008-04-15  Jan Hubicka  <jh@suse.cz>
14001
14002         * gengtype.c (write_root): Param_is argument is OK.
14003         * expr.c (expand_expr_real_1): Update call of get_exception_*.
14004         * function.h: Include varray.h
14005         (rtl_eh): New stucture based on except.c one.
14006         (call_site_record): New forward declaration and vector type.
14007         * calls.c (emit_call_1): Do not call
14008         note_current_region_may_contain_throw.
14009         * except.c (eh_status): Remove cur_region, try_region since they are
14010         unused.
14011         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
14012         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
14013         sjlj_fc, sjlj_exit_after to rth_eh in function.h.
14014         Remove call_site_data_used, call_site_data_size.
14015         Turn call_site_record into vector in function.h.
14016         (note_current_region_may_contain_throw): Remove.
14017         (get_exception_pointer, get_exception_filter): Do not take struct
14018         function argument; update.
14019         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
14020         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
14021         build_post_landing_pads, dw2_build_landing_pads,
14022         sjlj_assign_call_site_values, sjlj_mark_call_sites,
14023         sjlj_emit_function_enter, sjlj_emit_function_enter,
14024         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
14025         sjlj_build_landing_pads, finish_eh_generation,
14026         remove_exception_handler_label, remove_eh_handler,
14027         maybe_remove_eh_handler, add_reachable_handler,
14028         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
14029         add_action_record, collect_one_action_chain, add_call_site,
14030         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
14031         sjlj_output_call_site_table, output_function_exception_table,
14032         * except.h (note_current_region_may_contain_throw): Remove
14033         (get_exception_pointer, get_exception_filter): Do not take struct
14034         function argument.
14035         * Makefile.in (GTFILES): Put varargs before struct function.
14036
14037 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
14038
14039         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
14040         punt for STRING_CST.
14041         (get_constraint_for): Deal with STRING_CST here instead.
14042
14043 2008-04-15  Richard Guenther  <rguenther@suse.de>
14044
14045         * tree-ssa-propagate.c (substitute_and_fold): Substitute
14046         statements in a basic-block with a backward walk.  Do not
14047         substitute into dead statements but instead remove those.
14048
14049 2008-04-15  Richard Guenther  <rguenther@suse.de>
14050
14051         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
14052         to zero, thus disable creation of SFTs.
14053
14054 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
14055
14056         * tree-predcom.c (suitable_reference_p): Return false if the
14057         reference can throw.
14058
14059 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
14060
14061         PR c/35751
14062         * c-decl.c (finish_decl): If extern or static var has variable
14063         size, set TREE_TYPE (decl) to error_mark_node.
14064
14065 2008-04-15  Rafael Espindola  <espindola@google.com>
14066
14067         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
14068         variable arg1.
14069
14070 2008-04-15  Richard Guenther  <rguenther@suse.de>
14071
14072         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
14073         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
14074         (visit_reference_op_load): Do walk vuse-vdef chains on
14075         vn_reference_lookup.
14076         (visit_reference_op_store): But do not here.
14077         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
14078         vn_reference_lookup.
14079         (vn_lookup_with_vuses): But do so here.
14080
14081 2008-04-14  Ian Lance Taylor  <iant@google.com>
14082
14083         * fold-const.c (fold_overflow_warning): Remove assertion.
14084
14085 2008-04-15  Ben Elliston  <bje@au.ibm.com>
14086
14087         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
14088         temp1 local variables.
14089
14090 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
14091
14092         PR target/35661
14093         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
14094         ".text.unlikely" section as executable.
14095
14096 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
14097
14098         * config/ia64/ia64.c (rtx_needs_barrier): Handle
14099         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
14100         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
14101         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
14102         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
14103         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
14104         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
14105
14106 2008-04-14  Ian Lance Taylor  <iant@google.com>
14107
14108         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
14109         * fold-const.c (fold_comparison): If appropriate, test
14110         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
14111         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
14112         reassociating a pointer type.
14113         * doc/invoke.texi (Optimize Options): Document that
14114         -fstrict-overflow applies to pointer wraparound.
14115
14116 2008-04-13  Jan Hubicka  <jh@suse.cz>
14117
14118         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
14119
14120 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
14121
14122         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
14123         we are going to "save the world".
14124
14125 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
14126
14127         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
14128         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
14129         operand 0 constraint, not "=".
14130
14131 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
14132
14133         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
14134
14135 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
14136
14137         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
14138         of size of positions_needed * CHAR_BIT.
14139
14140 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
14141
14142         PR middle-end/35897
14143         * dse.c (store_info): Change positions_needed to unsigned
14144         HOST_WIDE_INT.
14145         (lowpart_bitmask): New.
14146         (record_store): Cast to unsigned HOST_WIDE_INT for
14147         positions_needed.  Assert width <= size of positions_needed *
14148         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
14149         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
14150         lowpart_bitmask to set mask.
14151
14152 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
14153
14154         * config/bfin/constraints.md: New file.
14155         * config/bfin/bfin.md: Include it.
14156         (adddi3): Use satisfies_constraint functions instead of the old macros.
14157         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
14158         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
14159         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
14160         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
14161         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
14162         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
14163         EXTRA_CONSTRAINT): Delete.
14164         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
14165         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
14166         of the old macros.
14167         * config/bfin/bfin.c: Include "tm-constrs.h".
14168         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
14169         Use satisfies_constraint functions instead of the old macros.
14170         * doc/md.texi (Blackfin Constraints): Update file name reference.
14171
14172 2008-04-11  Richard Guenther  <rguenther@suse.de>
14173
14174         PR tree-optimization/35869
14175         * tree-vrp.c (execute_vrp): Move switch statement update after
14176         jump threading.  Schedule another cfg cleanup run.
14177
14178 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
14179
14180         PR c/35744
14181         * attribs.c (decl_attributes): Return early on errorneous node.
14182
14183 2008-04-10  Oleg Ryjkov  <olegr@google.com>
14184
14185         * tree.h (struct tree_base): Added a new flag default_def_flag.
14186         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
14187
14188 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
14189
14190         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
14191
14192 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14193
14194         PR target/35768
14195         * pa.md: Define mode iterator P.  Define mode attribute dwc.
14196         (dcacheflush): Update pattern to use iterator P and attribute dwc.
14197         (icacheflush): Likewise.
14198         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
14199         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
14200
14201 2008-04-11  Ben Elliston  <bje@au.ibm.com>
14202
14203         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
14204
14205 2008-04-10  Rafael Espindola  <espindola@google.com>
14206
14207         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
14208         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
14209         (extract_range_from_expr): The same.
14210
14211 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
14212
14213         * config/mips/mips.md (GPR2): New mode iterator.
14214         (seq): Add comment.
14215         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
14216         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
14217         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
14218         Rewrite these to take two modes, the mode of comparison and the
14219         mode of the destination.
14220         * config/mips/mips.c (mips_expand_scc): Instead of having
14221         paradoxical subreg as destination, expand "narrowing" scc if mode
14222         of comparison is SI and target is requested in DI mode.
14223         (mips_emit_int_order_test): Update comment.  Make mode of
14224         comparison match CMP0 rather than TARGET.  When creating inverse
14225         target use mode of TARGET.
14226
14227 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
14228
14229         * gcov-dump.c (tag_summary): Only print summaries for the first
14230         GCOV_COUNTERS_SUMMABLE counters.
14231
14232 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
14233
14234         * config/i386/i386.md (absneg): New code iterator.
14235         (absnegprefix): New code attribute.
14236         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
14237         patterns using absneg code iterator.
14238         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
14239         using absneg code iterator.
14240         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
14241         *neg<mode>2 patterns using absneg code iterator.
14242         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
14243         *negextendsfdf2 patterns using absneg code iterator.
14244         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
14245         *negextendsfxf2 patterns using absneg code iterator.
14246         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
14247         *negextendsfdf2 patterns using absneg code iterator.
14248         * config/i386/sse.md (<code><mode>2): Macroize expander from
14249         abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
14250
14251 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
14252
14253         * config/s390/s390.h: Remove the remains of the recent search
14254         & replace action of current_function_outgoing_args_size.
14255
14256 2008-04-10  Ira Rosen  <irar@il.ibm.com>
14257
14258         PR tree-optimization/35821
14259         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
14260         NEW_STMT_LIST is not NULL.
14261
14262 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
14263
14264         PR libstdc++/35597
14265         * toplev.c (process_options): Remove -ffunction-sections debugging
14266         warning.
14267
14268 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
14269
14270         PR middle-end/PR28690
14271         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
14272         than gen_rtx_fmt_ee to perform more canonicalizations.
14273
14274 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14275
14276         PR driver/35665
14277         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
14278
14279 2008-04-09  Richard Guenther  <rguenther@suse.de>
14280
14281         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
14282         (dump_function_to_file): Dump function arguments with types.
14283
14284 2008-04-08  Richard Guenther  <rguenther@suse.de>
14285
14286         * fold-const.c (fold_widened_comparison): Do not allow
14287         sign-changes that change the result.
14288
14289 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
14290
14291         PR target/35839
14292         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
14293         kinds of indirect references.
14294
14295 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
14296
14297         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
14298         GNU Fortran language string.
14299
14300 2008-04-08  Rafael Espindola  <espindola@google.com>
14301
14302         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
14303         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
14304         * tree.h (tree_call_nonnegative_warnv_p): New.
14305
14306 2008-04-08  Jan Hubicka  <jh@suse.cz>
14307
14308         * function.c (free_after_compilation): Clear out regno_reg_rtx
14309         pointer.
14310
14311 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
14312
14313         Revert
14314         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
14315
14316         PR middle-end/PR28690
14317         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
14318         same precedence as REG_POINTER and MEM_POINTER operands.
14319
14320 2008-04-08  Richard Guenther  <rguenther@suse.de>
14321
14322         PR middle-end/35834
14323         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
14324         for adding index to base.
14325
14326 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
14327
14328         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
14329         (MINGW_ENABLE_EXECUTE_STACK): New.
14330         (IN_LIBGCC2): For libgcc include windows.h file for
14331         function declarations.
14332
14333 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
14334
14335         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
14336         and tem2 if tem1 is not a REG or MULT.
14337
14338 2008-04-08  Jan Hubicka  <jh@suse.cz>
14339
14340         * function.h (incomming_args): Break out of struct function.
14341         (function_subsections): Break out of struct function.
14342         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
14343         return_rtx and hard_reg_initial_vals from struct function.
14344         Kill inl_max_label_num.
14345         (current_function_pops_args, current_function_args_info,
14346         current_function_args_size, current_function_args_size,
14347         current_function_pretend_args_size,
14348         current_function_outgoing_args_size,
14349         current_function_internal_arg_pointer, current_function_return_rtx):
14350         Kill compatibility accestor macros.
14351         * builtins.c (expand_builtin_apply_args_1): Update.
14352         (expand_builtin_next_arg): Update.
14353         * df-scan.c (df_get_call_refs): Update.
14354         * dbxout.c (dbxout_function_end): Update.
14355         * dwarf2out.c (dwarf2out_switch_text_section): Update.
14356         (output_line_info): Update.
14357         (secname_for_decl): Update.
14358         (dwarf2out_var_location): Update.
14359         * function.c (free_after_compilation): Update.
14360         (assign_parm_find_stack_rtl): Update.
14361         (assign_parms): Update.
14362         (expand_dummy_function_end): Update.
14363         (expand_function_end): Update.
14364         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
14365         (expand_call): Update.
14366         (emit_library_call_value_1): Update.
14367         (store_one_arg): Update.
14368         * varasm.c (initialize_cold_section_name): Update.
14369         (unlikely_text_section): Update.
14370         (unlikely_text_section_p): Update.
14371         (assemble_start_function): Update.
14372         (assemble_end_function): Update.
14373         (default_section_type_flags): Update.
14374         (switch_to_section): Update.
14375         * integrate.c (set_decl_abstract_flags): Update.
14376         (get_hard_reg_initial_val): Update.
14377         (has_hard_reg_initial_val): Update.
14378         (allocate_initial_values): Update.
14379         * resource.c (init_resource_info): Update.
14380         * config/alpha/alpha.c (NUM_ARGS): Update.
14381         (direct_return): Update.
14382         (alpha_va_start): Update.
14383         (alpha_sa_size): Update.
14384         (alpha_initial_elimination_offset): Update.
14385         (alpha_expand_prologue): Update.
14386         (alpha_start_function): Update.
14387         (alpha_expand_epilogue): Update.
14388         (unicosmk_initial_elimination_offset):
14389         * config/alpha/alpha.md (call expander): Update.
14390         * config/s390/s390.c (s390_register_info): Update.
14391         (s390_register_info): Update.
14392         (s390_frame_info): Update.
14393         (s390_initial_elimination_offset): Update.
14394         (s390_build_builtin_va_list): Update.
14395         (s390_va_start): Update.
14396         * config/spu/spu.c (direct_return): Update.
14397         (spu_expand_prologue): Update.
14398         (spu_initial_elimination_offset): Update.
14399         (spu_build_builtin_va_list): Update.
14400         (spu_va_start): Update.
14401         * config/sparc/sparc.c (sparc_init_modes): Update.
14402         (sparc_compute_frame_size): Update.
14403         (function_value): Update.
14404         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
14405         * config/i386/i386.md (return expander): Update.
14406         * config/i386/i386.c (ix86_va_start): Update.
14407         (ix86_can_use_return_insn_p): Update.
14408         (ix86_compute_frame_layout): Update.
14409         (ix86_expand_epilogue): Update.
14410         * config/sh/sh.c (output_stack_adjust): Update.
14411         (calc_live_regs): Update.
14412         (sh_expand_prologue): Update.
14413         (sh_builtin_saveregs): Update.
14414         (sh_va_start): Update.
14415         (initial_elimination_offset): Update.
14416         (sh_allocate_initial_value): Update.
14417         (sh_function_ok_for_sibcall): Update.
14418         (sh_get_pr_initial_val): Update.
14419         * config/sh/sh.md (return expander): Update.
14420         * config/avr/avr.c (frame_pointer_required_p): UPdate.
14421         * config/crx/crx.c (crx_compute_frame): UPdate.
14422         (crx_initial_elimination_offset): UPdate.
14423         * config/xtensa/xtensa.c (compute_frame_size): Update
14424         (xtensa_builtin_saveregs): Update.
14425         (xtensa_va_start): Update.
14426         (order_regs_for_local_alloc): Update.
14427         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
14428         (xstormy16_expand_builtin_va_start): Update.
14429         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
14430         * config/m68hc11/m68hc11.md (return expanders): Update.
14431         * config/m68hc11/m68hc11.c (expand_prologue): Update.
14432         (expand_epilogue): Update.
14433         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
14434         (cris_simple_epilogue): Update.
14435         (cris_expand_prologue): Update.
14436         (cris_expand_epilogue): Update.
14437         * config/iq2000/iq2000.c (iq2000_va_start): Update.
14438         (compute_frame_size): Update.
14439         * config/mt/mt.c (mt_compute_frame_size): Update.
14440         * config/mn10300/mn10300.c (expand_prologue): Update.
14441         (expand_epilogue): Update.
14442         (initial_offset): Update.
14443         (mn10300_builtin_saveregs):
14444         * config/mn10300/mn10300.md (return expander): Update.
14445         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
14446         (ia64_initial_elimination_offset): Update.
14447         (ia64_initial_elimination_offset): Update.
14448         (ia64_expand_prologue): Update.
14449         * config/m68k/m68k.md (return expander): Update.
14450         * config/rs6000/rs6000.c (rs6000_va_start): Update.
14451         (rs6000_stack_info): Update.
14452         * config/mcore/mcore.c (layout_mcore_frame): Update.
14453         (mcore_expand_prolog): Update.
14454         * config/arc/arc.c (arc_compute_frame_size): Update.
14455         * config/score/score3.c (score3_compute_frame_size): Update.
14456         * config/score/score7.c (score7_compute_frame_size): Update.
14457         * config/arm/arm.c (use_return_insn): Update.
14458         (thumb_find_work_register): Update.
14459         (arm_compute_save_reg_mask): Update.
14460         (arm_output_function_prologue): Update.
14461         (arm_output_epilogue): Update.
14462         (arm_size_return_regs): Update.
14463         (arm_get_frame_offsets): Update.
14464         (arm_expand_prologue): Update.
14465         (thumb_exit): Update.
14466         (thumb_unexpanded_epilogue): Update.
14467         (thumb1_output_function_prologue): Update.
14468         * config/pa/pa.md (return expander): Update.
14469         * config/pa/pa.c (compute_frame_size): Update.
14470         (hppa_builtin_saveregs): Update.
14471         * config/mips/mips.c (mips_va_start): Update.
14472         (mips16_build_function_stub): Update.
14473         (mips_compute_frame_info): Update.
14474         (mips_restore_gp): Update.
14475         (mips_output_function_prologue): Update.
14476         (mips_expand_prologue): Update.
14477         * config/v850/v850.c (compute_frame_size): Update.
14478         (expand_prologue): * config/mmix/mmix.c (along): update.
14479         (mmix_initial_elimination_offset): update.
14480         (mmix_reorg): update.
14481         (mmix_use_simple_return): update.
14482         (mmix_expand_prologue): update.
14483         (mmix_expand_epilogue): Update.
14484         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
14485         (emit_link_insn): Update.
14486
14487 2008-04-08  Anatoly Sokolov <aesok@post.ru>
14488
14489         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
14490         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
14491         instructions.
14492         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
14493         atmega103 device.
14494
14495 2008-04-07  Jan Hubicka  <jh@suse.cz>
14496
14497         * function.h (rtl): Rename to x_rtl.
14498         (crtl): New define.
14499         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
14500         frame_offset, stack_check_probe_note, arg_pointer_save_area,
14501         used_temp_slots avail_temp_slots, temp_slot_level,
14502         nonlocal_goto_handler_labels): Update accesstors.
14503         (rtl): New global variable.
14504         (struct function): Move some fileds to rtl_data.
14505         (get_arg_pointer_save_area): Update prototype.
14506         * builtins.c (expand_builtin_setjmp_receiver): Update call of
14507         get_arg_pointer_save_area.
14508         * expr.c (init_expr): Update
14509         * function.c (get_frame_size): Update
14510         (assign_stack_local): Update
14511         (expand_function_end): Update.
14512         (get_art_pointer_save_area): Update
14513         * function.h
14514         * emit-rtl.c (rtl): Declare.
14515         (regno_reg_rtx): Declare.
14516         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
14517         Update.
14518         (gen_reg_rtx): Update.
14519         * varasm.c (n_deferred_constatns): Update accestor.
14520         (init_varasm_status): Do not allocate varasm_status.
14521         (force_const_mem, get_pool_size, output_constant_pool): Update.
14522         * stmt.c (force_label_rtx): Do not use x_ prefixes.
14523         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
14524         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
14525         * sparc/sparc.h (INIT_EXPANDERS): Update.
14526         * ia64/ia64.h (INIT_EXPANDERS): Update.
14527
14528 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
14529
14530         * reload.c (push_secondary_reload): Add missing break to for loop.
14531
14532 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
14533
14534         PR middle-end/PR28690
14535         * rtlanal.c: Update copyright years.
14536         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
14537         as REG_POINTER and MEM_POINTER operands.
14538         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
14539         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
14540         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
14541         * gcse.c: Update copyright years.
14542         (pre_delete): Call gen_reg_rtx_and_attrs.
14543         (hoist_code): Likewise.
14544         (build_store_vectors): Likewise.
14545         (delete_store): Likewise.
14546         * loop-invariant.c (move_invariant_reg): Likewise.
14547         Update copyright years.
14548
14549 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
14550
14551         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
14552         control string instead of quoted.
14553
14554 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
14555
14556         * doc/rtl.texi: Rewrite of subreg section.
14557
14558 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
14559
14560         PR/35842
14561         * config/i386/i386.c (legitimize_pic_address): Add treating
14562         of dllimport SYM_REF's.
14563         (legitimize_dllimport_symbol): Add prototype.
14564
14565 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
14566
14567         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
14568         reference in constructor with non self-referential type.
14569
14570 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
14571
14572         Removal of Return with Depressed Stack Pointer support
14573         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
14574         (ECF_SP_DEPRESSED): Likewise.
14575         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
14576         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
14577         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
14578         (expand_call): Do not test ECF_SP_DEPRESSED.
14579         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
14580         * function.c (keep_stack_depressed): Delete.
14581         (handle_epilogue_set): Likewise.
14582         (update_epilogue_consts): Likewise.
14583         (emit_equiv_load): Likewise.
14584         (thread_prologue_and_epilogue_insns): Remove support for Return with
14585         Depressed Stack Pointer.
14586         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
14587
14588 2008-04-06  Richard Guenther  <rguenther@suse.de>
14589
14590         PR tree-optimization/35400
14591         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
14592         information from SSA_NAMEs.
14593
14594 2008-04-06  Anatoly Sokolov <aesok@post.ru>
14595
14596         * config/avr/avr.h (avr_mega_p): Remove declaration.
14597         (AVR_MEGA): Remove macro.
14598         * config/avr/avr.c (avr_mega_p): Remove variable.
14599         (avr_override_options): Remove inicializion of avr_mega_p.
14600         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
14601         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
14602         (avr_jump_mode): (Ditto.).
14603         (avr_output_progmem_section_asm_op): (Ditto.).
14604         (avr_asm_init_sections): (Ditto.).
14605         (avr_asm_init_sections): (Ditto.).
14606         (avr_rtx_costs): (Ditto.).
14607         * config/avr/avr.md: (Ditto.).
14608         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
14609         '__AVR_MEGA__'.
14610
14611 2008-04-06  Richard Guenther  <rguenther@suse.de>
14612
14613         PR tree-optimization/35842
14614         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
14615         is_gimple_invariant_address.
14616
14617 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14618
14619         * gcc.c (default_compilers): Sync Fortran extensions list with
14620         that in fortran/lang-specs.h.
14621         * doc/invoke.texi: Likewise.
14622         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
14623         * dwarf2out.c (gen_compile_unit_die): Likewise.
14624
14625 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
14626
14627         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
14628
14629 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
14630
14631         PR target/12329
14632         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
14633         attribute is used for nested functions.
14634
14635 2008-04-05  Jan Hubicka  <jh@suse.cz>
14636
14637         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
14638
14639         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
14640         letter argument.
14641         (dump_files): Update.
14642         (enable_rtl_dump_file): Do not accept letter argument.
14643         * tree-pass.h (dump_file_info): Remove letter argument.
14644         * toplev.c (decode_d_option): Update -da handling.
14645         * toplev.h (enable_rtl_dump_file): Update prototype.
14646         * passes.c (register_one_dump_file): Do not accept IPA argument; work
14647         it out based on pass type.
14648         (register_dump_files_1): Likewise.
14649         (init_optimization_passes): Update register_one_dump_file calls.
14650         (execute_one_pass): Sanity check that IPA passes are called at IPA
14651         level and RTL passes at RTL level.
14652         (execute_pass_list): IPA pass can not be after or subpass of
14653         GIMPLE/RTL pass.
14654         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
14655         disallov RTL subpasses of IPA subpasses.
14656
14657 2008-04-05  Ben Elliston  <bje@au.ibm.com>
14658
14659         * tree-cfg.c (need_fake_edge_p): Return false for calls to
14660         builtins that return exactly once and do not throw. Cache call to
14661         call_expr_flags.
14662
14663 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
14664
14665         PR rtl-optimization/34916
14666         PR middle-end/35519
14667         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
14668         between instruction pairs.
14669
14670 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
14671
14672         * doc/invoke.texi: Document -mbitops for SH.
14673         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
14674         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
14675         * config/sh/sh.c (print_operand): Add %t operand code.
14676         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
14677         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
14678         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
14679         (extendqihi2): Likewise.
14680         (movqi_i): Likewise.
14681         (insv): Use bset, bclr and bst instructions for SH2A if possible.
14682         (extv): Use bld instruction for SH2A if possible.
14683         (extzv): Likewise.
14684         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
14685         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
14686         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
14687         (bset.b, bclr.b): Define peepholes.
14688         * config/sh/sh.opt (mbitops): New option.
14689
14690 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
14691
14692         PR target/35620
14693         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
14694         and view convert expression.
14695
14696 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
14697
14698         PR target/35364
14699         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
14700
14701 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
14702
14703         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
14704
14705         * config/i386/cpuid.h (bit_AES): New.
14706         (bit_PCLMUL): Likewise.
14707
14708         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
14709         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
14710         SSE2 if AES or PCLMUL is enabled.
14711         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
14712         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
14713         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
14714         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
14715         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
14716         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
14717         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
14718         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
14719         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
14720         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
14721         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
14722         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
14723         __builtin_ia32_aeskeygenassist128 and
14724         __builtin_ia32_pclmulqdq128.
14725         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
14726         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
14727         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
14728
14729         * config/i386/i386.h (TARGET_AES): New.
14730         (TARGET_PCLMUL): Likewise.
14731         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
14732
14733         * config/i386/i386.md (UNSPEC_AESENC): New.
14734         (UNSPEC_AESENCLAST): Likewise.
14735         (UNSPEC_AESDEC): Likewise.
14736         (UNSPEC_AESDECLAST): Likewise.
14737         (UNSPEC_AESIMC): Likewise.
14738         (UNSPEC_AESKEYGENASSIST): Likewise.
14739         (UNSPEC_PCLMUL): Likewise.
14740
14741         * config/i386/i386.opt (maes): New.
14742         (mpclmul): Likewise.
14743
14744         * config/i386/sse.md (aesenc): New pattern.
14745         (aesenclast): Likewise.
14746         (aesdec): Likewise.
14747         (aesdeclast): Likewise.
14748         (aesimc): Likewise.
14749         (aeskeygenassist): Likewise.
14750         (pclmulqdq): Likewise.
14751
14752         * config/i386/wmmintrin.h: New.
14753
14754         * doc/extend.texi: Document AES and PCLMUL built-in function.
14755
14756         * doc/invoke.texi: Document -maes and -mpclmul.
14757
14758 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
14759
14760         * function.c (free_after_parsing): Replace with
14761         cxx_push_function_context from C++ front-end.
14762         (allocate_struct_function): Don't call langhook.
14763         * langhooks.h (struct lang_hooks_for_functions): Delete.
14764         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
14765         member "function".
14766         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
14767         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
14768         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
14769         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
14770         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
14771         remove LANG_HOOKS_FUNCTION_INITIALIZER.
14772         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
14773
14774         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
14775         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
14776
14777 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
14778
14779         PR c/35440
14780         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
14781         for all types.
14782
14783 2008-04-04  Richard Guenther  <rguenther@suse.de>
14784
14785         PR middle-end/35823
14786         * fold-const.c (optimize_minmax_comparison): Use the correct
14787         type for the constant in the simplified comparison.
14788
14789 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
14790
14791         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
14792         Pass L2 size as "--param l2-cache-size" to the compiler.
14793         (decode_l2_cache): New function to decode L2 cache parameters using
14794         0x8000006 extended cpuid function.
14795         (detect_caches_amd): Determine parameters of L2 cache using
14796         decode_l2_caches function.
14797         (decode_caches_intel): Decode L2 cache parameters.
14798         (detect_caches_intel): Determine L2 cache parameters using
14799         decode_caches_intel and decode_l2_caches functions.
14800
14801 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
14802
14803         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
14804         secondary input reload for subword loads from the constant pool.
14805
14806 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
14807
14808         PR target/35713
14809         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
14810           constants of the appropriate size for runtime calculations.
14811
14812         PR c/35712
14813         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
14814           decimal-float literal constant zero.
14815
14816 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
14817
14818         PR c/35738
14819         * c-parser.c (c_parser_omp_atomic): Call
14820         default_function_array_conversion on the RHS.
14821
14822         PR middle-end/35818
14823         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
14824         call is_variable_sized if decl has incomplete type.
14825
14826 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
14827
14828         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
14829
14830 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
14831
14832         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
14833         iterators.
14834         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
14835         (sgt<u>): Merge sgt and sgtu into new expander.
14836         (sgt, sgtu): Remove expanders.
14837         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
14838         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
14839         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
14840         *sgtu_<mode>_mips16 into new pattern.
14841         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
14842         (sge<u>): Merge sge and sgeu into new expander.
14843         (sge, sgeu): Remove expanders.
14844         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
14845         new pattern.
14846         (*sge_<mode>, second *sge_<mode>): Remove patterns.
14847         (slt<u>): Merge slt and sltu into new expander.
14848         (slt, sltu): Remove expanders.
14849         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
14850         (*slt_<mode>, *sltu_<mode>): Remove patterns.
14851         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
14852         *sltu_<mode>_mips16 into new pattern.
14853         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
14854         (sle<u>): Merge sle and sleu into new expander.
14855         (sle, sleu): Remove expanders.
14856         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
14857         (*sle_<mode>, *sleu_<mode>): Remove patterns.
14858         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
14859         *sleu_<mode>_mips16 into new pattern.
14860         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
14861
14862 2008-04-03  Jan Hubicka  <jh@suse.cz>
14863
14864         PR tree-optimization/35795
14865         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
14866         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
14867         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
14868         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
14869         * score/score3.c (score3_output_mi_thunk): Likewise.
14870         * score/score7.c (score7_output_mi_thunk): Likewise.
14871         * mips/mips.c (mips_output_mi_thunk): Likewise.
14872
14873 2008-04-03  Richard Guenther  <rguenther@suse.de>
14874
14875         * tree-vrp.c (extract_range_from_unary_expr): Handle all
14876         conversions.  Simplify code.
14877
14878 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
14879
14880         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
14881
14882 2008-04-03  Tom Tromey  <tromey@redhat.com>
14883             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14884
14885         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
14886         * config/bfin/t-bfin-linux (generated_files): Add
14887         linux-sysroot-suffix.h.
14888         * doc/install.texi (Prerequisites): Require make 3.80.
14889         * doc/sourcebuild.texi (Front End Directory): Document new
14890         variable.
14891         * Makefile.in (generated_files): New variable.
14892         (ALL_HOST_OBJS): New variable.
14893         ($(ALL_HOST_OBJS)): New target.
14894
14895 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
14896
14897         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
14898         (remap_block): Call id->transform_lang_insert_block instead
14899         of langhook.
14900         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
14901         Set id.transform_lang_insert_block to NULL.
14902         (clone_body): Move to cp/optimize.c
14903         * tree-inline.h (struct copy_body_data): Change
14904         transform_lang_insert_block to function pointer.
14905         (copy_generic_body, copy_decl_no_change): Export.
14906         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
14907         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
14908         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
14909
14910         * c-tree.h (insert_block): Kill.
14911         * c-decl.c (insert_block): Kill.
14912
14913 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
14914
14915         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
14916         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
14917         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
14918         argument.
14919         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
14920         argument, call {push,pop}_function_context from here.
14921         * c-parser.c: Use c_{push,pop}_function_context.
14922
14923         * function.c (push_function_context_to): Move meat ...
14924         (push_function_context): ... here.  Simplify.
14925         * function.c (pop_function_context_from): Move meat ...
14926         (pop_function_context): ... here.  Simplify.
14927         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
14928         leave_nested).
14929         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
14930         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
14931         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
14932         * tree.h (push_function_context_to, pop_function_context_from): Remove.
14933
14934 2008-04-03  Ben Elliston  <bje@au.ibm.com>
14935
14936         * expmed.c (extract_force_align_mem_bit_field): Remove.
14937
14938 2008-04-03  Richard Guenther  <rguenther@suse.de>
14939
14940         PR middle-end/35800
14941         * expr.h (try_casesi): Adjust prototype.
14942         * expr.c (try_casesi): Take fallback label as extra parameter.
14943         Use that for gen_casesi if default_label is NULL.
14944         * stmt.c (expand_case): Pass fallback label to try_casesi,
14945         make sure to fill gaps with a fallback label if default_label
14946         is not present.
14947
14948 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
14949
14950         PR target/35801
14951         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
14952
14953 2008-04-03  Ben Elliston  <bje@au.ibm.com>
14954
14955         * expmed.c (extract_split_bit_field): Remove if (0) code.
14956         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
14957         (do_ds_constraint): Likewise.
14958
14959 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
14960
14961         * doc/cppopts.texi (-dU): Document.
14962         * c-common.h (flag_dump_macros): Update comment.
14963         * c-opts.c (handle_OPT_d): Handle -dU.
14964         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
14965         dump_queued_macros, cb_used_define, cb_used_undef): New.
14966         (init_pp_output): Handle -dU.
14967         (cb_line_change): Call dump_queued_macros.
14968         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
14969
14970 2008-04-02  Anatoly Sokolov <aesok@post.ru>
14971
14972         * config/avr/predicates.md (io_address_operand): New predicate.
14973         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
14974         * config/avr/avr.c (avr_io_address_p): Remove function.
14975         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
14976         'avr_io_address_p' function.
14977         (out_movhi_r_mr): (Ditto.).
14978         (out_movqi_mr_r): (Ditto.).
14979         (out_movhi_mr_r): (Ditto.).
14980         (avr_address_cost): (Ditto.).
14981
14982 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
14983
14984         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
14985         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
14986         in 32bit mode when XMM registers are available to avoid store
14987         forwarding stalls.
14988         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
14989         corresponding post-reload splitters.
14990
14991 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
14992
14993         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
14994         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
14995         __builtin_ia32_roundss.
14996         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
14997         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
14998         __builtin_ia32_roundss.
14999         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
15000         IX86_BUILTIN_SHUFPD here.
15001
15002 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
15003
15004         * config/i386/i386.md (plogic): New.
15005         (plogicprefix): Likewise.
15006
15007         * config/i386/mmx.md (mmx_<code><mode>3): New.
15008         (mmx_and<mode>3): Removed.
15009         (mmx_ior<mode>3): Likewise.
15010         (mmx_xor<mode>3): Likewise.
15011
15012         * config/i386/sse.md (<code><mode>3): New.
15013         (*<code><mode>3): Likewise.
15014         (*<code><mode>3): Likewise.
15015         (<code><mode>3): Likewise.
15016         (*sse_<code><mode>3): Likewise.
15017         (*sse2_<code><mode>3): Likewise.
15018         (<code>tf3): Likewise.
15019         (*<code>tf3): Likewise.
15020         (and<mode>3): Likewise.
15021         (*and<mode>3): Likewise.
15022         (ior<mode>3): Removed.
15023         (*ior<mode>3): Likewise.
15024         (xor<mode>3): Likewise.
15025         (*xor<mode>3): Likewise.
15026         (*and<mode>3): Likewise.
15027         (*ior<mode>3): Likewise.
15028         (*xor<mode>3): Likewise.
15029         (and<mode>3): Likewise.
15030         (*sse_and<mode>3): Likewise.
15031         (*sse2_and<mode>3): Likewise.
15032         (andtf3): Likewise.
15033         (*andtf3): Likewise.
15034         (ior<mode>3): Likewise.
15035         (*sse_ior<mode>3): Likewise.
15036         (*sse2_ior<mode>3): Likewise.
15037         (iortf3): Likewise.
15038         (*iortf3): Likewise.
15039         (xor<mode>3): Likewise.
15040         (*sse_xor<mode>3): Likewise.
15041         (*sse2_xor<mode>3): Likewise.
15042         (xortf3): Likewise.
15043         (*xortf3): Likewise.
15044
15045 2008-04-02  Richard Guenther  <rguenther@suse.de>
15046
15047         PR tree-optimization/14495
15048         PR tree-optimization/34793
15049         * tree-vrp.c (struct switch_update): New structure.
15050         (to_remove_edges, to_update_switch_stmts): New VECs.
15051         (simplify_switch_using_ranges): New function.  Remove not taken
15052         case labels and edges.
15053         (simplify_stmt_using_ranges): Call it.
15054         (identify_jump_threads): Mark edges we have queued for removal
15055         so we don't thread them.
15056         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
15057         case label vector.
15058         * tree-cfg.c (group_case_labels): Deal with missing default label.
15059         (tree_verify_flow_info): Allow missing default label.
15060         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
15061         (emit_case_nodes): Likewise.
15062         (expand_case): Do not rely on the default label to be present.
15063         * expr.c (try_casesi): Deal with NULL default_label.
15064         (do_tablejump): Likewise.
15065
15066 2008-04-02  Richard Guenther  <rguenther@suse.de>
15067
15068         PR tree-optimization/14495
15069         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
15070         SWITCH_EXPR here ...
15071         (vrp_visit_switch_stmt): ... but here (new function).
15072         (find_case_label_index): New helper function.
15073         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
15074
15075 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
15076
15077         * fwprop.c: Fix ISO-C99ism.
15078
15079 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
15080
15081         PR bootstrap/35752
15082         * Makefile.in (objdir): Set it here.
15083         * configure.ac: Not here.  Find dynamic linker characteristics.
15084         * exec-tool.in: Use them.
15085         * aclocal.m4: Regenerate.
15086         * configure: Regenerate.
15087
15088 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
15089
15090         * expr.c (expand_var): Delete it.
15091         * expr.h (expand_var): Delete prototype.
15092         * function.c (expand_function_start): Use expand_decl instead.
15093         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
15094         langhook.
15095
15096 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
15097
15098         PR rtl-optimization/35542
15099         * fwprop.c (forward_propagate_and_simplify): Replace
15100         loc_reg_mentioned_in_p with reg_mentioned_p.
15101
15102 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
15103
15104         PR rtl-optimization/35281
15105         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
15106         (propagate_rtx_1): Handle PR_HANDLE_MEM.
15107         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
15108         (varying_mem_p): Move above propagate_rtx.
15109         (all_uses_available_at): Do not check MEMs.
15110
15111 2008-04-02  Rafael Espindola  <espindola@google.com>
15112
15113         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
15114         (register_edge_assert_for_2): Split the cond argument.
15115         (register_edge_assert_for_1): Adjust for the change in
15116         register_edge_assert_for_2.
15117         (register_edge_assert_for): Split the cond argument.
15118         (find_switch_asserts): Adjust for the change in
15119         register_edge_assert_for.
15120
15121 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
15122
15123         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
15124         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
15125         offsets for 64-bit mingw.
15126         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
15127         abi for x86_64-pc-mingw.
15128
15129 2008-04-02  Richard Guenther  <rguenther@suse.de>
15130
15131         * tree-vrp.c (extract_range_from_assert): Make sure to not
15132         produce range min/max with TREE_OVERFOW set.
15133         If merging a anti-range and a range keep the anti-range if
15134         the range covers all values of the type.
15135         (register_edge_assert_for_2): Only allow sign-changing
15136         conversions in detecting canonical range checks.  Also
15137         register an assert for the unsigned name if useful.
15138
15139         PR tree-optimization/35787
15140         * tree-vrp.c (vrp_val_max): New function.
15141         (vrp_val_min): Likewise.
15142         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
15143         (vrp_val_is_min): Likewise.
15144         (supports_overflow_infinity): Use vrp_val_{min,max}.
15145         (negative_overflow_infinity): Likewise.
15146         (positive_overflow_infinity): Likewise.
15147         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
15148         (is_positive_overflow_infinity): Likewise.
15149         (is_overflow_infinity): Likewise.
15150         (avoid_overflow_infinity): Use vrp_val_{min,max} and
15151         vrp_val_is_{min,max}.
15152         (set_and_canonicalize_value_range): Canonicalize anti-ranges
15153         to ranges if possible.  Avoid empty ranges.
15154
15155 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15156
15157         PR middle-end/35705
15158         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
15159         the expression is a function address.
15160
15161 2008-04-01  George Helffrich  <george@gcc.gnu.org>
15162
15163         PR fortran/35154, fortran/23057
15164         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
15165         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
15166         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
15167         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
15168         in common.
15169         (dbxout_syms): Check for COMMON-based symbol and wrap in
15170         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
15171         in bracket for efficiency.
15172
15173         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
15174         using DW_TAG_common_block + member offset.
15175         (add_pubname_string): New function.
15176         (dw_expand_expr): New function to find block name and offset for
15177         COMMON var.
15178         (common_check): New function to check whether symbol in Fortran COMMON.
15179         (gen_variable_die): If COMMON, use DW_TAG_common_block.
15180
15181 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
15182
15183         PR c/35436
15184         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
15185
15186 2008-04-02  Ben Elliston  <bje@au.ibm.com>
15187
15188         * config/v850/v850.md (casesi): Remove if (0) code.
15189         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
15190         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
15191
15192 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
15193
15194         * config/i386/i386.md (rex64suffix): New mode attribute.
15195         (floathi<mode>2): Disable expander for SSE math.
15196         (*floathi<mode>2_1): New insn insn_and_split pattern.
15197         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
15198         corresponding post-reload splitters.
15199         (*floathi<mode>2_i387): New macroized insn pattern.
15200         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
15201         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
15202         insn_and_split pattern.
15203         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
15204         New macroized instruction patterns and corresponding post-reload
15205         splitters.
15206         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
15207         and corresponding post-reload splitters.
15208         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
15209         New macroized instruction patterns.
15210         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
15211         macroized instruction patterns and corresponding post-reload splitters.
15212         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
15213         corresponding post-reload splitters.
15214         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
15215         New macroized instruction patterns.
15216         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
15217         corresponding post-reload splitters.
15218         (*floatsi<mode>2_i387): New macroized instruction patterns.
15219
15220 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
15221
15222         * config/i386/i386.md (smaxmin): New.
15223         (umaxmin): Likewise.
15224         (maxminiprefix): Likewise.
15225         (maxminfprefix): Likewise.
15226         (<code><mode>3): Likewise.
15227         (smin<mode>3): Removed.
15228         (smax<mode>3): Likewise.
15229
15230         * config/i386/mmx.md (mmx_<code>v2sf3): New.
15231         (mmx_<code>v4hi3): Likewise.
15232         (mmx_<code>v8qi3): Likewise.
15233         (mmx_smaxv2sf3): Removed.
15234         (mmx_sminv2sf3): Likewise.
15235         (mmx_umaxv8qi3): Likewise.
15236         (mmx_smaxv4hi3): Likewise.
15237         (mmx_uminv8qi3): Likewise.
15238         (mmx_sminv4hi3): Likewise.
15239
15240         * config/i386/sse.md (<addsub><mode>3): New.
15241         (*<addsub><mode>3): Likewise.
15242         (<sse>_vm<addsub><mode>3): Likewise.
15243         (<maxmin><mode>3): Likewise.
15244         (*<maxmin><mode>3_finite): Likewise.
15245         (*<maxmin><mode>3): Likewise.
15246         (<sse>_vm<maxmin><mode>3): Likewise.
15247         (sse3_h<addsub>v4sf3): Likewise.
15248         (sse3_h<addsub>v2df3): Likewise.
15249         (<maxmin>v16qi3): Likewise.
15250         (*<maxmin>v16qi3): Likewise.
15251         (<maxmin>v8hi3): Likewise.
15252         (*<maxmin>v8hi3): Likewise.
15253         (*sse4_1_<maxmin><mode>3): Likewise.
15254         (*sse4_1_<maxmin><mode>3): Likewise.
15255         (add<mode>3): Removed.
15256         (*add<mode>3): Likewise.
15257         (<sse>_vmadd<mode>3): Likewise.
15258         (sub<mode>3): Likewise.
15259         (*sub<mode>3): Likewise.
15260         (<sse>_vmsub<mode>3): Likewise.
15261         (smin<mode>3): Likewise.
15262         (*smin<mode>3_finite): Likewise.
15263         (*smin<mode>3): Likewise.
15264         (<sse>_vmsmin<mode>3): Likewise.
15265         (smax<mode>3): Likewise.
15266         (*smax<mode>3_finite): Likewise.
15267         (*smax<mode>3): Likewise.
15268         (<sse>_vmsmax<mode>3): Likewise.
15269         (sse3_haddv4sf3): Likewise.
15270         (sse3_haddv2df3): Likewise.
15271         (sse3_hsubv4sf3): Likewise.
15272         (sse3_hsubv2df3): Likewise.
15273         (umaxv16qi3): Likewise.
15274         (*umaxv16qi3): Likewise.
15275         (smaxv8hi3): Likewise.
15276         (*smaxv8hi3): Likewise.
15277         (*sse4_1_smax<mode>3): Likewise.
15278         (*sse4_1_umax<mode>3): Likewise.
15279         (uminv16qi3): Likewise.
15280         (*uminv16qi3): Likewise.
15281         (sminv8hi3): Likewise.
15282         (*sminv8hi3): Likewise.
15283         (*sse4_1_smin<mode>3): Likewise.
15284         (*sse4_1_umin<mode>3): Likewise.
15285
15286 2008-04-01  Rafael Espindola  <espindola@google.com>
15287
15288         * tree-cfg.c (verify_expr): remove in_phi.
15289         (verify_stmt): Don't call walk_tree with verify_expr. Use
15290         is_gimple_min_invariant instead of is_gimple_val.
15291
15292 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
15293
15294         * doc/include/gpl_v3.texi: Update for manpage generation.
15295         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
15296         gpl.texi.
15297         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
15298         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
15299         gpl_v3.texi instead of gpl.texi.
15300         (gpl.pod): New.
15301
15302 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
15303
15304         PR pch/13675
15305         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
15306
15307 2008-04-01  Rafael Espindola  <espindola@google.com>
15308
15309         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
15310         (extract_code_and_val_from_cond): Use
15311         extract_code_and_val_from_cond_with_ops.
15312
15313 2008-04-01  Jan Hubicka  <jh@suse.cz>
15314
15315         * function.c (free_after_compilation): Free epilogue_delay_list.
15316         (prepare_function_start): Assert that previous compilation was freed.
15317
15318 2008-04-01  Jan Hubicka  <jh@suse.cz>
15319             Jim Wilson  <wilson@tuliptree.org>
15320             Andreas Tobler <andreast@gcc.gnu.org>
15321
15322         PR middle-end/35781
15323         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
15324         rtl.emit instead cfun->emit.
15325         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
15326         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
15327
15328 2008-04-01  Ben Elliston  <bje@au.ibm.com>
15329
15330         * doc/c-tree.texi (Function Basics): Fix grammatical error.
15331
15332 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
15333
15334         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
15335         New options
15336         (fprofile-use): Add var flag_profile_use
15337         * coverage.c (coverage_begin_output): Do not open a gcno file for
15338         output only if -ftest-coverage is set.
15339         Do not add getpwd() to gcda file path.
15340         (build_gcov_info): Check the new flag
15341         flag_profile_datafile_relative_path.
15342         (coverage_init): Use profile_data_prefix.
15343         Read profile counter only if flag_profile_use is set.
15344         * opts.c (common_handle_option): New option fprofile-use=,
15345         fprofile-dir=, fprofile-generate=.
15346         * toplev.c (profile_data_prefix): New variable definition.
15347         * toplev.h (profile_data_prefix): New declaration.
15348         * doc/invoke.tex (Option Summary, Optimization Options):
15349         Add new options.
15350
15351 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
15352
15353         * varasm.c (output_constant_pool_1): In LABEL_REF check,
15354         use tmp consistently.
15355
15356         PR target/35695
15357         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
15358         * config/ia64/ia64.c (rtx_needs_barrier): Handle
15359         UNSPEC_FR_RECIP_APPROX_RES.
15360         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
15361
15362 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
15363
15364         PR c/35750
15365         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
15366
15367 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15368
15369         PR middle-end/30186
15370         * fold-const.c (fold_indirect_ref_1): Support accessing non first
15371         element of the vector via a pointer.
15372
15373 2008-03-31  Ian Lance Taylor  <iant@google.com>
15374
15375         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
15376
15377 2008-03-31  Jan Hubicka  <jh@suse.cz>
15378
15379         * builtins.c (expand_builtin_setjmp_receiver): Update call of
15380         get_arg_pointer_save_area.
15381         * expr.c (init_expr): Just clear out rtl.expr.
15382         * function.c (free_after_compilation): Clear out whole RTL structure.
15383         (get_func_frame_size): Merge into ...
15384         (get_frame_size): ... this one.
15385         (assign_stack_local_1): Merge into ...
15386         (assign_stack_local): ... this one.
15387         (expand_function_end): Update call of get_arg_pointer_save_area.
15388         (get_art_pointer_save_area): Remove cfun argument.
15389         * function.h (emit_status): regno_pointer_align does not need length
15390         attribute. Move x_regno_reg_rtx to ...
15391         (regno_reg_rtx): ... new global array.
15392         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
15393         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
15394         apply_args_value, forced_labels, stack_pointer_delta):
15395         Update accestors.
15396         (struct varasm_status): Move here from varasm.c
15397         (struct rtl_data): New. Move here some fields from struct function.
15398         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
15399         frame_offset, stack_check_probe_note, arg_pointer_save_area,
15400         used_temp_slots avail_temp_slots, temp_slot_level,
15401         nonlocal_goto_handler_labels): Update accesstors.
15402         (rtl): New global variable.
15403         (struct function): Move some fileds to rtl_data.
15404         (get_arg_pointer_save_area): Update prototype.
15405         * emit-rtl.c (rtl): Declare.
15406         (regno_reg_rtx): Declare.
15407         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
15408         Update.
15409         (gen_reg_rtx): Update.
15410         (init_virtual_regs): Do not tate emit_status argument.
15411         (init_emit): Do not allocate emit.
15412         * varasm.c (varasm_statuc): Move to function.h.
15413         (n_deferred_constatns): Update accestor.
15414         (init_varasm_status): Do not allocate varasm_status.
15415         (force_const_mem, get_pool_size, output_constant_pool): Update.
15416         * stmt.c (force_label_rtx): Do not use x_ prefixes.
15417         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
15418
15419 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
15420
15421         PR rtl-optimization/35729
15422         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
15423         references.
15424
15425 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
15426
15427         PR target/32000
15428         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
15429         load/store if memory is unaligned.
15430         (*movti_rex64): Likewise.
15431
15432         * config/i386/predicates.md (misaligned_operand): New.
15433
15434 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
15435
15436         PR tree-opt/35431
15437         * tree-ssa-phiopt.c (conditional_replacement): Return early for
15438         complex types.
15439
15440 2008-03-31  Jan Beulich  <jbeulich@novell.com>
15441
15442         * config/ia64/constraints.md: Add 'j' constraint.
15443         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
15444         (movdi_internal): Likewise.
15445
15446 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
15447
15448         PR c/35748
15449         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
15450
15451 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
15452
15453         PR target/35757
15454         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
15455         proper error message for the third argument on blendpd and
15456         blendps.
15457
15458         * config/i386/sse.md (blendbits): New.
15459         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
15460
15461 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
15462
15463         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
15464
15465 2008-03-30  Richard Guenther  <rguenther@suse.de>
15466
15467         PR middle-end/31023
15468         * fold-const.c (fold_sign_changed_comparison): Do leave
15469         conversions to base-types alone.
15470
15471 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15472
15473         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
15474         the link register if one altivec register is be saved.
15475
15476 2008-03-30  Ben Elliston  <bje@au.ibm.com>
15477
15478         * final.c (final_scan_insn): Remove if (0) code.
15479
15480 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
15481
15482         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
15483
15484 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
15485
15486         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
15487         of V4SFmode to ix86_binary_operator_ok.
15488
15489 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
15490
15491         * config/i386/i386.c (override_options): Initialize
15492         ix86_veclib_handler to ix86_veclibabi_svml when
15493         -mveclibabi=svml is used.
15494         (ix86_veclibabi_svml): New function for SVML ABI style
15495         vectorization support.
15496         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
15497
15498 2008-03-28  Rafael Espindola  <espindola@google.com>
15499
15500         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
15501         (tree_binary_nonnegative_warnv_p): Make it public.
15502         (tree_single_nonnegative_warnv_p): Make it public.
15503         (tree_invalid_nonnegative_warnv_p): Make it public.
15504         (tree_unary_nonzero_warnv_p): Make it public.
15505         (tree_binary_nonzero_warnv_p): Make it public
15506         (tree_single_nonzero_warnv_p): Make it public.
15507         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
15508         (extract_range_from_binary_expr): Split the expr argument.
15509         (extract_range_from_unary_expr): Split the expr argument.
15510         (extract_range_from_comparison): Split the expr argument.
15511         (extract_range_from_expr): Use the new aux functions.
15512         (vrp_evaluate_conditional_warnv): Use
15513         vrp_evaluate_conditional_warnv_with_ops.
15514         * tree.h (tree_unary_nonzero_warnv_p): Declare.
15515         (tree_binary_nonzero_warnv_p): Declare.
15516         (tree_single_nonzero_warnv_p): Declare.
15517         (tree_expr_nonzero_warnv_p): Declare.
15518         (tree_unary_nonnegative_warnv_p): Declare.
15519         (tree_binary_nonnegative_warnv_p): Declare.
15520         (tree_single_nonnegative_warnv_p): Declare.
15521         (tree_invalid_nonnegative_warnv_p): Declare.
15522
15523 2008-03-28  Richard Guenther  <rguenther@suse.de>
15524
15525         PR tree-optimization/30317
15526         PR tree-optimization/30911
15527         PR tree-optimization/34793
15528         * tree-vrp.c (set_and_canonicalize_value_range): New function.
15529         (struct assert_locus_d): New member EXPR.
15530         (register_new_assert_for): Add EXPR parameter to support
15531         ASSERT_EXPR <name, expr OP limit>.
15532         (register_edge_assert_for_1): Adjust callers.
15533         (find_assert_locations): Likewise.
15534         (process_assert_insertions_for): Build condition from expression.
15535         (extract_range_from_assert): Handle ASSERT_EXPRs
15536         of the form ASSERT_EXPR <name, expr OP limit>.
15537         (register_edge_assert_for_2): New helper registering
15538         asserts for comparisons.  Recognize range tests of the form
15539         (unsigned)i - CST1 OP CST2.
15540         (register_edge_assert_for_1): Use it.
15541         (register_edge_assert_for): Likewise.
15542         (needs_overflow_infinity): Integer sub-types
15543         do not need overflow infinities.
15544         (vrp_val_is_max): The extreme values of integer sub-types
15545         are those of the base type.
15546         (vrp_val_is_min): Likewise.
15547         * tree.def (ASSERT_EXPR): Document extra allowed conditional
15548         expressions.
15549
15550 2008-03-28  Nick Clifton  <nickc@redhat.com>
15551
15552         PR target/31110
15553         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
15554         Return GENERAL_REGS for stack adjustment reloads.
15555
15556 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15557
15558         PR target/31334
15559         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
15560         const_vector when all the vectors are constant.
15561
15562 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
15563
15564         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
15565         comparisons.
15566         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
15567         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
15568         (scc_sf): New.
15569         (s<code>_sf): Use new scc_sf attribute for opcode names.
15570
15571 2008-03-27  Tom Tromey  <tromey@redhat.com>
15572
15573         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
15574         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
15575         config/spu/t-spu-elf, config/i386/t-interix,
15576         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
15577         config/i386/x-darwin, config/i386/x-mingw32,
15578         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
15579         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
15580         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
15581         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
15582         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
15583         config/rs6000/x-darwin, config/rs6000/t-rs6000,
15584         config/score/t-score-elf, config/arm/t-strongarm-pe,
15585         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
15586         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
15587         Revert automatic dependency patch.
15588
15589 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15590
15591         PR target/35657
15592         * config/i386/i386.c (ix86_function_arg_boundary): Align
15593         decimal floating point to its natural boundary.
15594
15595 2008-03-27  Richard Guenther  <rguenther@suse.de>
15596
15597         PR middle-end/35716
15598         * fold-const.c (fold_comparison): Restrict distinct decl
15599         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
15600         solely rely on operand_equal_p.
15601
15602 2008-03-27  Richard Guenther  <rguenther@suse.de>
15603
15604         PR c/32511
15605         * c-common.c (handle_weak_attribute): Reject combination of
15606         weak and inline.
15607
15608 2008-03-27  Richard Guenther  <rguenther@suse.de>
15609
15610         PR tree-optimization/32810
15611         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
15612         conversions from DECL_INITIAL.
15613         (fold_const_aggregate_ref): Likewise from constructor elements.
15614
15615 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
15616
15617         * tree-affine.h (aff_combination_expand): Declare.
15618         (get_inner_reference_aff): Likewise.
15619         * tree-affine.c (aff_combination_expand): Split out from
15620         tree_to_aff_combination_expand.
15621         (get_inner_reference_aff): New function.
15622         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
15623         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
15624         (struct lim_aux_data): sm_done field removed.
15625         (mem_ref_loc_p, mem_ref_locs_p): New types.
15626         (struct mem_ref): Added id, stored, accesses_in_loop,
15627         indep_loop, dep_loop, indep_ref, dep_ref fields.
15628         Removed is_stored, locs and next fields.
15629         (memory_accesses): New variable.
15630         (movement_possibility): Do not allow moving statements
15631         that store to memory.
15632         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
15633         New functions.
15634         (determine_max_movement): For statements with memory references,
15635         find the outermost loop in that the reference is independent.
15636         (move_computations_stmt): Mark the virtual operands for renaming.
15637         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
15638         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
15639         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
15640         add_vop_ref_mapping, create_vop_ref_mapping_loop,
15641         create_vop_ref_mapping, analyze_memory_references,
15642         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
15643         get_all_locs_in_loop, ref_always_accessed_p,
15644         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
15645         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
15646         store_motion_loop, store_motion): New functions.
15647         (struct vop_to_refs_elt): New type.
15648         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
15649         memref_hash, memref_eq, hoist_memory_references): Rewritten.
15650         (schedule_sm): Replaced by...
15651         (execute_sm): ... this.
15652         (determine_lsm_ref, hoist_memory_references,
15653         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
15654         find_more_ref_vops, free_mem_ref, free_mem_refs,
15655         determine_lsm_loop, determine_lsm): Removed.
15656         (tree_ssa_lim_finalize): Free data structures used by store motion.
15657         (tree_ssa_lim): Call analyze_memory_references.  Use
15658         store_motion instead of determine_lsm.
15659
15660 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
15661
15662         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
15663         rename tmake_file to m68hc11/t-m68hc11.
15664         (mcore): Set inhibit_libc to true.
15665         * config.host (alpha*-dec-*vms*): Set extra_programs.
15666         (interix3*): Don't use host_xmake_file.
15667         * configure.ac: Let config.gcc override inhibit_libc.
15668         * configure: Regenerate.
15669
15670         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
15671         * config/t-openbsd-thread: Remove commented out lines.
15672
15673         * config/x-interix: Remove.
15674
15675         * config/m68hc11/t-m68hc11-gas: Rename to...
15676         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
15677
15678         * config/mcore/t-mcore: Remove T_CFLAGS.
15679         * config/mcore/t-mcore-pe: Likewise.
15680
15681 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
15682
15683         * configure.ac: Replace custom __GNU_SOURCE test with
15684         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
15685         * aclocal.m4: Regenerate.
15686         * configure: Regenerate.
15687         * config.in: Regenerate.
15688
15689 2008-03-27  Richard Guenther  <rguenther@suse.de>
15690
15691         * fold-const.c (target.h): Include.
15692         (fold_comparison): Fold comparison of addresses of decls
15693         that bind locally or of constants.  Consolidate address folding code.
15694         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
15695         results from fold_binary_to_constant.
15696         (compare_values_warnv): Likewise.
15697
15698 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
15699
15700         PR middle-end/35429
15701         * fold-const.c (fold_truthop): Check for integeral types when folding
15702         a == 0 && b == 0 and a != 0 || b != 0 .
15703
15704 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
15705
15706         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
15707
15708 2008-03-26  Andreas Schwab  <schwab@suse.de>
15709
15710         * doc/invoke.texi: Fix use of @item vs. @itemx.
15711
15712 2008-03-26  Tom Tromey  <tromey@redhat.com>
15713
15714         * Makefile.in (build/gensupport.o, build/print-rtl.o,
15715         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
15716         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
15717         build/gencodes.o, build/genconditions.o, build/genconfig.o,
15718         build/genconstants.o, build/genemit.o, build/genextract.o,
15719         build/genflags.o, build/genmddeps.o, build/genopinit.o,
15720         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
15721         options.h.
15722
15723 2008-03-26  Richard Guenther  <rguenther@suse.de>
15724
15725         Revert
15726         2008-03-26  Richard Guenther  <rguenther@suse.de>
15727
15728         * fold-const.c (target.h): Include.
15729         (fold_comparison): Fold comparison of addresses of two decls
15730         that bind locally.  Consolidate address folding code.
15731
15732 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15733
15734         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
15735         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
15736         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
15737         dconstsqrt2, dconstthird, dconste and/or dconst10.
15738         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
15739         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
15740         dconstsqrt2, dconste): Delete.
15741         (init_emit_once): Likewise.  Simplify initializing dconstm1.
15742         Constify variable.
15743         * real.c (get_real_const): New.
15744         * real.h (dconst3, dconst10, dconstm2, dconstthird,
15745         dconstsqrt2, dconste): Delete.
15746         (real_value_const, get_real_const): New.
15747
15748 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
15749
15750         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
15751
15752         * config/i386/i386.c (ix86_function_arg_boundary): Check
15753         BIGGEST_ALIGNMENT instead of 128.
15754         (setup_incoming_varargs_64): Likewise.
15755
15756 2008-03-26  Tom Tromey  <tromey@redhat.com>
15757
15758         * Makefile.in (DEPFILES): Add missing '/'.
15759
15760 2008-03-26  Richard Guenther  <rguenther@suse.de>
15761
15762         * fold-const.c (target.h): Include.
15763         (fold_comparison): Fold comparison of addresses of two decls
15764         that bind locally.  Consolidate address folding code.
15765
15766 2008-03-26  Nick Clifton  <nickc@redhat.com>
15767
15768         PR target/31232
15769         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
15770         not allow INT+INT as a legitimate addressing mode.
15771
15772 2008-03-26  Richard Guenther  <rguenther@suse.de>
15773
15774         * tree-flow.h (widen_bitfield): Remove declaration.
15775         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
15776         (widen_bitfield): Remove function.
15777         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
15778         code.
15779
15780 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15781
15782         PR target/31558
15783         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
15784         error_mark_node's.
15785
15786 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
15787
15788         PR rtl-optimization/35232
15789         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
15790         (forget_old_reloads_1, forget_marked_reloads): Don't clear
15791         reg_reloaded_call_part_clobbered here.
15792         (reload_regs_reach_end_p): New function.
15793         (reload_reg_rtx_for_input): New variable.
15794         (reload_reg_rtx_for_output): Likewise.
15795         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
15796         when reassigning a pseudo register.  Load reloadreg from
15797         reload_reg_rtx_for_input, moving the mode and register
15798         calculation to...
15799         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
15800         instead of the original when deciding whether an input reload
15801         would be a no-op or whether an output reload can be deleted.
15802         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
15803         when setting up new_spill_reg_store.  Load it from
15804         reload_reg_rtx_for_output, moving the mode and register
15805         calculation to...
15806         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
15807         instead of the original when deciding whether an output reload
15808         would be a no-op.  Do the same when modifying insn notes.
15809         Use rtx_equal_p instead of == to compare the registers.
15810         (inherit_piecemeal_p): Take a mode and two register numbers
15811         as argument.
15812         (emit_reload_insns): Clear new_spill_reg_store for every hard
15813         register in the reload register.  Remove spill registers
15814         from reg_reloaded_valid before considering whether to record
15815         inheritance information for them.  Use reload_reg_rtx_for_output
15816         instead of reg_rtx when recording output reloads.  Use
15817         reload_reg_rtx_for_input instead of reg_rtx when recording
15818         input reloads.  Set or clear reg_reloaded_call_part_clobbered
15819         at the same time as setting reg_reloaded_valid.
15820         (delete_output_reload): Add a new_reload_reg parameter and use it
15821         instead of rld[j].reg_rtx.
15822         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
15823         calls accordingly.
15824
15825 2008-03-25  Tom Tromey  <tromey@redhat.com>
15826
15827         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
15828         (build/genattr.o): Likewise.
15829         (build/genattrtab.o): Likewise.
15830         (build/gencodes.o): Likewise.
15831         (build/genconfig.o): Likewise.
15832         (build/genconstants.o): Likewise.
15833         (build/genemit.o): Likewise.
15834         (build/genextract.o): Likewise.
15835         (build/genflags.o): Likewise.
15836
15837 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
15838
15839         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
15840         instead of size_int for integer types.
15841         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
15842         to match type of MINUS_EXPR.
15843
15844 2008-03-25  Tom Tromey  <tromey@redhat.com>
15845
15846         * configure: Rebuilt.
15847         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
15848         Makefile.
15849
15850 2008-03-25  Tom Tromey  <tromey@redhat.com>
15851
15852         * config/x-solaris (host-solaris.o): Update.
15853         * config/x-linux (host-linux.o): Update.
15854         * config/x-hpux (host-hpux.o): Update.
15855         * config/x-darwin (host-darwin.o): Update.
15856         * config/v850/t-v850e (v850-c.o): Update.
15857         * config/v850/t-v850 (v850-c.o): Update.
15858         * config/t-vxworks (vxworks.o): Update.
15859         * config/t-sol2 (sol2-c.o, sol2.o): Update.
15860         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
15861         * config/spu/t-spu-elf (spu-c.o): Update.
15862         (spu.o): Remove.
15863         * config/sh/t-symbian (sh-c.o): Update.
15864         (symbian.o): Update.
15865         * config/sh/t-sh (sh-c.o): Update.
15866         * config/score/t-score-elf (score7.o, score3.o): Update.
15867         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
15868         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
15869         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
15870         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
15871         (rs6000.o): Remove.
15872         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
15873         * config/m32c/t-m32c (m32c-pragma.o): Update.
15874         * config/ia64/t-ia64 (ia64-c.o): Update.
15875         * config/i386/x-mingw32 (host-mingw32.o): Update.
15876         * config/i386/x-i386 (driver-i386.o): Update.
15877         * config/i386/x-darwin (host-i386-darwin.o): Update.
15878         * config/i386/x-cygwin (host-cygwin.o): Update.
15879         * config/i386/t-nwld (nwld.o): Update.
15880         * config/i386/t-netware (netware.o): Update.
15881         * config/i386/t-interix (winnt.o): Update.
15882         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
15883         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
15884         msformat-c.o): Update.
15885         * config/bfin/t-bfin-linux (generated_files): Add
15886         linux-sysroot-suffix.h.
15887         * config/arm/t-wince-pe (pe.o): Update.
15888         * config/arm/t-strongarm-pe (pe.o): Update.
15889         * config/arm/t-pe (pe.o): Update.
15890         * config/arm/t-arm (arm-c.o): Update.
15891         * doc/install.texi (Prerequisites): Require make 3.80.
15892         * Makefile.in: Remove .o targets.
15893         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
15894         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
15895         (simple_generated_h, simple_generated_c): Move earlier.
15896         (generated_files): New variable.
15897         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
15898         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
15899         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
15900         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
15901         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
15902         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
15903         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
15904         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
15905         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
15906         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
15907         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
15908         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
15909         (.c.o): Remove.
15910         (COMPILE.base, COMPILE): New variables.
15911         (%.o): New pattern rule.
15912         (ALL_HOST_OBJS): New variable.
15913         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
15914         (dummy-checksum.o, cc1-checksum.o): Remove.
15915         (DRIVER_SHLIB): New variable.
15916         (DRIVER_DEFINES): Use it.
15917         (gencondmd.c): Move out of build/.
15918         (s-conditions): Update.
15919         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
15920         (ALL_BUILD_OBJS): Likewise.
15921         (build/%.o): Use BUILDCOMPILE.
15922         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
15923         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
15924         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
15925         build/gencheck.o, build/gencodes.o, build/genconditions.o,
15926         build/genconfig.o, build/genconstants.o, build/genemit.o,
15927         build/genextract.o, build/genflags.o, build/genmddeps.o,
15928         build/genopinit.o, build/genoutput.o, build/genpeep.o,
15929         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
15930         build/gen-protos.o, build/scan.o, build/fix-header.o,
15931         build/scan-decls.o): Simplify.
15932         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
15933         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
15934         prefix.o, toplev.o): Reduce to variable setting.
15935         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
15936         ($(out_object_file), gcc-options.o): New targets.
15937         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
15938         * configure: Rebuilt.
15939         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
15940         * doc/sourcebuild.texi (Front End Directory): Document new variable.
15941
15942 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
15943
15944         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
15945         complain when we hit an error, return ERROR_MARK_NODE.
15946
15947 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
15948
15949         * config/sh/constraints.md (Pso, Psz): New constraints.
15950         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
15951         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
15952
15953 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
15954
15955         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
15956         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
15957
15958 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
15959
15960         * config/sh/sh.md (prefetch): Add condition for SH2A target.
15961         (prefetch_sh2a): New.
15962
15963 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
15964             Naveen.H.S  <naveen.hs@kpitcummins.com>
15965
15966         * config/sh/constraints.md (I28): New constraint.
15967         * config/sh/sh.c (broken_move): Add support for movi20s.
15968         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
15969
15970 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
15971             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
15972             Naveen.H.S  <naveen.hs@kpitcummins.com>
15973
15974         * config/sh/sh.c (SH_ATTRIBUTES): Define.
15975         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
15976         (print_operand): Handle resbank in %@ operand code.
15977         (sh_encode_section_info): New.
15978         (push_regs): Add conditions for resbank.
15979         (sh_expand_epilogue): Likewise.
15980         (sh_insert_attributes): Likewise.
15981         (sh_attribute_table): Likewise.
15982         (sh_handle_resbank_handler_attribute): New.
15983         (sh2a_handle_function_vector_handler_attribute): New.
15984         (sh2a_is_function_vector_call): New.
15985         (sh2a_get_function_vector_number): New.
15986         (sh2a_function_vector_p): New.
15987         (sh_cfun_resbank_handler_p): New.
15988         * config/sh/sh.md (calli): Emit jsr/n if possible.
15989         (calli_tbr_rel): New.
15990         (calli_pcrel): Emit jsr/n if possible.
15991         (return_i): Emit rts/n if possible.
15992         (call_valuei_tbr_rel): New.
15993         (call_valuei_pcrel): Add condition for SH2A target.
15994         (call_value): Likewise.
15995         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
15996         (sh2a_get_function_vector_number): Likewise.
15997         (sh2a_is_function_vector_call): Likewise.
15998         * doc/extend.texi: Document TBR relative addressing of SH2A.
15999         (resbank): Add description for SH2A.
16000
16001 2008-03-24  Richard Guenther  <rguenther@suse.de>
16002
16003         PR c/22371
16004         * gimplify.c (gimplify_modify_expr): For frontend type-correct
16005         pointer assignments change conversions according to middle-end rules.
16006         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
16007         * configure.ac: Include type checking in yes.
16008         * configure: Regenerate.
16009
16010 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16011
16012         * diagnostic.c (diagnostic_count_diagnostic): Delete.
16013         (diagnostic_report_diagnostic): Update. Handle ICEs here.
16014
16015 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
16016
16017         * gthr-vxworks.h (UNUSED): Define.
16018
16019 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
16020
16021         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
16022
16023 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
16024
16025         * doc/extend.texi (Function Attributes): Add missing comma in the
16026         example of the "alloc_size" attribute.
16027
16028 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
16029
16030         Revert:
16031         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
16032
16033         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
16034         32bit host.
16035
16036         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
16037
16038         PR target/35496
16039         * stor-layout.c (update_alignment_for_field): Set minimum alignment
16040         of the underlying type of a MS bitfield layout to the natural
16041         alignment of the type.
16042
16043         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
16044
16045         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
16046         to their natural alignment to avoid store forwarding stalls.
16047
16048 2008-03-22  Richard Guenther  <rguenther@suse.de>
16049
16050         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
16051         For PHI nodes verify the address is invariant.
16052         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
16053         (get_symbol_constant_value): Use is_gimple_min_invariant.
16054         (maybe_fold_stmt_indirect): Likewise.
16055
16056 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
16057
16058         PR rtl-optimization/33927
16059         * Makefile.in (dse.o): Depend on $(TM_P_H).
16060         * expr.h (extract_low_bits): Declare.
16061         * expmed.c (extract_low_bits): New function.
16062         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
16063         * dse.c: Include tm_p.h.
16064         (find_shift_sequence): Remove the read_reg argument and return the
16065         read value.  Emit the instructions instead of returning them.
16066         Iterate on new_mode rather than calculating it each time.
16067         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
16068         source to NEW_MODE and extract_low_bits to convert the shifted
16069         value to READ_MODE.
16070         (replace_read): Allow the load and store to have different mode
16071         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
16072         or extraction instructions before trying the replacement.  Update
16073         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
16074
16075 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
16076
16077         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
16078         to their natural alignment to avoid store forwarding stalls.
16079
16080 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16081
16082         PR target/27946
16083         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
16084         encouraging but not allowing gprs for input;
16085         change the input constraint to !f#r.
16086         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
16087         gprs for output;
16088         change the output constraint to !f#r.
16089
16090 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
16091
16092         PR target/13958
16093         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
16094         corresponding post-reload splitters.
16095         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
16096         when x87 FP math is selected.
16097         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
16098         New function prototype.
16099         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
16100         unreachable function to ease macroization of insn patterns.
16101
16102 2008-03-21  Martin Jambor  <mjambor@suse.cz>
16103
16104         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
16105         reference dumps if ddr is NULL or dependence is unknown.
16106
16107 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16108
16109         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
16110         unsigned extension into account.
16111         (ATOMIC_COMPARE_AND_SWAP): Likewise.
16112         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
16113         Do computations on a scratch register.
16114
16115 2008-03-21  Richard Guenther  <rguenther@suse.de>
16116
16117         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
16118         Use is_gimple_min_invariant instead of TREE_INVARIANT.
16119         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
16120         * tree-ssa-dom.c (record_equality): Likewise.
16121         * tree-inline.c (copy_body_r): Likewise.
16122         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
16123         TREE_INVARIANT.
16124
16125 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16126
16127         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
16128         as 'delete_unused' argument.
16129
16130 2008-03-20  Richard Guenther  <rguenther@suse.de>
16131
16132         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
16133         special casing of constant qualifiers.
16134         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
16135         care about them in general.
16136         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
16137         regardless of their type.
16138         (fold_stmt_r): Forcefully fold *& if we end up with that.
16139
16140 2008-03-20  Paul Brook  <paul@codesourcery.com>
16141
16142         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
16143         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
16144         linker flags.
16145         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
16146         definition.
16147         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
16148         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
16149
16150 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
16151
16152         * common.opt (Wmudflap): New option.
16153         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
16154         (mx_register_decls): Likewise.
16155         (mudflap_finish_file): Likewise.
16156         * doc/invoke.texi: Document -Wno-mudflap.
16157
16158 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
16159
16160         * c-format.c (replace_format_name_to_system_name): New.
16161         (cmp_attribs): New.
16162         (convert_format_name_to_system_name): New.
16163         (decode_format_attr): Add use of convert_format_name_to_system_name.
16164         (format_types_orig): Add gnu_ prefix to names.
16165         (check_format_info_main): Special treating of \0 escaped names for
16166         supporting multi-character format specifiers as I32, I64.
16167         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
16168         (gnu_target_overrides_format_attributes): New.
16169         * c-format.h: Add structure target_ovr_attr to hold
16170         system specific formatter names.
16171         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
16172         msformat-c.o file to c_target_objs and cxx_target_objs.
16173         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
16174         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
16175         (TARGET_N_FORMAT_TYPES): New.
16176         * config/i386/msformat-c.c: New.
16177         * config/i386/t-cygming: Add build rule for msformat-c.o.
16178         * doc/extend.texi: Add new format names gnu_* and ms_* and
16179         further details.
16180         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
16181
16182 2008-03-20  Ira Rosen  <irar@il.ibm.com>
16183
16184         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
16185         optimizations turned on under -O3.
16186         (ftree-vectorize): Add that the flag is turned on with -O3.
16187
16188 2008-03-20  Ben Elliston  <bje@au.ibm.com>
16189
16190         * regmove.c (try_auto_increment): Fix spelling error in comment.
16191         * final.c (final_scan_insn): Likewise.
16192
16193 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
16194
16195         PR target/14552
16196         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
16197         allocator preferences for "y" and "r" class registers.
16198         ("*mov<mode>_internal"): Ditto.
16199         ("*movv2sf_internal_rex64"): Ditto.
16200         ("*movv2sf_internal"): Ditto.
16201
16202 2008-03-19  Michael Matz  <matz@suse.de>
16203
16204         PR middle-end/35616
16205         * calls.c (expand_call): Check overlap of arguments with call
16206         address for sibcalls.
16207
16208 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
16209
16210         PR target/35496
16211         * stor-layout.c (update_alignment_for_field): Set minimum alignment
16212         of the underlying type of a MS bitfield layout to the natural
16213         alignment of the type.
16214
16215 2008-03-19  Jan Hubicka  <jh@suse.cz>
16216
16217         PR other/35094
16218         * toplev.c (decode_d_option): Handle all CPP flags.
16219         * tree-vrp.c: Update tree_pass descriptors.
16220         * regrename.c: Update tree_pass descriptors.
16221         * fwprop.c: Update tree_pass descriptors.
16222         * doc/invoke.texi: Remove documentation of dropped -d? flags.
16223         * tree-into-ssa.c: Update tree_pass descriptors.
16224         * tree-dump.c: Update tree_pass descriptors.
16225         * tree-complex.c: Update tree_pass descriptors.
16226         * tree-dump.h: Update tree_pass descriptors.
16227         * see.c: Update tree_pass descriptors.
16228         * cgraphbuild.c: Update tree_pass descriptors.
16229         * tracer.c: Update tree_pass descriptors.
16230         * tree-loop-distribution.c: Update tree_pass descriptors.
16231         * cgraph.c: Update tree_pass descriptors.
16232         * postreload-gcse.c: Update tree_pass descriptors.
16233         * postreload.c: Update tree_pass descriptors.
16234         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
16235         * tree-tailcall.c: Update tree_pass descriptors.
16236         * tree-pass.h (tree_opt_pass): Rename to ...
16237         (opt_pass) ... this one; add "type" field and remove letter field.
16238         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
16239         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
16240         all_lowering_passes): Update declaration.
16241         * ipa-cp.c: Update tree_pass descriptors.
16242         * final.c: Update tree_pass descriptors.
16243         * omp-low.c: Update tree_pass descriptors.
16244         * tree-ssa-dse.c: Update tree_pass descriptors.
16245         * ipa-reference.c: Update tree_pass descriptors.
16246         * tree-ssa-uncprop.c: Update tree_pass descriptors.
16247         * auto-inc-dec.c: Update tree_pass descriptors.
16248         * reorg.c: Update tree_pass descriptors.
16249         * cgraphunit.c: Update tree_pass descriptors.
16250         * tree-ssa-copyrename.c: Update tree_pass descriptors.
16251         * tree-ssa-ccp.c: Update tree_pass descriptors.
16252         * df-core.c: Update tree_pass descriptors.
16253         * mode-switching.c: Update tree_pass descriptors.
16254         * tree-nomudflap.c: Update tree_pass descriptors.
16255         * modulo-sched.c: Update tree_pass descriptors.
16256         * ipa-pure-const.c: Update tree_pass descriptors.
16257         * cse.c: Update tree_pass descriptors.
16258         * web.c: Update tree_pass descriptors.
16259         * tree-stdarg.c: Update tree_pass descriptors.
16260         * tree-ssa-math-opts.c: Update tree_pass descriptors.
16261         * tree-ssa-dom.c: Update tree_pass descriptors.
16262         * tree-nrv.c: Update tree_pass descriptors.
16263         * tree-ssa-alias.c: Update tree_pass descriptors.
16264         * loop-init.c: Update tree_pass descriptors.
16265         * gimple-low.c: Update tree_pass descriptors.
16266         * ipa-inline.c: Update tree_pass descriptors.
16267         * tree-ssa-sink.c: Update tree_pass descriptors.
16268         * global.c: Update tree_pass descriptors.
16269         * ifcvt.c: Update tree_pass descriptors.
16270         * jump.c: Update tree_pass descriptors.
16271         * predict.c: Update tree_pass descriptors.
16272         * tree-ssa-loop.c: Update tree_pass descriptors.
16273         * recog.c: Update tree_pass descriptors.
16274         * dse.c: Update tree_pass descriptors.
16275         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
16276         * tree-eh.c: Update tree_pass descriptors.
16277         * regmove.c: Update tree_pass descriptors.
16278         * local-alloc.c
16279         * function.c: Update tree_pass descriptors.
16280         * tree-vectorizer.c: Update tree_pass descriptors.
16281         * gcse.c: Update tree_pass descriptors.
16282         * ipa-type-escape.c: Update tree_pass descriptors.
16283         * tree-if-conv.c: Update tree_pass descriptors.
16284         * init-regs.c: Update tree_pass descriptors.
16285         * ipa.c: Update tree_pass descriptors.
16286         * tree-ssa-phiopt.c: Update tree_pass descriptors.
16287         * rtl-factoring.c: Update tree_pass descriptors.
16288         * lower-subreg.c: Update tree_pass descriptors.
16289         * bt-load.c: Update tree_pass descriptors.
16290         * tree-dfa.c: Update tree_pass descriptors.
16291         * except.c: Update tree_pass descriptors.
16292         * emit-rtl.c: Update tree_pass descriptors.
16293         * cfgexpand.c: Update tree_pass descriptors.
16294         * tree-cfgcleanup.c: Update tree_pass descriptors.
16295         * cfgcleanup.c: Update tree_pass descriptors.
16296         * tree-ssa-pre.c: Update tree_pass descriptors.
16297         * tree-sra.c: Update tree_pass descriptors.
16298         * tree-mudflap.c: Update tree_pass descriptors.
16299         * tree-ssa-copy.c: Update tree_pass descriptors.
16300         * cfglayout.c: Update tree_pass descriptors.
16301         * tree-ssa-forwprop.c: Update tree_pass descriptors.
16302         * tree-ssa-dce.c: Update tree_pass descriptors.
16303         * tree-ssa.c: Update tree_pass descriptors.
16304         * regclass.c: Update tree_pass descriptors.
16305         * integrate.c: Update tree_pass descriptors.
16306         * tree-optimize.c: Update tree_pass descriptors.
16307         * tree-ssa-phiprop.c: Update tree_pass descriptors.
16308         * tree-object-size.c: Update tree_pass descriptors.
16309         * combine.c: Update tree_pass descriptors.
16310         * tree-outof-ssa.c: Update tree_pass descriptors.
16311         * bb-reorder.c: Update tree_pass descriptors.
16312         * stack-ptr-mod.c: Update tree_pass descriptors.
16313         * var-tracking.c: Update tree_pass descriptors.
16314         * tree-profile.c: Update tree_pass descriptors.
16315         * tree-vect-generic.c: Update tree_pass descriptors.
16316         * reg-stack.c: Update tree_pass descriptors.
16317         * sched-rgn.c: Update tree_pass descriptors.
16318         * tree-ssa-structalias.c: Update tree_pass descriptors.
16319         * tree-cfg.c: Update tree_pass descriptors.
16320         * passes.c (current_pass): Update declaration.
16321         (finish_optimization_passes): Update.
16322         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
16323         (register_one_dump_file, register_dump_files_1, next_pass_1):
16324         Update arguments.
16325         (init_optimization_passes): Update handling of new types.
16326         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
16327         * ipa-struct-reorg.c: Update tree_pass descriptors.
16328         * tree-ssa-reassoc.c: Update tree_pass descriptors.
16329         * combine-stack-adj.c: Update tree_pass descriptors.
16330         * cfgrtl.c: Update tree_pass descriptors.
16331         * dce.c: Update tree_pass descriptors.
16332         * tree-ssanames.c: Update tree_pass descriptors.
16333
16334 2008-03-19  Richard Guenther  <rguenther@suse.de>
16335
16336         PR middle-end/35609
16337         * tree-ssa.c (walk_data): New structure.
16338         (warn_uninitialized_var): If not always_executed warn with "maybe"
16339         instead of "is".
16340         (execute_early_warn_uninitialized): Compute post-dominators.
16341         Initialize always_executed before processing each basic block.
16342
16343 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
16344
16345         PR target/35504
16346         * config/i386/i386.c (x86_this_parameter): Calculate correct location
16347         of "this" pointer when "regparm = N" or "fastcall" is in effect.
16348
16349 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16350
16351         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
16352
16353 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
16354
16355         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
16356         is true.
16357         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
16358         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
16359         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
16360         target after ignore has been set, and move there also the commputation
16361         of subtarget and original_target.
16362         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
16363         (LANG_HOOKS_INITIALIZER): Remove it.
16364         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
16365
16366 2008-03-18  Richard Guenther  <rguenther@suse.de>
16367
16368         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
16369         found an expression with constants, note that in the VN for the lhs.
16370         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
16371         fold them to constants if possible.  Run cleanup_cfg if done so.
16372         (execute_pre): Return todo.
16373         (do_pre): Likewise.
16374         (execute_fre): Likewise.
16375         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
16376         of constants.
16377         (get_prop_source_stmt): Look through pointer conversions.
16378
16379 2008-03-18  Jan Hubicka  <jh@suse.cz>
16380
16381         * tree-pretty-print.c: Include predict.h.
16382         (dump_generic_node): Dump predictor.
16383         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
16384         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
16385         * gimple-low.c (lower_stmt): Likewise.
16386         * expr.c (expand_expr_real): Likewise.
16387         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
16388         them.
16389         (build_predict_expr, build_predict_expr): New.
16390         * predict.h (predictor_name, build_predict_expr): Update.
16391         * c-typeck.c (c_finish_bc_stmt): Add prediction.
16392         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
16393         * predict.def (PRED_CONTINUE): Update hitrate.
16394         * tree.def (PREDICT_EXPR): Define.
16395         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
16396         do not handle BIND_EXPR.
16397         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
16398         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
16399         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
16400         operands.
16401
16402 2008-03-18  Michael Matz  <matz@suse.de>
16403
16404         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
16405
16406 2008-03-18  Richard Guenther  <rguenther@suse.de>
16407
16408         * tree-gimple.h (is_gimple_invariant_address): Declare.
16409         (is_gimple_constant): Likewise.
16410         * tree-gimple.c (is_gimple_constant): New function.
16411         (is_gimple_invariant_address): Likewise.
16412         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
16413         and is_gimple_invariant_address.
16414         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
16415         previous change.
16416         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
16417         an addressable base.
16418
16419 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
16420
16421         PR middle-end/35611
16422         * gimplify.c (gimplify_expr): Gimplify second operand of
16423         OMP_ATOMIC_LOAD.
16424
16425 2008-03-17  Richard Guenther  <rguenther@suse.de>
16426
16427         PR tree-optimization/19637
16428         * fold-const.c (fold_unary): Remove restrictions of removing
16429         intermediate pointer-conversions (P2)(P1)P0.
16430         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
16431         conversion to void pointer.
16432         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
16433
16434 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
16435
16436         PR debug/31510
16437         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
16438         emulated thread local variables.
16439
16440 2008-03-16  Richard Guenther  <rguenther@suse.de>
16441
16442         PR middle-end/35607
16443         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
16444         expand TREE_INVARIANT operations that are not gimple invariant.
16445
16446 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
16447
16448         * doc/extend.texi (Alignment): Say that the ABI controls
16449         the __alignof__ for non-strict-alignment targets rather
16450         than being a recommendation.
16451
16452 2008-03-15  Paul Brook  <paul@codesourcery.com>
16453
16454         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
16455         annotations.
16456         (arm_output_fn_unwind): Mark functions that can not be unwound.
16457
16458 2008-03-15  Paul Brook  <paul@codesourcery.com>
16459
16460         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
16461         extension instructions.
16462
16463 2008-03-15  Richard Guenther  <rguenther@suse.de>
16464
16465         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
16466         and fold constant aggregate refs.
16467         (fold_const_aggregate_ref): Handle string constants
16468         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
16469         (evaluate_stmt): Simplify now that ccp_fold folds constant
16470         aggregate refs.
16471
16472 2008-03-15  Paul Brook  <paul@codesourcery.com>
16473
16474         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
16475         (extzv): Use gen_extzv_t2.
16476         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
16477
16478 2008-03-15  Richard Guenther  <rguenther@suse.de>
16479
16480         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
16481         (fold_const_aggregate_ref): Likewise.
16482         (get_value): Return NULL if we don't have any values.
16483         (ccp_finalize): Set const_val to NULL after freeing it.
16484         * tree-flow.h (get_symbol_constant_value): Declare.
16485         (fold_const_aggregate_ref): Likewise.
16486         * tree-ssa-sccvn.c (try_to_simplify): Use them.
16487
16488 2008-03-15  Richard Guenther  <rguenther@suse.de>
16489
16490         PR middle-end/35593
16491         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
16492         to not produce negative array indices if not allowed.  Add
16493         parameter to indicate that.
16494         (maybe_fold_offset_to_component_ref): Allow negative array
16495         indices only for the first member of a structure.
16496         (maybe_fold_offset_to_reference): Allow negative array indices.
16497         (maybe_fold_stmt_addition): Likewise.
16498
16499 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
16500             Anatoly Sokolov <aesok@post.ru>
16501
16502         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
16503         (avr_arch): Add ARCH_AVR6.
16504         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
16505         (initial_elimination_offset): Initialize and use 'avr_pc_size'
16506         instead of fixed value 2.
16507         (print_operand_address): Use gs() asm specifier instead of pm().
16508         (avr_assemble_integer): (Ditto.).
16509         (avr_output_addr_vec_elt): (Ditto.).
16510         (print_operand): Handle "!" code.
16511         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
16512         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
16513         (AVR_HAVE_EIJMP_EICALL): Define.
16514         (AVR_3_BYTE_PC): Redefine.
16515         (AVR_2_BYTE_PC): (Ditto.).
16516         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
16517         (LINK_SPEC): Add atmega2560 and atmega2561.
16518         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
16519         (crtm2561.o).
16520         * config/avr/avr.md (call_insn): Use eicall instead of icall
16521         for 3 byte PC devices.
16522         (call_value_insn): (Ditto.).
16523         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
16524         (indirect_jump): Use only for for 2 byte PC devices.
16525         (*tablejump): (Ditto.).
16526         (*indirect_jump_avr6): Add insn.
16527         (*tablejump_rjmp): Don't use for 3 byte PC devices.
16528         * config/avr/libgcc.S (__prologue_saves__): Use eijmp
16529         instead of ijmp for 3 byte PC devices.
16530         (__tablejump2__): (Ditto.).
16531         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
16532         (MULITLIB_DIRNAMES): (Ditto.).
16533         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
16534
16535 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
16536
16537         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
16538         "sse2_umulsidi3".  Use V1DI mode for operand 0.
16539         ("mmx_psadbw"): Use V1DI mode for operand 0.
16540         * config/i386/i386-modes.def (V1SI): New vector mode.
16541         * config/i386/i386.c (struct builtin_description)
16542         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
16543         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
16544         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
16545         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
16546         v1di_ftype_v8qi_v8qi type.
16547         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
16548
16549         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
16550         __builtin_ia32_pmuludq]: Fix the mode of return value.
16551
16552 2008-03-15  Richard Guenther  <rguenther@suse.de>
16553
16554         PR middle-end/35595
16555         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
16556         being a PHI_NODE.
16557
16558 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
16559
16560         * doc/invoke.texi (Option Summary, Xtensa Options): Document
16561         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
16562         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
16563         unless TARGET_SERIALIZE_VOLATILE is enabled.
16564         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
16565         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
16566         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
16567
16568 2008-03-14  Richard Guenther  <rguenther@suse.de>
16569
16570         PR tree-optimization/34172
16571         * tree-flow.h (refs_may_alias_p): Declare.
16572         (get_single_def_stmt): Likewise.
16573         (get_single_def_stmt_from_phi): Likewise.
16574         (get_single_def_stmt_with_phi): Likewise.
16575         * tree-dfa.c (refs_may_alias_p): New function.
16576         (get_single_def_stmt): Likewise.
16577         (get_single_def_stmt_from_phi): Likewise.
16578         (get_single_def_stmt_with_phi): Likewise.
16579         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
16580         (vn_reference_lookup_1): New helper function.
16581         (vn_reference_lookup): Walk the virtual use-def chain to
16582         continue searching for a match if the def does not alias the
16583         reference we are looking for.
16584
16585 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
16586
16587         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
16588         archive and Perzl.  Update The Written Word listing.
16589
16590 2008-03-14  Richard Guenther  <rguenther@suse.de>
16591
16592         PR tree-optimization/34043
16593         PR tree-optimization/33989
16594         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
16595         when doing FRE.
16596         (bitmap_find_leader): Use extra argument to verify dominance
16597         relationship inside a basic-block.
16598         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
16599         (find_leader_in_sets): Adjust.
16600         (create_component_ref_by_pieces): Take extra argument for
16601         dominance check, handle lookup failures.
16602         (find_or_generate_expression): Likewise.
16603         (create_expression_by_pieces): Likewise.
16604         (insert_into_preds_of_block): Adjust.
16605         (create_value_expr_from): If asked for, verify all operands
16606         are in the blocks AVAIL_OUT set.
16607         (make_values_for_stmt): Check for SSA_NAMEs that are life
16608         over an abnormal edge.
16609         (compute_avail): Remove such check.
16610         (do_SCCVN_insertion): New function.
16611         (eliminate): If we do not find a leader suitable for replacement
16612         insert a replacement expression from SCCVN if available.
16613         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
16614         (struct vn_ssa_aux): Add needs_insertion flag.
16615         * tree-ssa-sccvn.c (may_insert): New global flag.
16616         (copy_reference_ops_from_ref): Value-number union member access
16617         based on its size, not type and member if insertion is allowed.
16618         (visit_reference_op_load): For a weak match from union type
16619         punning lookup a view-converted value and insert a SSA_NAME
16620         for that value if that is not found.
16621         (visit_use): Make dumps shorter.  Do not disallow value numbering
16622         SSA_NAMEs that are life over an abnormal edge to constants.
16623         (free_scc_vn): Release inserted SSA_NAMEs.
16624         (run_scc_vn): New flag to specify whether insertion is allowed.
16625         Process SSA_NAMEs in forward order.
16626         * tree-ssa-loop-im.c (for_each_index): Handle invariant
16627         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
16628         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
16629         pointer type to/from integral types that do not change the
16630         precision to regular conversions.
16631
16632 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
16633
16634         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
16635         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
16636         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
16637         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
16638         input arguments and the mode of return value.  Built-in functions
16639         that operate on whole 64-bit MMX register now use V1DI mode.
16640
16641 2008-03-13  Alon Dayan  <alond@il.ibm.com>
16642             Olga Golovanevsky  <olga@il.ibm.com>
16643
16644         PR tree-optimization/35041
16645         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
16646         to locate the right position in a statement.
16647
16648 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
16649
16650         PR target/34000
16651         PR target/35553
16652         * config/i386/xmmintrin.h:  Change all static inline functions to
16653         extern inline and add __gnu_inline__ attribute.
16654         * config/i386/bmintrin.h: Ditto.
16655         * config/i386/smmintrin.h: Ditto.
16656         * config/i386/tmmintrin.h: Ditto.
16657         * config/i386/mmintrin-common.h: Ditto.
16658         * config/i386/ammintrin.h: Ditto.
16659         * config/i386/emmintrin.h: Ditto.
16660         * config/i386/pmmintrin.h: Ditto.
16661         * config/i386/mmintrin.h: Ditto.
16662         * config/i386/mm3dnow.h: Ditto.
16663
16664 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
16665
16666         PR middle-end/35185
16667         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
16668         (lower_omp_2): New function.
16669         (lower_omp_1, lower_omp): Rewritten.
16670
16671 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
16672
16673         PR 35054
16674         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
16675         with the phrase "Microsoft Windows compilers".
16676         (Push/Pop Macro Pragmas): New subsection. Document
16677         #pragma push_macro and pragma pop_macro.
16678
16679 2008-03-12  Paul Brook  <paul@codesourcery.com>
16680
16681         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
16682
16683 2008-03-12  Paul Brook  <paul@codesourcery.com>
16684
16685         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
16686         (thumb2_alusi3_short): Exclude PLUS and MINUS.
16687         (thumb2_addsi_shortim): Rename ...
16688         (thumb2_addsi_short): ... to this.  Allow register operands.
16689         (thumb2_subsi_short): New pattern.
16690         (thumb2_one_cmplsi2_short,
16691         thumb2_negsi2_short): New patterns and peepholes.
16692
16693 2008-03-12  Paul Brook  <paul@codesourcery.com>
16694
16695         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
16696
16697 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
16698
16699         * config/i386/i386.md (int_cond): New code iterator.
16700         (fp_cond): Ditto.
16701         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
16702         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
16703         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
16704         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
16705         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
16706         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
16707         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
16708         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
16709
16710 2008-03-12  Paul Brook  <paul@codesourcery.com>
16711
16712         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
16713         instead of {arm,thumb}_compute_save_reg_mask.
16714         (output_return_instruction): Ditto.
16715         (thumb_unexpanded_epilogue): Ditto.
16716         (thumb1_expand_prologue): Ditto.
16717         (thumb1_output_function_prologue): Ditto.
16718         (arm_set_return_address): Ditto.
16719         (thumb_set_return_address): Ditto.
16720         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
16721         regs to achieve stack alignment.
16722         (thumb1_compute_save_reg_mask): Fix compiler warning.
16723         (arm_output_epilogue): Use offsets->saved_regs_mask.
16724         Adjust stack pointer by poping call clobered registers.
16725         (arm_expand_prologue): Use offsets->saved_regs_mask.
16726         Adjust stack pointer by pushing extra registers.
16727         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
16728
16729 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
16730
16731         PR tree-opt/35422
16732         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
16733         conversion to the operands of a multiplication.
16734
16735 2008-03-12  Richard Guenther  <rguenther@suse.de>
16736
16737         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
16738         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
16739         * timevar.def (TV_TREE_PHIPROP): Add.
16740         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
16741         pass description.  Use TV_TREE_PHIPROP.
16742         * tree-ssa-forwprop.c: Remove phiprop code.
16743
16744 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
16745
16746         PR middle-end/35549
16747         * omp-low.c (maybe_lookup_decl): Constify first argument.
16748         (use_pointer_for_field): Change last argument from bool to
16749         omp_context *.  Disallow shared copy-in/out in nested
16750         parallel if decl is shared in outer parallel too.
16751         (build_outer_var_ref, scan_sharing_clauses,
16752         lower_rec_input_clauses, lower_copyprivate_clauses,
16753         lower_send_clauses, lower_send_shared_vars): Adjust callers.
16754
16755 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
16756             Ira Rosen  <irar@il.ibm.com>
16757
16758         * tree-vectorizer.c (free_stmt_vec_info): New function.
16759         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
16760         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
16761         * tree-vectorizer.h (free_stmt_vec_info): Declare.
16762         * tree-vect-transform.c (vectorizable_conversion): Free
16763         vec_oprnds0 if it was allocated.
16764         (vect_permute_store_chain): Remove unused VECs.
16765         (vectorizable_store): Free VECs that are allocated in the..
16766         function.
16767         (vect_transform_strided_load, vectorizable_load): Likewise.
16768         (vect_remove_stores): Simplify the code.
16769         (vect_transform_loop): Move code to vect_remove_stores().
16770         Call vect_remove_stores() and free_stmt_vec_info().
16771
16772 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16773
16774         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
16775         TARGET_HPUX.  Revise comment.
16776         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
16777         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
16778         Use sr4 variant of `be' instruction when not generating PIC code.
16779         (attr_length_call): Adjust for above change.
16780
16781 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16782
16783         * ipa-reference.c (static_execute): Remove module_statics_const and
16784         associated setting code.
16785
16786 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
16787
16788         PR target/35540
16789         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
16790         predicate for operand 1.
16791         (paritysi2_cmp): Use register_operand predicate for operand 2.
16792         Use earlyclobber modifier for operand 1.  Remove support for
16793         memory operands.
16794         (paritydi2_cmp): Use register_operand predicate for operand 3.
16795         Use earlyclobber modifier for operand 1.  Remove support for
16796         memory operands.
16797
16798 2008-03-11  Paul Brook  <paul@codesourcery.com>
16799             Vladimir Prus  <vladimir@codesourcery.com>
16800
16801         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
16802         (arm_compute_save_reg0_reg12_mask): Always
16803         check if register 11 must be saved.  Always safe hard frame pointer
16804         when frame_pointer_needeed.
16805         (arm_compute_save_reg_mask): Save IP and PC
16806         only with apcs frames.
16807         (arm_output_epilogue): Adjust Thumb2 codepath to
16808         be also invoked and work for ARM non-apcs frames.
16809         (arm_expand_prologue): Don't bother saving IP
16810         for non-apcs frame, since it's not clobbered by
16811         prologue code.  Implement non-apcs frame
16812         layout.
16813
16814 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
16815
16816         PR rtl-optimization/35281
16817         * expr.c (convert_move): Use a new pseudo for the intermediate
16818         from_mode->word_mode result.
16819
16820 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
16821
16822         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
16823         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
16824         * toplev.c (compile_file): Don't call it.
16825
16826 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
16827
16828         PR middle-end/35526
16829         * expr.c (store_expr): Call emit_block_move if the mode
16830         of "temp" RTX is BLKmode.
16831
16832 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16833             Richard Guenther  <rguenther@suse.de>
16834
16835         PR tree-optimization/31358
16836         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
16837         the step with a NULL_TREE.
16838         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
16839         to sizetype if type is a pointer type.
16840         (add_candidate_1): Don't convert the base and step to
16841         the generic type if the orginal type is a pointer type.
16842         (add_iv_value_candidates): Use sizetype for the step
16843         if type is a pointer type.
16844         (cand_value_at): Likewise.
16845         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
16846         for pointer types.
16847         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
16848         Don't convert the tem affine to the type.
16849         (add_elt_to_tree): Use sizetype for the step if a pointer.
16850         Use POINTER_PLUS_EXPR for pointers.
16851         (aff_combination_to_tree): Use sizetype for the step if a
16852         pointer.
16853
16854 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
16855
16856         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
16857         Remove commutativity hint.
16858
16859 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
16860
16861         PR c/35438
16862         PR c/35439
16863         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
16864         errorneous type.  Check that v is a VAR_DECL.
16865
16866         PR middle-end/35099
16867         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
16868
16869 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
16870
16871         PR tree-optimization/35494
16872         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
16873         may be overriden at link and run time.
16874
16875 2008-03-10  Richard Guenther  <rguenther@suse.de>
16876
16877         PR tree-optimization/34677
16878         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
16879         (poolify_tree): Likewise.
16880         (modify_expr_template): Likewise.
16881         (poolify_modify_stmt): Likewise.
16882         (insert_fake_stores): Handle all component-ref style stores
16883         in addition to INDIRECT_REF.  Also handle complex types.
16884         Do not poolify the inserted load.
16885         (realify_fake_stores): Do not rebuild the tree but only
16886         make it a SSA_NAME copy.
16887         (init_pre): Remove initialzation of modify_expr_template.
16888         Do not allocate modify_expr_node_pool.
16889         (fini_pre): Do not free modify_expr_node_pool.
16890
16891 2008-03-10  Paul Brook  <paul@codesourcery.com>
16892
16893         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
16894         to avoid conflicts.
16895
16896 2008-03-10  Paul Brook  <paul@codesourcery.com>
16897             Mark Shinwell  <shinwell@codesourcery.com>
16898
16899         * config/arm/cortex-r4.md: New.
16900         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
16901         insn attributes.
16902         * config/arm/arm.md: Include cortex-r4.md.
16903         (insn): Add smmls, sdiv and udiv values.
16904         (generic_sched): Don't use generic scheduling for Cortex-R4.
16905         (arm_issue_rate): New function.
16906         (TARGET_SCHED_ISSUE_RATE): Define.
16907
16908 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
16909
16910         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
16911
16912 2008-03-10  Richard Guenther  <rguenther@suse.de>
16913
16914         * tree-ssa-pre.c (get_sccvn_value): Simplify.
16915         (compute_avail): Do not add stmt uses to AVAIL_OUT.
16916
16917 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
16918
16919         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
16920         Set default to true.
16921
16922 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16923
16924         * c.opt (Wsynth): Deprecate.
16925         * doc/invoke.texi (Option Summary, Warning Options): Document
16926         -Wno-format-contains-nul.
16927
16928 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
16929
16930         PR target/35496
16931         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
16932         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
16933
16934 2008-03-09  Ira Rosen  <irar@il.ibm.com>
16935
16936         * config/rs6000/rs6000.c (builtin_description): Rename vector
16937         left shift operations.
16938         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
16939         (altivec_vsl<VI_char>): Rename to ...
16940         (ashl<mode>3): ... new name.
16941         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
16942         gen_ashlv4si3.
16943         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
16944
16945 2008-03-08  Richard Guenther  <rguenther@suse.de>
16946
16947         * coverage.h (tree_coverage_counter_addr): Declare.
16948         * coverage.c (tree_coverage_counter_addr): New function.
16949         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
16950         before using again.
16951         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
16952         (tree_gen_one_value_profiler): Likewise.
16953         (tree_gen_ic_profiler): Likewise.
16954         (tree_gen_average_profiler): Likewise.
16955         (tree_gen_ior_profiler): Likewise.
16956
16957 2008-03-08  Richard Guenther  <rguenther@suse.de>
16958
16959         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
16960         (vn_binary_op_insert): Likewise.
16961         (vn_unary_op_lookup): Likewise.
16962         (vn_unary_op_insert): Likewise.
16963         (vn_nary_op_lookup): Declare.
16964         (vn_nary_op_insert): Likewise.
16965         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
16966         and binary hashes, use a single obstack for unary_op_pool
16967         and binary_op_pool.
16968         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
16969         a single struct vn_nary_op_s.  Store tree code length and
16970         a variable number of operands.
16971         (struct vn_reference_op_struct): Remove unused op2.
16972         (vn_reference_op_eq): Do not compare op2.
16973         (vn_reference_op_compute_hash): Do not compute hash of op2.
16974         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
16975         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
16976         with vn_nary_op_compute_hash.
16977         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
16978         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
16979         vn_nary_op_lookup.
16980         (vn_unary_op_insert, vn_binary_op_insert): Replace with
16981         vn_nary_op_insert.
16982         (visit_unary_op): Call nary functions.
16983         (visit_binary_op): Likewise.
16984         (process_scc): Adjust for struct vn_tables_s changes.
16985         (allocate_vn_table): Likewise.
16986         (free_vn_table): Likewise.
16987         * tree-vn.c (vn_add): Call nary functions.
16988         (vn_lookup): Likewise.
16989
16990 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
16991
16992         PR target/35498
16993         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
16994         wdst back after sync_compare_and_swapqhi_internal.
16995
16996 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
16997
16998         PR target/22152
16999         * config/i386/i386-modes.def (V1DI): New vector mode.
17000         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
17001         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
17002         (MMXMODE248): Ditto.
17003         (MMXMODE): Add V1DI mode.
17004         (mmxvecsize): Change DI mode to V1DI mode.
17005         ("mov<mode>): Use MMXMODEI8 mode iterator.
17006         ("*mov<mode>_internal_rex64"): Ditto.
17007         ("*mov<mode>_internal"): Ditto.
17008         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
17009         ("mmx_sub<mode>3"): Ditto.
17010         ("mmx_adddi3"): Remove insn pattern.
17011         ("mmx_subdi3"): Ditto.
17012         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
17013         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
17014         ("mmx_ashl<mode>3"): Ditto.
17015         ("mmx_lshrdi3"): Remove insn pattern.
17016         ("mmx_ashldi3"): Ditto.
17017         * config/i386/i386.c (classify_argument): Handle V1DImode.
17018         (function_arg_advance_32): Ditto.
17019         (function_arg_32): Ditto.
17020         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
17021         mmx_addv1di3 insn pattern.
17022         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
17023         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
17024         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
17025         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
17026         Remove definitions of built-in functions.
17027         (V1DI_type_node): New node.
17028         (v1di_ftype_v1di_int): Ditto.
17029         (v1di_ftype_v1di_v1di): Ditto.
17030         (v2si_ftype_v2si_si): Ditto.
17031         (v4hi_ftype_v4hi_di): Remove node.
17032         (v2si_ftype_v2si_di): Ditto.
17033         (ix86_init_mmx_sse_builtins): Handle V1DImode.
17034         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
17035         Redefine builtins using def_builtin_const with *_ftype_*_int node.
17036         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
17037         Add new builtins using def_builtin_const.
17038         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
17039         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
17040         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
17041         * config/i386/mmintrin.h (__v1di): New typedef.
17042         (_mm_add_si64): Cast arguments to __v1di type.
17043         (_mm_sub_si64): Ditto.
17044         (_mm_sll_pi16): Cast __count to __v4hi type.
17045         (_mm_sll_pi32): Cast __count to __v2si type.
17046         (_mm_sll_si64): Cast arguments to __v1di type.
17047         (_mm_srl_pi16): Cast __count to __v4hi type.
17048         (_mm_srl_pi32): Cast __count to __v2si type.
17049         (_mm_srl_si64): Cast arguments to __v1di type.
17050         (_mm_sra_pi16): Cast __count to __v4hi type.
17051         (_mm_sra_pi32): Cast __count to __v2si type.
17052         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
17053         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
17054         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
17055         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
17056         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
17057         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
17058         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
17059         (_mm_srai_pi32): Use __builtin_ia32_psradi.
17060         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
17061         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
17062         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
17063         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
17064
17065 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
17066
17067         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
17068
17069 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
17070
17071         PR target/35373
17072         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
17073         reg+const addressing for Altivec modes.  Don't generate reg+reg
17074         addressing for TFmode or TDmode quantities.
17075
17076 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
17077
17078         * c-common.c (vector_types_convertible_p): Call langhook
17079         instead of comptypes.
17080
17081 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17082
17083         PR tree-opt/35402
17084         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
17085         integral and scalar float variables which have a
17086         NULL DECL_INITIAL.
17087
17088 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
17089
17090         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
17091         dwarf_register_span hook when emitting unwind information for
17092         register-to-memory saves.
17093         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
17094         (rs6000_frame_related): Remove call to spe_synthesize_frame.
17095
17096 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
17097
17098         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
17099         for the same VAR_DECL.
17100
17101 2008-03-06  Tom Tromey  <tromey@redhat.com>
17102
17103         * treelang: Delete.
17104         * doc/standards.texi (Standards): Don't mention treelang.
17105         * doc/invoke.texi (Overall Options): Don't mention treelang.
17106         * doc/install.texi (Prerequisites): Don't mention bison or
17107         treelang.
17108         (Configuration): Don't mention treelang.
17109         (Building): Likewise.
17110         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
17111
17112 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
17113
17114         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
17115         word-extractions out of a multi-word object.
17116
17117 2008-03-06  Richard Guenther  <rguenther@suse.de>
17118
17119         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
17120         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
17121         result type and precision.
17122         * expr.c (get_inner_reference): Set unsignedp based on the result
17123         type of BIT_FIELD_REF.
17124         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
17125         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
17126         (try_instantiate_multiple_fields): Likewise.  Use the correct type
17127         for BIT_FIELD_REF.
17128         (sra_build_assignment): Likewise.
17129         (sra_build_elt_assignment): Likewise.
17130         (sra_explode_bitfield_assignment): Likewise.
17131         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
17132         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
17133         set BIT_FIELD_REF_UNSIGNED.
17134         (vectorizable_load): Likewise.
17135
17136 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
17137
17138         * cse.c (cse_extended_basic_block): Invalidate artificial defs
17139         at bb start.
17140
17141 2008-03-06  Richard Guenther  <rguenther@suse.de>
17142
17143         * alias.c (struct alias_set_entry): Move has_zero_child field
17144         to pack with alias_set.
17145
17146 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
17147
17148         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
17149         32bit host.
17150
17151 2008-03-05  Ian Lance Taylor  <iant@google.com>
17152
17153         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
17154
17155 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
17156
17157         * fwprop.c (update_df): Support width and offset parameters of
17158         df_ref_create.
17159         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
17160         global_conflicts): Change DF_REF_EXTRACT to either
17161         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
17162         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
17163         * df-scan.c (df_ref_record, df_defs_record,
17164         df_ref_create_structure, df_def_record_1, df_uses_record,
17165         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
17166         df_bb_refs_collect, df_entry_block_defs_collect,
17167         df_exit_block_uses_collect): Support new width and offset fields.
17168         (ref_extract_pool): New storage pool.
17169         (df_free_ref): New function.
17170         (df_reg_chain_unlink, df_free_collection_rec,
17171         df_sort_and_compress_refs): Call df_free_ref.
17172         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
17173         of df_ref_extract.
17174         (df_ref_create_structure): Allocate df_ref_extract if offset and
17175         width fields are used.
17176         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
17177         (df_uses_record): Get offset and width from ZERO_EXTRACT
17178         and SIGN_EXTRACT.
17179         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
17180         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
17181         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
17182         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
17183         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
17184         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
17185         (df_ref_extract): New structure.
17186         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
17187         (df_ref_create): Add width and offset parameters.
17188
17189 2008-03-05  Richard Guenther  <rguenther@suse.de>
17190
17191         * tree-ssa-structalias.c (get_constraint_for_component_ref):
17192         Use ranges_overlap_p.
17193         (offset_overlaps_with_access): Rename
17194         to ranges_overlap_p and move ...
17195         * tree-flow-inline.h (ranges_overlap_p): ... here.
17196
17197         * tree.h (get_inner_reference, handled_component_p): Update
17198         comments.
17199
17200         * tree.h (record_component_aliases, get_alias_set,
17201         alias_sets_conflict_p, alias_sets_must_conflict_p,
17202         objects_must_conflict_p): Move declarations ...
17203         * alias.h (record_component_aliases, get_alias_set,
17204         alias_sets_conflict_p, alias_sets_must_conflict_p,
17205         objects_must_conflict_p): ... here.
17206         Include coretypes.h.
17207         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
17208
17209 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
17210
17211         * cfg.c: Include tree-flow.h.
17212         (remove_edge_raw): Call redirect_edge_var_map_clear.
17213         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
17214         * tree-flow-inline.h (redirect_edge_var_map_def): New.
17215         (redirect_edge_var_map_result): New.
17216         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
17217         PENDING_STMT use with redirect_edge_var_map_*.
17218         * tree-ssa.c (edge_var_maps): New definition.
17219         (redirect_edge_var_map_add): New.
17220         (redirect_edge_var_map_clear): New.
17221         (redirect_edge_var_map_dup): New.
17222         (redirect_edge_var_map_vector): New.
17223         (redirect_edge_var_map_destroy): New.
17224         (ssa_redirect_edge): Replace PENDING_STMT use with
17225         redirect_edge_var_map_*.
17226         (flush_pending_stmts): Same.
17227         (delete_tree_ssa): Destroy edge var map.
17228         * tree-flow.h (struct _edge_var_map): New.
17229         Define edge_var_map vector type.
17230         Declare redirect_edge_var_map_* prototypes.
17231         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
17232         * tree-cfg.c (reinstall_phi_args): Replace
17233         PENDING_STMT use with redirect_edge_var_map_*.
17234
17235 2008-03-05  Richard Guenther  <rguenther@suse.de>
17236
17237         PR tree-optimization/35472
17238         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
17239         whose single use_stmt has a overlapping set of loaded and
17240         stored symbols as that use_stmt might be a noop assignment then.
17241
17242 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
17243
17244         * gthr-rtems.h: Implement __gthread_mutex_destroy.
17245
17246 2008-03-05  Richard Guenther  <rguenther@suse.de>
17247
17248         PR c++/35336
17249         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
17250         should be constants.
17251         * tree-cfg.c (verify_expr): Verify it.
17252         * fold-const.c (fold_truthop): Remove code generating
17253         BIT_FIELD_REFs of structure bases.
17254         (fold_binary): Likewise.
17255         (fold_ternary): Position and size of BIT_FIELD_REFs are
17256         always host integers.
17257         (make_bit_field_ref): Remove.
17258         (optimize_bit_field_compare): Remove.
17259         (all_ones_mask_p): Remove.
17260
17261 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
17262
17263         PR gcc/33009
17264         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
17265         (split_block_and_df_analyze): New. Split basic block and rebuild
17266         dataflow.
17267         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
17268         SPLIT_BLOCK.
17269         (split_pattern_seq): Likewise.
17270         (erase_matching_seqs): Likewise.
17271         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
17272
17273 2008-03-04  Geoff Keating  <geoffk@apple.com>
17274
17275         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
17276         declaration and code.
17277         (tree_invalid_nonnegative_warnv_p): Likewise.
17278
17279 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
17280
17281         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
17282         examples.  Truncate option-names then causing overfull hbox.
17283
17284 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17285
17286         PR target/35222
17287         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
17288         on hpux10.
17289         * configure: Rebuilt.
17290
17291 2008-03-04  Rafael Espindola  <espindola@google.com>
17292
17293         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
17294         (tree_unary_nonnegative_warnv_p): New.
17295         (tree_binary_nonnegative_warnv_p): New.
17296         (tree_single_nonnegative_warnv_p): New.
17297         (tree_invalid_nonnegative_warnv_p): New.
17298         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
17299
17300 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17301
17302         PR 28322
17303         * opts.c (handle_option): Postpone 'unknown option' errors only for
17304         warning options.
17305
17306 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
17307
17308         PR target/35453
17309         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
17310         (_SIDD_XXX): This.
17311
17312 2008-03-04  Rafael Espindola  <espindola@google.com>
17313
17314         * fold-const.c (tree_unary_nonzero_warnv_p): New.
17315         (tree_binary_nonzero_warnv_p): New.
17316         (tree_single_nonzero_warnv_p): New.
17317         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
17318
17319 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
17320
17321         PR middle-end/35456
17322         * fold-const.c (fold_cond_expr_with_comparison): Prevent
17323         transformations for modes that have signed zeros.
17324         * ifcvt.c (noce_try_abs): Ditto.
17325
17326 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
17327
17328         * config/i386/i386.c (override_options): Force
17329         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
17330
17331 2008-03-04  Jan Hubicka  <jh@suse.cz>
17332
17333         PR c++/35262
17334         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
17335         in last commit.
17336
17337 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
17338
17339         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
17340         label to probe the stack.
17341
17342 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
17343
17344         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
17345         (__gthr_win32_mutex_destroy): Declare.
17346         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
17347         __gthr_win32_mutex_destroy.
17348         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
17349
17350 2008-03-03  Jan Hubicka  <jh@suse.cz>
17351
17352         PR c++/35262
17353         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
17354         aggressive on inlining cold calls.
17355
17356 2008-03-03  Richard Guenther  <rguenther@suse.de>
17357
17358         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
17359         struct copies into the expression table.
17360         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
17361         (try_to_simplify): Likewise.
17362         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
17363         integral and pointer arguments which do not change the
17364         precision to NOP_EXPRs.
17365         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
17366         VIEW_CONVERT_EXPR case.
17367
17368 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
17369
17370         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
17371         defined in a loop at depth 0 is invariant.
17372         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
17373         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
17374         be called at loop depth 0.
17375
17376 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
17377
17378         PR driver/35420
17379         * gcc.c (process_command): Update copyright notice dates.
17380         * gcov.c (print_version): Likewise.
17381         * gcov-dump.c (print_version): Likewise.
17382         * mips-tfile.c (main): Likewise.
17383         * mips-tdump.c (main): Likewise.
17384
17385 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17386
17387         PR 24924
17388         * c-common.c (flag_permissive): Delete.
17389         (constant_expression_warnings): Check flags first.
17390         (constant_expression_error): New.
17391         * c-common.h (flag_permissive): Delete.
17392         (constant_expression_error): Declare.
17393         * flags.h (flag_permissive): Declare. Update description.
17394         * diagnostic.c (pedwarn): Update.
17395         (permerror): New.
17396         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
17397         (permissive_error_kind): New.
17398         * toplev.c (flag_permissive): Define. Update description.
17399         * toplev.h (permissive_error_kind): Declare.
17400         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
17401         (pedwarn_c90): Use pedantic_warning_kind.
17402         * c-opts.c (c_common_post_options): flag_permissive does not affect
17403         flag_pedantic_errors.
17404
17405 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
17406
17407         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
17408         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
17409         __absvsi2, __absvDI2): Use unsigned arithmetic.
17410
17411 2008-03-02  Andi Kleen  <ak@suse.de>
17412             Richard Guenther  <rguenther@suse.de>
17413
17414         * struct-equiv.c: Remove file.
17415         * cfg_cleanup.c (condjump_equiv_p): Remove.
17416         * Makefile.in (OBJS-common): Remove struct-equiv.o.
17417         (struct-equiv.o): Remove rule.
17418         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
17419         insns_match_p, struct_equiv_block_eq, struct_equiv_init,
17420         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
17421
17422 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
17423
17424         * ifcvt.c (noce_process_if_block): Try to handle only the then
17425         block if the else block exists but isn't suitable.
17426
17427 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
17428
17429         PR gcc/35063
17430         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
17431         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
17432         regression from previous patch.
17433
17434 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
17435
17436         PR gcc/35063
17437         * gthr.h: Add __gthread_mutex_destroy as a function that must be
17438         implemented.
17439         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
17440         * gthr-single.h (__gthread_mutex_destroy): Likewise.
17441         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
17442         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
17443         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
17444         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
17445         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
17446         (__gthread_mutex_destroy_function): Rename to
17447         __gthread_mutex_destroy.
17448         * gthr-dce.h (__gthread_mutex_destroy): Call
17449         pthread_mutex_destroy.
17450         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
17451         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
17452         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
17453
17454 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
17455
17456         * df-scan.c (df_ref_chain_change_bb): Simplify.
17457         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
17458         set_block_for_insn if there's any change.
17459         * df.h ((df_insn_change_bb): Fix prototype.
17460         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
17461         df_insn_change_bb, don't call set_block_for_insn.
17462         * emit-rtl.c (reorder_insns): Likewise.
17463         * haifa-sched.c (move_insn): Likewise.
17464
17465 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
17466
17467         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
17468
17469 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
17470
17471         * tree-flow-inline.h (next_readonly_imm_use): Return
17472         NULL_USE_OPERAND_P after the end.
17473
17474 2008-03-01  Richard Guenther  <rguenther@suse.de>
17475
17476         PR tree-optimization/35411
17477         * tree-sra.c (sra_build_assignment): Split conversion to
17478         final type to a separate statement if we are not assigning
17479         to a register.
17480
17481 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
17482
17483         * fold-const.c (fold_convertible_p): Correct the logic to follow
17484         that in fold_convert().
17485
17486 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
17487
17488         PR c++/35315
17489         * tree-inline.c (build_duplicate_type): When we make a
17490         duplicate type, make it unique in the canonical types system.
17491
17492 2008-02-29  Tom Tromey  <tromey@redhat.com>
17493
17494         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
17495         input_file_stack_history, input_file_stack_restored): Remove.
17496         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
17497         * input.h (struct file_stack): Remove.
17498         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
17499         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
17500         Likewise.
17501         * diagnostic.h (struct diagnostic_context) <last_module>: Change
17502         type.
17503         (diagnostic_last_module_changed): Add 'map' argument.
17504         (diagnostic_set_last_function): Likewise.
17505         * diagnostic.c (undiagnostic_report_current_module): Iterate using
17506         line map, not input_file_stack.
17507         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
17508
17509 2008-02-29  Paul Brook  <paul@codesourcery.com>
17510
17511         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
17512
17513 2008-02-29  Paul Brook  <paul@codesourcery.com>
17514
17515         * config/arm/ieee754-df.S (muldf3): Use RET macros.
17516
17517 2008-02-29  Richard Guenther  <rguenther@suse.de>
17518
17519         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
17520         vn_lookup_or_add.
17521         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
17522         value for comparing for a store match.
17523         (simplify_unary_expression): Do nothing for SSA_NAMEs.
17524         (try_to_simplify): Do not do a full-blown reference lookup.
17525
17526 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
17527
17528         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
17529         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
17530
17531         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
17532
17533 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
17534
17535         * tree-loop-linear.c (try_interchange_loops): Compare memory access
17536         strides against cache sizes.
17537
17538 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
17539
17540         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
17541         constant to fpul.
17542
17543 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
17544
17545         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
17546         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
17547         is smaller than the original promoted value.
17548         (simplify_subreg): If OP is a SUBREG, try to preserve its
17549         SUBREG_PROMOTED_VAR_P information.
17550
17551 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
17552
17553         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
17554         (VN_INFO_GET): Allocate new objects on the obstack.
17555         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
17556         for rpo_numbers_temp, for consistency.
17557         (free_scc_vn): Free the obstack.
17558
17559 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
17560
17561         * doc/invoke.texi: Document -ftree-loop-distribution.
17562         * tree-loop-distribution.c: New.
17563         * tree-pass.h (pass_loop_distribution): New.
17564         * graphds.h (struct graph): Add htab_t indices.
17565         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
17566         * tree-vectorizer.c (rename_variables_in_loop): Extern.
17567         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
17568         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
17569         * tree-data-ref.c (debug_data_dependence_relations): New.
17570         (dump_data_dependence_relation): Also print data references.
17571         (free_data_ref): Extern.
17572         (same_access_functions): Moved...
17573         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
17574         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
17575         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
17576         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
17577         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
17578         (stmts_from_loop): Skip LABEL_EXPR.
17579         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
17580         New.
17581         (build_rdg): Initialize rdg->indices htab.
17582         (free_rdg, stores_from_loop, ref_base_address,
17583         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
17584         have_similar_memory_accesses_1, ref_base_address_1,
17585         remove_similar_memory_refs): New.
17586         * tree-data-ref.h: Depend on tree-chrec.h.
17587         (debug_data_dependence_relations, free_data_ref): Declared.
17588         (same_access_functions): ... here.
17589         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
17590         New.
17591         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
17592         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
17593         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
17594         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
17595         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
17596         rdg_vertex_for_stmt): Declared.
17597         (struct rdg_edge): Add level.
17598         (RDGE_LEVEL): New.
17599         (free_rdg, stores_from_loop, remove_similar_memory_refs,
17600         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
17601         Declared.
17602         (rdg_has_similar_memory_accesses): New.
17603         * tree-vect-analyze.c: Remove unused static decls.
17604         * lambda.h (dependence_level): New.
17605         * common.opt (ftree-loop-distribution): New.
17606         * tree-flow.h (mark_virtual_ops_in_bb,
17607         slpeel_tree_duplicate_loop_to_edge_cfg,
17608         rename_variables_in_loop): Declared.
17609         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
17610         (OBJS-common): Add tree-loop-distribution.o.
17611         (tree-loop-distribution.o): New rule.
17612         * tree-cfg.c (mark_virtual_ops_in_bb): New.
17613         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
17614         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
17615
17616 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
17617
17618         PR target/33963
17619         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
17620         other than structures and unions.
17621
17622 2008-02-28  Richard Guenther  <rguenther@suse.de>
17623
17624         Revert:
17625         2008-02-26  Richard Guenther  <rguenther@suse.de>
17626
17627         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
17628         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
17629         (lookup_decl_from_uid): Declare.
17630         (remove_decl_from_map): Likewise.
17631         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
17632         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
17633         (decl_for_uid_map): New global hashtable mapping DECL_UID
17634         to the decl tree.
17635         (init_ttree): Allocate it.
17636         (insert_decl_to_uid_decl_map): New helper function.
17637         (make_node_stat): Insert new decls into the map.
17638         (copy_node_stat): Likewise.
17639         (lookup_decl_from_uid): New function.
17640         (remove_decl_from_map): Likewise.
17641         (print_decl_for_uid_map_statistics): New helper.
17642         (dump_tree_statistics): Call it.
17643
17644         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
17645         (referenced_var_iterator): Adjust.
17646         (FOR_EACH_REFERENCED_VAR): Adjust.
17647         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
17648         (num_referenced_vars): Adjust.
17649         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
17650         (first_referenced_var): Remove.
17651         (end_referenced_vars_p): Likewise.
17652         (next_referenced_var): Likewise.
17653         (referenced_var_iterator_set): New helper function.
17654         * tree-dfa.c (referenced_var_lookup): Adjust.
17655         (referenced_var_check_and_insert): Likewise.
17656         (remove_referenced_var): Likewise.
17657         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
17658         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17659         (verify_call_clobbering): Likewise.
17660         (verify_memory_partitions): Likewise.
17661         (init_tree_ssa): Allocate bitmap instead of hashtable for
17662         referenced_vars.
17663         (delete_tree_ssa): Adjust.
17664         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
17665         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17666         (compute_tag_properties): Likewise.
17667         (set_initial_properties): Likewise.
17668         (find_partition_for): Likewise.
17669         (update_reference_counts): Likewise.
17670         (dump_may_aliases_for): Likewise.
17671         * tree-ssa-operands.c (add_virtual_operand): Likewise.
17672         (add_call_clobber_ops): Likewise.
17673         (add_call_read_ops): Likewise.
17674         (get_asm_expr_operands): Likewise.
17675         * tree-into-ssa.c (dump_decl_set): Likewise.
17676         (update_ssa): Likewise.
17677         * tree-sra.c (scan_function): Likewise.
17678         (decide_instantiations): Likewise.
17679         (scalarize_parms): Likewise.
17680         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
17681         (dsa_named_for): Likewise.
17682         * tree-ssa-structalias.c (update_alias_info): Likewise.
17683         (merge_smts_into): Likewise.
17684
17685 2008-02-27  David Daney  <ddaney@avtrex.com>
17686
17687         PR target/34409
17688         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
17689         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
17690         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
17691         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
17692         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
17693
17694 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
17695
17696         PR target/25477
17697         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
17698         (BUILT_IN_NEXTTOWARD): Remove.
17699         (BUILT_IN_NEXTTOWARDF): Ditto.
17700         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
17701         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
17702
17703 2008-02-27  Tom Tromey  <tromey@redhat.com>
17704
17705         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
17706         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
17707
17708 2008-02-27  Jan Beulich  <jbeulich@novell.com>
17709
17710         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
17711         update the respective field on newdecl.
17712
17713 2008-02-27  Revital Eres  <eres@il.ibm.com>
17714
17715         PR rtl-optimization/34999
17716         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
17717         crossing edges that ends with a call insn.
17718         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
17719         call insn and clear the EDGE_CROSSING flag of the crossing edge
17720         when fixing fallthru edges.
17721
17722 2008-02-27  Richard Guenther  <rguenther@suse.de>
17723
17724         PR middle-end/35390
17725         * fold-const.c (fold_unary): Return the correct argument,
17726         converted to the result type.
17727
17728 2008-02-27  Richard Guenther  <rguenther@suse.de>
17729
17730         PR middle-end/34971
17731         * expr.c (expand_expr_real_1): Assert on rotates that operate
17732         on partial modes.
17733         * fold-const.c (fold_binary): Use the types precision, not the
17734         bitsize of the mode if folding rotate expressions.  Build rotates
17735         only for full modes.
17736
17737 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
17738
17739         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
17740         and CPP_PRAGMA_EOL.
17741         * c-pragma.c (pragma_ns_name): New typedef.
17742         (registered_pp_pragmas): New variable.
17743         (c_pp_lookup_pragma): New function.
17744         (c_register_pragma_1): If flag_preprocess_only, do nothing
17745         for non-expanded pragmas, for expanded ones push pragma's
17746         namespace and name into registered_pp_pragmas vector.
17747         (c_invoke_pragma_handler): Register OpenMP pragmas even when
17748         flag_preprocess_only, don't register GCC pch_preprocess
17749         pragma if flag_preprocess_only.
17750         * c-opts.c (c_common_init): Call init_pragma even if
17751         flag_preprocess_only.
17752         * c-pragma.c (c_pp_lookup_pragma): New prototype.
17753         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
17754         cpp_register_pragma if flag_preprocess_only.
17755
17756 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17757
17758         PR c/28800
17759         * c-parser.c (c_parser_translation_unit): Warn for empty
17760         translation unit, not empty source file.
17761
17762 2008-02-26  Paul Brook  <paul@codesourcery.com>
17763
17764         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
17765         operand for Thumb-2.
17766         * config/arm/arm.h (reg_class): Add CORE_REGS.
17767         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
17768         (BASE_REG_CLASS): Use CORE_REGS.
17769         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
17770         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
17771         (REGNO_OK_FOR_INDEX_P): Exclude SP.
17772         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
17773         ARM_REGNO_OK_FOR_INDEX_P.
17774         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
17775         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
17776         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
17777         (ldm/stm peepholes): Ditto.
17778         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
17779         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
17780         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
17781         * config/arm/constraints.md: Enable "k" constraint on ARM.
17782
17783 2008-02-27  Ben Elliston  <bje@au.ibm.com>
17784
17785         * config/rs6000/rs6000.c: Annotate cache line size field in all
17786         instances of struct processor_costs.
17787
17788 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
17789
17790         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
17791         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
17792         jump_bypass): New counters.
17793         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
17794         * dce.c (gate_ud_dce): Same.
17795         (gate_fast_dce): Same.
17796         * dse.c (gate_dse1): New function.
17797         (gate_dse2): New function.
17798         (gate_dse): Merge results of new gate functions.
17799         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
17800         (gate_handle_jump_bypass): Add dbg_cnt.
17801         (gate_handle_gcse): Add dbg_cnt.
17802         * ifcvt.c (gate_handle_if_conversion): Same.
17803         (gate_handle_if_after_combine): Same.
17804         (gate_handle_if_after_reload): Same.
17805         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
17806
17807 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
17808
17809         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
17810         line sizes.
17811         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
17812
17813 2008-02-26  Jason Merrill  <jason@redhat.com>
17814
17815         PR c++/35315
17816         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
17817         alone if it's the naming decl for the type's main variant.
17818
17819 2008-02-26  Tom Tromey  <tromey@redhat.com>
17820
17821         * system.h (USE_MAPPED_LOCATION): Poison.
17822         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
17823         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
17824         (make_goto_expr_edges): Likewise.
17825         (remove_bb): Likewise.
17826         (execute_warn_function_return): Likewise.
17827         * basic-block.h (struct edge_def) <goto_locus>: Change type to
17828         location_t.
17829         * c-common.c (fname_decl): Remove old location code.
17830         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
17831         location code.
17832         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
17833         variant.
17834         (ASM_INPUT_SOURCE_LOCATION): Likewise.
17835         (gen_rtx_ASM_INPUT): Likewise.
17836         (gen_rtx_ASM_INPUT_loc): Likewise.
17837         (get_rtx_asm_OPERANDS): Remove.
17838         * cfglayout.c (insn_locators_alloc): Remove old location code.
17839         (set_curr_insn_source_location): Likewise.
17840         (curr_insn_locator): Likewise.
17841         * print-tree.c (print_node): Remove old location code.
17842         * tree-mudflap.c (mf_varname_tree): Remove old location code.
17843         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
17844         * cfgexpand.c (expand_gimple_cond_expr): Don't use
17845         location_from_locus.
17846         (construct_exit_block): Remove old location code.
17847         * emit-rtl.c (force_next_line_note): Remove old location code.
17848         * profile.c (branch_prob): Remove old location code.
17849         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
17850         LOC_LINE): Remove old-location variants.
17851         * langhooks.c (lhd_print_error_function): Remove old location
17852         code.
17853         * configure, config.in: Rebuilt.
17854         * configure.ac (--enable-mapped-location): Remove.
17855         * c-decl.c (c_init_decl_processing): Remove old location code.
17856         (finish_function): Likewise.
17857         * recog.c (decode_asm_operands): Remove old location code.
17858         * c-pch.c (c_common_read_pch): Remove old location code.
17859         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
17860         variants.
17861         * gimple-low.c (lower_function_body): Remove old location code.
17862         * toplev.c (unknown_location): Remove.
17863         (push_srcloc): Remove old-location variant.
17864         (process_options): Remove old location code.
17865         (lang_dependent_init): Likewise.
17866         * input.h (UNKNOWN_LOCATION): Move definition.
17867         (location_t): Undeprecate.
17868         (source_locus): Remove.
17869         (location_from_locus): Remove.
17870         (struct location_s): Remove.
17871         Remove all old-location code.
17872         (input_line, input_filename): Remove.
17873         * final.c (final_scan_insn): Remove old location code.
17874         * diagnostic.c (diagnostic_build_prefix): Remove
17875         USE_MAPPED_LOCATION test.
17876         * tree.h (gimple_stmt) <locus>: Now a location_t.
17877         (tree_exp) <locus>: Likewise.
17878         (DECL_IS_BUILTIN): Remove old-location variant.
17879         (annotate_with_file_line, annotate_with_locus): Likewise.
17880         (expr_locus, set_expr_locus): Update.
17881         * tree.c (build1_stat): Remove old location code.
17882         (last_annotated_node): Remove.
17883         (annotate_with_file_line): Remove old-location variant.
17884         (annotate_with_locus): Likewise.
17885         (expr_location): Remove old location code.
17886         (set_expr_location): Likewise.
17887         (expr_has_location): Likewise.
17888         (expr_locus): Likewise.
17889         (set_expr_locus): Likewise.
17890         (expr_filename): Don't use location_from_locus.
17891         (expr_lineno): Likewise.
17892         * rtl-error.c (location_for_asm): Remove old location code.
17893         * c-lex.c (cb_line_change): Remove old location code.
17894         (fe_file_change): Likewise.
17895         (cb_def_pragma): Likewise.
17896         (c_lex_with_flags): Likewise.
17897         * gengtype.c (do_typedef): Don't special-case location types.
17898         (define_location_structures): Remove.
17899         (main): Don't call define_location_structures.
17900         * tree-pretty-print.c (dump_implicit_edges): Remove old location
17901         code.
17902
17903 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17904
17905         PR 26264
17906         * builtins.def (BUILT_IN_STDARG_START): Remove.
17907         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
17908         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
17909         * tree-inline.c (inline_forbidden_p_1): Likewise.
17910
17911 2008-02-26  Richard Guenther  <rguenther@suse.de>
17912
17913         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
17914         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
17915         (lookup_decl_from_uid): Declare.
17916         (remove_decl_from_map): Likewise.
17917         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
17918         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
17919         (decl_for_uid_map): New global hashtable mapping DECL_UID
17920         to the decl tree.
17921         (init_ttree): Allocate it.
17922         (insert_decl_to_uid_decl_map): New helper function.
17923         (make_node_stat): Insert new decls into the map.
17924         (copy_node_stat): Likewise.
17925         (lookup_decl_from_uid): New function.
17926         (remove_decl_from_map): Likewise.
17927         (print_decl_for_uid_map_statistics): New helper.
17928         (dump_tree_statistics): Call it.
17929
17930         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
17931         (referenced_var_iterator): Adjust.
17932         (FOR_EACH_REFERENCED_VAR): Adjust.
17933         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
17934         (num_referenced_vars): Adjust.
17935         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
17936         (first_referenced_var): Remove.
17937         (end_referenced_vars_p): Likewise.
17938         (next_referenced_var): Likewise.
17939         (referenced_var_iterator_set): New helper function.
17940         * tree-dfa.c (referenced_var_lookup): Adjust.
17941         (referenced_var_check_and_insert): Likewise.
17942         (remove_referenced_var): Likewise.
17943         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
17944         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17945         (verify_call_clobbering): Likewise.
17946         (verify_memory_partitions): Likewise.
17947         (init_tree_ssa): Allocate bitmap instead of hashtable for
17948         referenced_vars.
17949         (delete_tree_ssa): Adjust.
17950         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
17951         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17952         (compute_tag_properties): Likewise.
17953         (set_initial_properties): Likewise.
17954         (find_partition_for): Likewise.
17955         (update_reference_counts): Likewise.
17956         (dump_may_aliases_for): Likewise.
17957         * tree-ssa-operands.c (add_virtual_operand): Likewise.
17958         (add_call_clobber_ops): Likewise.
17959         (add_call_read_ops): Likewise.
17960         (get_asm_expr_operands): Likewise.
17961         * tree-into-ssa.c (dump_decl_set): Likewise.
17962         (update_ssa): Likewise.
17963         * tree-sra.c (scan_function): Likewise.
17964         (decide_instantiations): Likewise.
17965         (scalarize_parms): Likewise.
17966         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
17967         (dsa_named_for): Likewise.
17968         * tree-ssa-structalias.c (update_alias_info): Likewise.
17969         (merge_smts_into): Likewise.
17970
17971 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17972
17973         PR 34351
17974         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
17975         * c-opts.c (c_common_handle_option): Wall enables
17976         Wvolatile-register-var.
17977         * common.opt: Move Wvolatile-register-var to...
17978         * c.opt: ...here.
17979
17980 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17981
17982         * common.opt (Wlarger-than=): New.
17983         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
17984         -Wlarger-than=.
17985         * opts.c (common_handle_option): Handle -Wlarger-than=.
17986         * optc-gen.awk: Likewise.
17987         * opth-gen.awk: Likewise.
17988         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
17989         * tree-optimize.c (tree_rest_of_compilation): Likewise.
17990
17991 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
17992
17993         * c-common.c (match_case_to_enum_1): Add appropriate
17994         OPT_W* parameter to warning.
17995         (c_do_switch_warnings): Likewise.
17996         * c-typeck.c (warning_init): Add one more parameter following
17997         'warning' function.
17998         (push_init_level): Update call to warning_init.
17999         (pop_init_level): Likewise.
18000         (add_pending_init): Likewise.
18001         (output_init_element: Likewise.
18002
18003 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18004
18005         PR 28322
18006         * toplev.c (toplev_main): If there are warnings or error, print
18007         errors for ignored options.
18008         * opts.c (ignored_options): New static variable.
18009         (postpone_unknown_option_error): New.
18010         (print_ignored_options): New.
18011         (handle_option): Postpone errors for unknown -Wno-* options.
18012         * opts.h (print_ignored_options): Declare.
18013
18014 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
18015
18016         * config/mips/mips.md (loadgp_blockage, blockage): Change type
18017         to "ghost".
18018
18019 2008-02-25  Richard Guenther  <rguenther@suse.de>
18020
18021         Revert:
18022         2008-02-25  Richard Guenther  <rguenther@suse.de>
18023
18024         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
18025         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
18026         (lookup_decl_from_uid): Declare.
18027         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
18028         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
18029         (decl_for_uid_map): New global hashtable mapping DECL_UID
18030         to the decl tree.
18031         (init_ttree): Allocate it.
18032         (insert_decl_to_uid_decl_map): New helper function.
18033         (make_node_stat): Insert new decls into the map.
18034         (copy_node_stat): Likewise.
18035         (lookup_decl_from_uid): New function.
18036         (print_decl_for_uid_map_statistics): New helper.
18037         (dump_tree_statistics): Call it.
18038
18039         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
18040         (referenced_var_iterator): Adjust.
18041         (FOR_EACH_REFERENCED_VAR): Adjust.
18042         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
18043         (num_referenced_vars): Adjust.
18044         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
18045         (first_referenced_var): Remove.
18046         (end_referenced_vars_p): Likewise.
18047         (next_referenced_var): Likewise.
18048         (referenced_var_iterator_set): New helper function.
18049         * tree-dfa.c (referenced_var_lookup): Adjust.
18050         (referenced_var_check_and_insert): Likewise.
18051         (remove_referenced_var): Likewise.
18052         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
18053         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
18054         (verify_call_clobbering): Likewise.
18055         (verify_memory_partitions): Likewise.
18056         (init_tree_ssa): Allocate bitmap instead of hashtable for
18057         referenced_vars.
18058         (delete_tree_ssa): Adjust.
18059         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
18060         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
18061         (compute_tag_properties): Likewise.
18062         (set_initial_properties): Likewise.
18063         (find_partition_for): Likewise.
18064         (update_reference_counts): Likewise.
18065         (dump_may_aliases_for): Likewise.
18066         * tree-ssa-operands.c (add_virtual_operand): Likewise.
18067         (add_call_clobber_ops): Likewise.
18068         (add_call_read_ops): Likewise.
18069         (get_asm_expr_operands): Likewise.
18070         * tree-into-ssa.c (dump_decl_set): Likewise.
18071         (update_ssa): Likewise.
18072         * tree-sra.c (scan_function): Likewise.
18073         (decide_instantiations): Likewise.
18074         (scalarize_parms): Likewise.
18075         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
18076         (dsa_named_for): Likewise.
18077         * tree-ssa-structalias.c (update_alias_info): Likewise.
18078         (merge_smts_into): Likewise.
18079
18080 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
18081
18082         PR fortran/29549
18083         * doc/invoke.texi (-fcx-limited-range): Document new option.
18084         * toplev.c (process_options): Handle -fcx-fortran-rules.
18085         * common.opt: Add documentation for -fcx-fortran-rules.
18086
18087 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
18088
18089         PR c/35162
18090         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
18091         actual behaviour and C99.
18092
18093 2008-02-26  Ben Elliston  <bje@au.ibm.com>
18094
18095         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
18096         (ASM_CPU_POWER6_SPEC): Likewise.
18097         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
18098         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
18099         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
18100
18101 2008-02-25  Richard Guenther  <rguenther@suse.de>
18102
18103         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
18104         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
18105         (lookup_decl_from_uid): Declare.
18106         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
18107         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
18108         (decl_for_uid_map): New global hashtable mapping DECL_UID
18109         to the decl tree.
18110         (init_ttree): Allocate it.
18111         (insert_decl_to_uid_decl_map): New helper function.
18112         (make_node_stat): Insert new decls into the map.
18113         (copy_node_stat): Likewise.
18114         (lookup_decl_from_uid): New function.
18115         (print_decl_for_uid_map_statistics): New helper.
18116         (dump_tree_statistics): Call it.
18117
18118         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
18119         (referenced_var_iterator): Adjust.
18120         (FOR_EACH_REFERENCED_VAR): Adjust.
18121         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
18122         (num_referenced_vars): Adjust.
18123         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
18124         (first_referenced_var): Remove.
18125         (end_referenced_vars_p): Likewise.
18126         (next_referenced_var): Likewise.
18127         (referenced_var_iterator_set): New helper function.
18128         * tree-dfa.c (referenced_var_lookup): Adjust.
18129         (referenced_var_check_and_insert): Likewise.
18130         (remove_referenced_var): Likewise.
18131         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
18132         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
18133         (verify_call_clobbering): Likewise.
18134         (verify_memory_partitions): Likewise.
18135         (init_tree_ssa): Allocate bitmap instead of hashtable for
18136         referenced_vars.
18137         (delete_tree_ssa): Adjust.
18138         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
18139         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
18140         (compute_tag_properties): Likewise.
18141         (set_initial_properties): Likewise.
18142         (find_partition_for): Likewise.
18143         (update_reference_counts): Likewise.
18144         (dump_may_aliases_for): Likewise.
18145         * tree-ssa-operands.c (add_virtual_operand): Likewise.
18146         (add_call_clobber_ops): Likewise.
18147         (add_call_read_ops): Likewise.
18148         (get_asm_expr_operands): Likewise.
18149         * tree-into-ssa.c (dump_decl_set): Likewise.
18150         (update_ssa): Likewise.
18151         * tree-sra.c (scan_function): Likewise.
18152         (decide_instantiations): Likewise.
18153         (scalarize_parms): Likewise.
18154         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
18155         (dsa_named_for): Likewise.
18156         * tree-ssa-structalias.c (update_alias_info): Likewise.
18157         (merge_smts_into): Likewise.
18158
18159 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
18160
18161         PR target/35258
18162         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
18163         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
18164         * alias.h (nonoverlapping_memrefs_p): Likewise.
18165
18166 2008-02-25  Jan Beulich  <jbeulich@novell.com>
18167
18168         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
18169         * config/i386/netware-libgcc.exp: Add __bswap?i2,
18170         __emultls_get_address, __emultls_register_common,
18171         __floatundi?f, and _Unwind_GetIPInfo.
18172         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
18173         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
18174         (gen_regparm_prefix): Likewise.
18175         (i386_nlm_encode_section_info): Sync with
18176         config/i386/winnt.c:i386_pe_encode_section_info().
18177         (i386_nlm_maybe_mangle_decl_assembler_name): New.
18178         i386_nlm_mangle_decl_assembler_name): New.
18179         (netware_override_options): New.
18180         * config/i386/netware.h (netware_override_options): Declare.
18181         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
18182         (i386_nlm_mangle_decl_assembler_name): Declare.
18183         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
18184
18185 2008-02-25  Ben Elliston  <bje@au.ibm.com>
18186
18187         PR other/32948
18188         * c-decl.c (grokdeclarator): Remove unused local variables
18189         `typedef_type' and `type_as_written'.
18190         * bb-reorder.c
18191         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
18192         unused local variable `has_hot_blocks'.
18193         (fix_crossing_conditional_branches): Remove unused local variable
18194         `prev_bb'.
18195
18196 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
18197
18198         PR middle-end/19984
18199         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
18200         using DEF_C99_BUILTIN.
18201         (BUILT_IN_NANF): Ditto.
18202         (BUILT_IN_NANL): Ditto.
18203
18204 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
18205             Revital Eres  <eres@il.ibm.com>
18206
18207         * modulo-sched.c (calculate_must_precede_follow): Address TODO
18208         regarding the order of two dependent insns in the same row.
18209
18210 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
18211
18212         * stor-layout.c (layout_decl): Do not bump the alignment of a
18213         bit-field to more than byte alignment if it is packed.
18214
18215 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
18216
18217         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
18218         e300c2 and e300c3.
18219
18220 2008-02-24  Diego Novillo  <dnovillo@google.com>
18221
18222         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
18223
18224         PR 33738
18225         * tree-vrp.c (vrp_evaluate_conditional): With
18226         -Wtype-limits, emit a warning when comparing against a
18227         constant outside the natural range of OP0's type.
18228         * c.opt (Wtype-limits): Move ...
18229         * common.opt (Wtype-limits): ... here.
18230
18231 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
18232
18233         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
18234         * config/rs6000/e300c2c3.md: New file.
18235         * config/rs6000/rs6000.c (processor_costs): Add new costs for
18236         e300c2 and e300c3.
18237         (rs6000_override_options): Add e300c2 and e300c3 cases to
18238         processor_target_table. Do not allow usage of Altivec or Spe
18239         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
18240         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
18241         * config/rs6000/rs6000.h (processor_type): Add
18242         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
18243         (ASM_CPU_SPEC): Add e300c2 and e300c3.
18244         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
18245         and ppce300c3. Include e300c2c3.md.
18246
18247 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
18248
18249         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
18250         instead of TARGET_STRICT_ALIGN.
18251
18252 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
18253
18254         * explow.c (memory_address): Assert that the generated address is
18255         valid.
18256
18257 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
18258
18259         PR target/25477
18260         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
18261         * config/darwin-ppc-ldouble-patch.def: New file.
18262         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
18263         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
18264         SUBTARGET_INIT_BUILTINS if defined.
18265         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
18266         New functions.
18267
18268 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18269
18270         PR rtl-opt/33512
18271         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
18272         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
18273
18274 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18275
18276         PR pch/35027
18277         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
18278         file" warning condtional on -Winvalid-PCH.
18279
18280 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
18281
18282         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
18283
18284 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
18285
18286         PR target/22076
18287         PR target/34256
18288         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
18289         prevent reload from using MMX registers.
18290         (*mov<mode>_internal): Ditto.
18291         (*movv2sf_internal_rex64): Ditto.
18292         (*movv2sf_internal): Ditto.
18293
18294 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18295
18296         PR documentation/31569
18297         * doc/install.texi2html: Use makeinfo --no-number-sections.
18298
18299 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
18300
18301         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
18302         ensure that we can address an entire entity > 8 bytes.  Don't
18303         generate reg+reg addressing for such data.
18304
18305 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
18306
18307         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
18308         strings when optimizing for size, unless the target cares about
18309         alignment.
18310
18311 2008-02-22  Tom Tromey  <tromey@redhat.com>
18312
18313         * regclass.c (current_pass): Remove declaration.
18314
18315 2008-02-22  Anatoly Sokolov <aesok@post.ru>
18316
18317         * config/avr/libgcc.S (__RAMPZ__): Define.
18318         (__do_copy_data): Add for devices with 128KB code memory.
18319
18320 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
18321
18322         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
18323         Use spe_abi.
18324         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
18325
18326 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
18327
18328         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
18329         GENNONACR_REGS.
18330
18331 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18332
18333         PR c/19999
18334         * c-typeck.c (build_binary_op): Warn about floating point
18335         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
18336
18337 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
18338
18339         PR target/34526
18340         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
18341         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
18342         add vrsave.
18343         (rs6000_override_options): Set altivec_abi as default, not override,
18344         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
18345         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
18346         is used; use new member spe_abi.
18347         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
18348         spe_abi and altivec_abi.
18349
18350 2008-02-22  Tomas Bily  <tbily@suse.cz>
18351
18352         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
18353
18354 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18355
18356         PR bootstrap/35273
18357         * config.build (build_file_translate): Set to `CMD //c' only if
18358         it works.
18359         * Makefile.in (build_file_translate): Improve comment.
18360
18361 2008-02-21  Jan Hubicka  <jh@suse.cz>
18362
18363         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
18364         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
18365         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
18366
18367 2008-02-21  Michael Matz  <matz@suse.de>
18368
18369         PR target/35264
18370         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
18371
18372 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
18373
18374         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
18375         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
18376         as insn constraint.
18377         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
18378         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
18379         SSE_VEC_FLOAT_MODE_P as insn constraint.
18380         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
18381         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
18382         sse4a_movntdf using MODEF mode iterator.
18383         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
18384         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
18385         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
18386         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
18387         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
18388         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
18389         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
18390
18391 2008-02-21  Richard Guenther  <rguenther@suse.de>
18392
18393         * tree.def (PAREN_EXPR): New tree code.
18394         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
18395         and PAREN_EXPR.
18396         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
18397         * expr.c (expand_expr_real_1): Likewise.
18398         * tree-inline.c (estimate_num_insns_1): Likewise.
18399         * tree-complex.c (expand_complex_move): Likewise.
18400         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
18401         as plain x.
18402
18403 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
18404
18405         PR target/35225
18406         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
18407
18408 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
18409
18410         PR target/35190
18411         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
18412
18413         * config/sh/sh.c (find_barrier): Don't go past
18414         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
18415
18416 2008-02-20  DJ Delorie  <dj@redhat.com>
18417
18418         * config/h8300/h8300.md (insv): Force source operand to be a register.
18419
18420         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
18421         as a jump, not as a plain insn.
18422
18423 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
18424
18425         * doc/invoke.texi (Warning Options): Add new option
18426         -Wframe-larger-than=.
18427         (-Wframe-larger-than): Document.
18428
18429         * flags.h (warn_frame_larger_than, frame_larger_than_size):
18430         Add declarations for new option variables.
18431
18432         * final.c (final_start_function): Check the frame size
18433         before emission and issue a Wframe-larger-than warning.
18434
18435         * opts.c (warn_frame_larger_than, frame_larger_than_size):
18436         Add definitions for new option variables.
18437         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
18438
18439         * common.opt (Wframe-larger-than=): New option.
18440
18441 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
18442
18443         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
18444         (<sse>_div<mode>3): Ditto.
18445         (<sse>_vmdiv<mode>3): Ditto.
18446         (<sse>_vmsqrt<mode>2): Ditto.
18447         (*smax<mode>3): Ditto.
18448         (sse5_frcz<mode>2): Ditto.
18449         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
18450         as insn constraint.
18451
18452 2008-02-20  Richard Guenther  <rguenther@suse.de>
18453
18454         PR middle-end/35265
18455         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
18456         be happy with INTEGRAL_TYPE_P.
18457
18458 2008-02-20  Richard Guenther  <rguenther@suse.de>
18459
18460         * fold-const.c (split_tree): Associate floatig-point expressions
18461         if flag_associative_math is set.
18462
18463 2008-02-20  Richard Guenther  <rguenther@suse.de>
18464
18465         * tree.h (fold_real_zero_addition_p): Declare.
18466         * fold-const.c (fold_real_zero_addition_p): Export.
18467         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
18468         floating-point operations with zero and one.
18469
18470 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
18471
18472         * doc/install.texi: Correct references to CFLAGS, replacing them
18473         with BOOT_CFLAGS.  Document flags used during bootstrap for
18474         target libraries.
18475
18476 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
18477
18478         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
18479         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
18480         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
18481         insn constraint.
18482         (smin<mode>3): Ditto from similar patterns.
18483         (smax<mode>3): Ditto.
18484         (*ieee_smin<mode>3): Ditto.
18485         (*ieee_smax<mode>3): Ditto.
18486         * config/i386/sse.md (sse): New mode attribute.
18487         (mov<mode>): Macroize expander from movv4sf and movv2df using
18488         SSEMODEF2P mode iterator.
18489         (<sse>_movnt<mode>): Ditto from similar patterns. Use
18490         SSE_VEC_FLOAT_MODE_P as insn constraint.
18491         (storent<mode>): Ditto.
18492         (storent<mode>): Macroize expander from storentsf and storentdf using
18493         MODEF mode iterator.
18494         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
18495         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
18496         (abs<mode>2): Ditto from similar patterns.
18497         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
18498         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
18499         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
18500         (<sse>_vmsqrt<mode>2): Ditto.
18501         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
18502         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
18503         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
18504         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
18505         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
18506         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
18507         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
18508         insn constraint.
18509         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
18510         iterator and SSE_FLOAT_MODE_P as insn constraint.
18511         (<sse>_ucomi): Ditto from similar patterns.
18512         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
18513         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
18514         SSE_VEC_FLOAT_MODE_P as insn constraint.
18515         (vcond<mode>): Ditto from similar patterns.
18516         (and<mode>3, *and<mode>3): Ditto.
18517         (<sse>_nand<mode>3): Ditto.
18518         (ior<mode>3, *ior<mode>3): Ditto.
18519         (xor<mode>3, *xor<mode>3): Ditto.
18520         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
18521         iterator and SSE_FLOAT_MODE_P as insn constraint.
18522         (*nand<mode>3): Ditto from similar patterns.
18523         (*ior<mode>3): Ditto.
18524         (*xor<mode>3): Ditto.
18525
18526 2008-02-20  Ira Rosen  <irar@il.ibm.com>
18527
18528         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
18529         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
18530         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
18531
18532 2008-02-19  Jan Hubicka  <jh@suse.cz>
18533
18534         * predict.c (tree_bb_level_predictions): Remove variable next
18535         mistakely introduced by previous commit.
18536
18537 2008-02-19  Jan Hubicka  <jh@suse.cz>
18538
18539         * predict.c (predict_paths_leading_to): Rewrite.
18540         (predict_paths_for_bb): New.
18541         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
18542
18543 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18544
18545         PR bootstrap/35218
18546         * Makefile.in (build_file_translate): New.
18547         (gcc-vers.texi): Use it for translating $(abs_srcdir).
18548         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
18549         * configure.ac (build_file_translate): Substitute it.
18550         * configure: Regenerate.
18551
18552 2008-02-19  Jan Hubicka  <jh@suse.cz>
18553
18554         PR rtl-optimization/34408
18555         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
18556         invalid sharing.
18557
18558 2008-02-19  Jan Hubicka  <jh@suse.cz>
18559
18560         PR middle-end/28779
18561         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
18562         call_expr.
18563
18564 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
18565
18566         PR Ada/35186
18567         * config/i386/i386-modes.def: Revert the last DI alignment
18568         change until Ada people can look into it.
18569
18570 2008-02-19  Nick Clifton  <nickc@redhat.com>
18571
18572         * opts.c (print_specific_help): Fix typo in --help text.
18573
18574 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
18575
18576         PR target/35239
18577         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
18578         32-bit inline asm without asm alternatives for host GCC < 3.0.
18579
18580 2008-02-19  Richard Guenther  <rguenther@suse.de>
18581
18582         PR tree-optimization/34989
18583         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
18584         Allow propagation to INDIRECT_REF if we can simplify only.
18585
18586 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18587
18588         * c-common.c (warn_for_collisions_1): Use appropriate option when
18589         warning.
18590
18591 2008-02-19  Nick Clifton  <nickc@redhat.com>
18592
18593         PR other/31349
18594         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
18595         (handle_options): Fix indentation.
18596         (print_filtered_help): If no language-specific options were
18597         displayed tell the user how to list all the options supported by
18598         the language's front-end.
18599         (print_specific_help): Fix indentation and remove duplicate line.
18600         (common_handle_option): Handle the -v option.
18601         For --help enable the display of undocumented options if the -v
18602         switch has been included on the command line.
18603         For --help= check for overlaps in the arguments between the option
18604         classes and the language names and issue a warning when they
18605         cannot be disambiguated.
18606         * c.opt (v): Pass on to the common option handler.
18607
18608 2008-02-19  Revital Eres  <eres@il.ibm.com>
18609
18610         * modulo-sched.c (sms_schedule): Change dump message when
18611         create_ddg function fails.
18612         (try_scheduling_node_in_cycle): Rename row to cycle.
18613         (print_partial_schedule): Rename CYCLE to ROW.
18614
18615 2008-02-19  Christian Bruel  <christian.bruel@st.com>
18616             Zdenek Dvorak  <ook@ucw.cz>
18617
18618         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
18619
18620 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
18621
18622         PR target/33555
18623         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
18624         (*x86_movdicc_0_m1_se): Ditto.
18625
18626 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
18627
18628         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
18629         (CMPtype): Define as __gcc_CMPtype.
18630         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
18631         (CMPtype): Define as __gcc_CMPtype.
18632
18633 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
18634
18635         Support valgrind 3.3 for --enable-checking=valgrind.
18636         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
18637         here.
18638         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
18639         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
18640         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
18641         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
18642         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
18643         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
18644         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
18645         respectively.
18646         * ggc-zone.c: Similar.
18647         * ggc-page.c: Similar.
18648
18649 2008-02-19  Paul Brook  <paul@codesourcery.com>
18650
18651         PR target/35071
18652         * config/arm/ieee754-df.S: Fix do_it typo.
18653         * config/arm/ieee754-sf.S: Fix do_it typo.
18654
18655 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
18656
18657         PR target/35189
18658         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
18659         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
18660         (OPTION_MASK_ISA_SSE_SET): Likewise.
18661         (OPTION_MASK_ISA_SSE2_SET): Likewise.
18662         (OPTION_MASK_ISA_SSE3_SET): Likewise.
18663         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
18664         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
18665         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
18666         (OPTION_MASK_ISA_SSE4_SET): Likewise.
18667         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
18668         (OPTION_MASK_ISA_SSE5_SET): Likewise.
18669         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
18670         (OPTION_MASK_ISA_MMX_UNSET): Updated.
18671         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
18672         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
18673         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
18674         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
18675         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
18676         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
18677         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
18678         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
18679         (OPTION_MASK_ISA_SSE4): Removed.
18680         (ix86_handle_option): Turn on bits in ix86_isa_flags and
18681         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
18682         (override_options): Don't turn on implied SSE/MMX bits in
18683         ix86_isa_flags.
18684
18685 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
18686
18687         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
18688         32bit host.
18689
18690 2008-02-18  Joey Ye  <joey.ye@intel.com>
18691
18692         PR middle-end/34921
18693         * tree-nested.c (insert_field_into_struct): Set type alignment
18694         to field alignment if the former is less than the latter.
18695
18696 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
18697
18698         * BASE-VER: Set to 4.4.0.
18699
18700 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18701
18702         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
18703         * doc/cfg.texi: Likewise.
18704         * doc/extend.texi: Likewise.
18705         * doc/gty.texi: Likewise.
18706         * doc/invoke.texi: Likewise.
18707         * doc/loop.texi: Likewise.
18708         * doc/md.texi: Likewise.
18709         * doc/passes.texi: Likewise.
18710         * doc/rtl.texi: Likewise.
18711         * doc/sourcebuild.texi: Likewise.
18712         * doc/tm.texi: Likewise.
18713         * doc/tree-ssa.texi: Likewise.
18714
18715 2008-02-17  Richard Guenther  <rguenther@suse.de>
18716
18717         PR middle-end/35227
18718         * tree-complex.c (init_parameter_lattice_values): Handle parameters
18719         without default definition.
18720
18721 2008-02-17  Richard Guenther  <rguenther@suse.de>
18722
18723         PR tree-optimization/35231
18724         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
18725         if A | B != 1.
18726
18727 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
18728
18729         Revert:
18730         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
18731         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
18732         libgcc_cmp_return mode.
18733
18734 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18735
18736         PR c/28368
18737         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
18738
18739 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
18740
18741         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
18742         multilibs.
18743
18744 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18745
18746         * doc/c-tree.texi: Use `@.' where appropriate.
18747         * doc/extend.texi: Likewise.
18748         * doc/install.texi: Likewise.
18749         * doc/invoke.texi: Likewise.
18750         * doc/loop.texi: Likewise.
18751         * doc/makefile.texi: Likewise.
18752         * doc/md.texi: Likewise.
18753         * doc/passes.texi: Likewise.
18754         * doc/standards.texi: Likewise.
18755         * doc/tm.texi: Likewise.
18756
18757 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
18758
18759         PR middle-end/35196
18760         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
18761         in entry_bb.
18762         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
18763         rather than in entry_bb.
18764
18765 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
18766
18767         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
18768         libgcc_cmp_return mode.
18769
18770 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
18771
18772         PR middle-end/35130
18773         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
18774         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
18775
18776 2008-02-15  Richard Guenther  <rguenther@suse.de>
18777             Zdenek Dvorak  <ook@ucw.cz>
18778
18779         PR tree-optimization/35164
18780         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
18781         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
18782         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
18783         Only propagate addresses which do not have abnormal SSA_NAMEs
18784         in their operands.
18785
18786 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
18787
18788         PR target/35088
18789         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
18790
18791 2008-02-15  Jan Hubicka  <jh@suse.cz>
18792
18793         PR middle-end/35149
18794         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
18795
18796 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
18797
18798         PR middle-end/34621
18799         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
18800         when calculating alignment_pad.
18801
18802 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
18803
18804         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
18805         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
18806         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
18807         and STACK_BOUNDARY define.
18808
18809 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
18810
18811         PR preprocessor/35061
18812         * c-pragma.c (handle_pragma_pop_macro): Check that
18813         pushed_macro_table has been allocated.
18814
18815 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
18816
18817         PR middle-end/35136
18818         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
18819         (force_gimple_operand): Likewise.
18820         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
18821         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
18822         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
18823         (find_interesting_uses_address): Check addressability and alignment
18824         of the base expression only after substituting bases of IVs into it.
18825
18826 2008-02-14  Michael Matz  <matz@suse.de>
18827
18828         PR target/34930
18829         * function.c (instantiate_virtual_regs_in_insn): Reload address
18830         before falling back to reloading the whole operand.
18831
18832 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
18833
18834         * config/s390/s390.c (s390_mainpool_start): Emit the pool
18835         before the first section switch note.
18836
18837 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18838
18839         * doc/bugreport.texi: Update copyright years.
18840         * doc/c-tree.texi: Likewise.
18841         * doc/cfg.texi: Likewise.
18842         * doc/cpp.texi: Likewise.
18843         * doc/cppinternals.texi: Likewise.
18844         * doc/fragments.texi: Likewise.
18845         * doc/frontends.texi: Likewise.
18846         * doc/gcc.texi: Likewise.
18847         * doc/gty.texi: Likewise.
18848         * doc/hostconfig.texi: Likewise.
18849         * doc/implement-c.texi: Likewise.
18850         * doc/libgcc.texi: Likewise.
18851         * doc/loop.texi: Likewise.
18852         * doc/makefile.texi: Likewise.
18853         * doc/options.texi: Likewise.
18854         * doc/passes.texi: Likewise.
18855         * doc/rtl.texi: Likewise.
18856         * doc/sourcebuild.texi: Likewise.
18857         * doc/standards.texi: Likewise.
18858         * doc/tree-ssa.texi: Likewise.
18859         * doc/trouble.texi: Likewise.
18860
18861         * doc/extend.texi: Use @: or add comma where appropriate.
18862         * doc/invoke.texi: Likewise.
18863         * doc/tm.texi: Likewise.
18864
18865 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
18866
18867         PR target/34393
18868         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
18869         to a reg.
18870
18871 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
18872
18873         * doc/md.texi (clz, ctz): Add reference.
18874         * doc/rtl.texi (clz, ctz): Likewise.
18875
18876 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18877
18878         PR other/35148
18879         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
18880         srcdir.
18881
18882 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
18883
18884         * config/s390/s390.c (struct constant_pool): New field
18885         emit_pool_after added.
18886         (s390_mainpool_start): Set the emit_pool_after flag according
18887         to the section switch notes.
18888         (s390_mainpool_finish): Consider emit_pool_after when emitting
18889         the literal pool at the end of the function.
18890         (s390_chunkify_start): Force literal pool splits at section
18891         switch notes.
18892
18893 2008-02-13  Michael Matz  <matz@suse.de>
18894
18895         PR debug/35065
18896         * var-tracking.c (clobber_variable_part): Correctly traverse the
18897         list.
18898
18899 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18900
18901         PR 29673
18902         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
18903         Add -fdump-ipa-inline.
18904         * tree-dump.c (dump_files): Remove tree-inlined dump.
18905         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
18906
18907 2008-02-12  Richard Guenther  <rguenther@suse.de>
18908
18909         PR tree-optimization/35171
18910         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
18911         default defs.
18912
18913 2008-02-12  Richard Guenther  <rguenther@suse.de>
18914
18915         PR middle-end/35163
18916         * fold-const.c (fold_widened_comparison): Use get_unwidened in
18917         value-preserving mode.  Disallow final truncation.
18918
18919 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
18920
18921         PR middle-end/35136
18922         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
18923         code from here to...
18924         (force_gimple_operand): ...here.
18925
18926 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
18927
18928         PR c++/35144
18929         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
18930         non-compatible pointers.
18931         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
18932         different FIELD_DECLs, try harder by comparing field offsets, sizes
18933         and types.
18934
18935         PR inline-asm/35160
18936         * function.c (match_asm_constraints_1): Don't replace the same input
18937         multiple times.
18938
18939 2008-02-12  Anatoly Sokolov <aesok@post.ru>
18940
18941         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
18942         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
18943         (expand_epilogue): Restore RAMPZ register.
18944         * config/avr/avr.md (RAMPZ_ADDR): New constant.
18945
18946 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
18947
18948         * config/i386/cygwin.asm: (__alloca): Correct calling
18949         convention and alignment.
18950         (__chkstk): Force 8 byte stack alignment.
18951
18952 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
18953             Richard Guenther  <rguenther@suse.de>
18954
18955         PR tree-optimization/33992
18956         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
18957         the zero we compare against.
18958
18959 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
18960
18961         PR libfortran/35063
18962         * gthr-win32.h (__gthread_mutex_destroy_function): New function
18963         to CloseHandle after unlocking to prevent accumulation of handle
18964         count.
18965
18966 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18967
18968         PR middle_end/34150
18969         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
18970         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
18971         and update LABEL_NUSES during and after reload.
18972
18973 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
18974
18975         PR middle-end/34627
18976         * combine.c (simplify_if_then_else): Make sure the comparison is
18977         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
18978
18979 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
18980
18981         PR bootstrap/35051
18982         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
18983         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
18984         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
18985         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
18986         * tree.h (get_type_static_bounds): Likewise.
18987
18988 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18989
18990         * doc/invoke.texi (Option Summary, C++ Dialect Options)
18991         (Objective-C and Objective-C++ Dialect Options, Warning Options):
18992         Make -Wfoo language annotations match what the compiler outputs.
18993
18994 2008-02-08  Sa Liu  <saliu@de.ibm.com>
18995
18996         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
18997         intrinsics spu_convts, spu_convtu, spu_convtf.
18998
18999 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
19000
19001         * doc/extend.texi (Function Attributes) <noinline>: Mention
19002         asm ("") as method to keep calls.
19003
19004 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19005
19006         PR other/32754
19007         * doc/options.texi (Options): Replace references to opts.sh with
19008         optc-gen.awk.
19009         * opts-common.c: Likewise.
19010         * optc-gen.awk: Likewise.
19011
19012 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
19013
19014         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
19015
19016 2008-02-07  Richard Henderson  <rth@redhat.com>
19017
19018         PR rtl-opt/33410
19019         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
19020         EXPR_LIST for the REG_EQUAL instead of a comparison with a
19021         funny mode.
19022
19023 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
19024
19025         PR tree-optimization/35085
19026         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
19027         for operand entry oe2 in addition to operand entry oe3 in order to
19028         expose more opportunities for vectorizer sum reduction.
19029
19030 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19031
19032         PR other/35107
19033         * Makefile.in (LIBS): Remove $(GMPLIBS).
19034         (cc1-dummy, cc1): Add $(GMPLIBS).
19035
19036 2008-02-06  Jan Hubicka  <jh@suse.cz>
19037
19038         PR target/23322
19039         * i386.md (moddf_integer): Do not produce partial memory stalls for
19040         targets where it hurts.
19041
19042 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
19043
19044         PR target/35083
19045         * optabs.c (expand_float): Do not check for decimal modes when
19046         expanding unsigned integer through signed conversion.
19047
19048 2008-02-06  Nick Clifton  <nickc@redhat.com>
19049
19050         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
19051         inside the clobber with a match_operand and duplicated operand
19052         number in the constraint.
19053         (ineqbranchsi): Delete redundant comment.
19054
19055 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
19056
19057         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
19058         builtin_define ("__USE_INIT_FINI__").
19059         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
19060         -msx multilibs.
19061         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
19062
19063 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19064
19065         PR documentation/30330
19066         * doc/invoke.texi (C++ Dialect Options)
19067         (Objective-C and Objective-C++ Dialect Options, Warning Options):
19068         For each warning option -Wfoo that allows -Wno-foo, ensure both
19069         -Wfoo and -Wno-foo are listed in the option index.  Fix index
19070         entry of -Wswitch-default, index -Wnormalized= including the
19071         `=', and -Wlarger-than-@var{len} including @var{len}.
19072
19073 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
19074
19075         * config/i386/i386.md (floatunssisf2): Use
19076         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
19077         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
19078         Macroize expander using MODEF mode iterator.
19079
19080 2008-02-05  Diego Novillo  <dnovillo@google.com>
19081
19082         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
19083
19084         PR 33738
19085         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
19086
19087 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19088
19089         PR other/35070
19090         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
19091
19092 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
19093
19094         PR target/35084
19095         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
19096         to indicate if a message should be generated.
19097         (init_cumulative_args): Updated.
19098         (function_value_32): Likewise.
19099
19100 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
19101
19102         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
19103
19104 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
19105
19106         PR target/35083
19107         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
19108         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
19109
19110 2008-02-04  Diego Novillo  <dnovillo@google.com>
19111
19112         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
19113
19114         PR 33738
19115         * tree-vrp.c (vrp_evaluate_conditional): With
19116         -Wtype-limits, emit a warning when comparing against a
19117         constant outside the natural range of OP0's type.
19118
19119 2008-02-04  Richard Guenther  <rguenther@suse.de>
19120
19121         PR middle-end/33631
19122         * expr.c (count_type_elements): Give for unions instead of
19123         guessing.
19124
19125 2008-02-04  Richard Guenther  <rguenther@suse.de>
19126
19127         PR middle-end/35043
19128         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
19129         to TYPE_DOMAINs base type instead of using bitsizetype here.
19130
19131 2008-02-03  Jason Merrill  <jason@redhat.com>
19132
19133         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
19134
19135 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19136
19137         PR other/29972
19138         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
19139         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
19140         (RS/6000 and PowerPC Options): Fix typos and markup.
19141         * doc/passes.texi (Tree-SSA passes): Likewise.
19142
19143 2008-02-02  Michael Matz  <matz@suse.de>
19144
19145         PR target/35045
19146         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
19147         from record_last_reg_set_info.
19148         (record_last_reg_set_info): Take an RTX argument, iterate over all
19149         constituent hardregs.
19150         (record_last_set_info, record_opr_changes): Change calls to
19151         new signature or to record_last_reg_set_info_regno.
19152
19153 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
19154
19155         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
19156
19157 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
19158
19159         PR rtl-optimization/34773
19160         * reg-notes.def (EQUAL): Mention significance of combination of
19161         REG_EQUAL and REG_RETVAL.
19162         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
19163         insn that has a REG_RETVAL.
19164
19165 2008-02-01  Roger Sayle  <roger@eyesopen.com>
19166
19167         PR bootstrap/33781
19168         * configure.ac (--enable-fixed-point): Disable unless explicitly
19169         requested on IRIX.
19170         * configure: Regenerate.
19171
19172 2008-02-01  Richard Guenther  <rguenther@suse.de>
19173
19174         PR other/35042
19175         * invoke.texi (-finline-limit): Remove no longer true parts
19176         of the documentation.  Note that there is no default value.
19177
19178 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
19179             Mark Mitchell  <mark@codesourcery.com>
19180             Ben Elliston  <bje@au.ibm.com>
19181
19182         PR c/29326
19183         * doc/extend.texi (Other Builtins): Document.
19184
19185 2008-01-31  Tom Browder <tom.browder@gmail.com>
19186
19187         * doc/c-tree.texi (Types): Fix grammar.
19188         (Expression trees): Ditto.
19189         * doc/passes.texi (Tree-SSA passes): Ditto.
19190
19191         * doc/configterms.texi (Configure Terms): Fix typo.
19192         * doc/cpp.texi (Common Predefined Macros): Ditto.
19193         * doc/md.texi (Machine Constraints): Ditto.
19194
19195         * doc/makefile.texi (Makefile): Add comma.
19196
19197 2008-01-31  Tom Browder  <tom.browder@gmail.com>
19198             Gerald Pfeifer  <gerald@pfeifer.com>
19199
19200         * doc/sourcebuild.texi (Front End): Remove references to CVS
19201         and CVSROOT/modules.
19202         (Texinfo Manuals): Replace reference to CVS by one to SVN.
19203         (Back End): Remove reference to CVS.
19204
19205 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
19206
19207         PR target/34900
19208         * config/mips/mips.c (gen_load_const_gp): New function, taking a
19209         comment from...
19210         (mips16_gp_pseudo_reg): ...here.
19211         * config/mips/mips.md (load_const_gp): Replace with...
19212         (load_const_gp_<mode>): ...this :P-based insn.
19213
19214 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19215
19216         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
19217         options. Minor fixes.
19218         (-std): Move reference to standards closer to where language
19219         standards are first mentioned.
19220
19221 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
19222
19223         PR rtl-optimization/34995
19224         * reload.c (alternative_allows_const_pool_ref): Take an rtx
19225         parameter and return a bool.  If the rtx parameter is nonnull,
19226         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
19227         (find_reloads): Update call accordingly.  Pass the new operand
19228         if it needed no address reloads, otherwise pass null.
19229
19230 2008-01-30  Richard Henderson  <rth@redhat.com>
19231
19232         PR c/34993
19233         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
19234         for unbounded arrays.
19235
19236 2008-01-30  Silvius Rus  <rus@google.com>
19237
19238         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
19239
19240 2008-01-30  Jan Hubicka  <jh@suse.cz>
19241
19242         PR target/34982
19243         * i386.c (init_cumulative_args): Use real function declaration when
19244         calling locally.
19245
19246 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
19247
19248         PR rtl-optimization/34998
19249         * global.c (build_insn_chain): Treat non-subreg_lowpart
19250         SUBREGs of pseudos as clobbering all the words covered by the
19251         SUBREG, not just all the bytes.
19252         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
19253         original df_ref rather than an extract parameter.
19254         (global_conflicts): Update call accordingly.
19255
19256 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
19257
19258         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
19259         the overflow check to make it easier to read.
19260         (__fixtfdi): Change the type of the ll member in union
19261         long_double to UDItype_x.
19262
19263 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
19264
19265         PR middle-end/34969
19266         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
19267         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
19268         * tree-inline.c (fold_marked_statements): Call
19269         cgraph_update_edges_for_call_stmt if folding a call statement.
19270         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
19271         debug_generic_stmt calls, reset it back afterwards.
19272
19273         PR c/35017
19274         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
19275         static decls.
19276         * c-typeck.c (build_external_ref): Don't pedwarn about
19277         static vars in current function's scope.
19278
19279 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
19280
19281         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
19282
19283 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
19284
19285         PR c/35002
19286         * ipa-struct-reorg.c: Fix spelling.
19287         * params.def: Ditto.
19288
19289 2008-01-29  Richard Guenther  <rguenther@suse.de>
19290
19291         PR middle-end/35006
19292         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
19293         field.
19294         * tree-inline.c (remap_type): Increment remapping_type_depth
19295         around remapping types.
19296         (copy_body_r): Only add referenced variables if they are referenced
19297         from code, not types.
19298
19299 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
19300
19301         PR c++/34055
19302         PR c++/34103
19303         PR c++/34219
19304         PR c++/34606
19305         PR c++/34753
19306         PR c++/34754
19307         PR c++/34755
19308         PR c++/34919
19309         PR c++/34961
19310         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
19311         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
19312
19313 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
19314
19315         PR target/34412
19316         * config/avr/avr.c (expand_prologue): Use correct QI mode frame
19317         pointer for tiny stack.
19318
19319 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
19320
19321         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
19322
19323 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
19324
19325         * config/vx-common.h: Fix typo in comment.
19326
19327 2008-01-28  Ian Lance Taylor  <iant@google.com>
19328
19329         PR c++/34862
19330         PR c++/33407
19331         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
19332         coalesce pointers if they have different DECL_NO_TBAA_P values.
19333         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
19334         between variables with different DECL_NO_TBAA_P values.
19335
19336 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
19337
19338         PR 31535
19339         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
19340         are not legitimate small data references on SPE targets.
19341
19342 2008-01-28  David Daney  <ddaney@avtrex.com>
19343
19344         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
19345
19346 2008-01-28  David Daney  <ddaney@avtrex.com>
19347
19348         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
19349
19350 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
19351
19352         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
19353         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
19354         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
19355         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
19356         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
19357         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
19358         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
19359         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
19360
19361 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
19362
19363         * basic-block.h (condjump_equiv_p): Fix comment.
19364
19365 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
19366
19367         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
19368         print_generic_stmt_indented): Fix comment.
19369
19370 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
19371
19372         * configure.ac (__stack_chk_fail): Add detecion for availability
19373         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
19374         * configure: Regenerate.
19375
19376 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
19377
19378         PR middle-end/34688
19379         * final.c (output_addr_const): Handle TRUNCATE.
19380
19381 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
19382
19383         PR target/34711
19384         * tree-ssa-loop-ivopts.c (comp_cost): New type.
19385         (zero_cost, infinite_cost): New constants.
19386         (struct cost_pair): Change type of cost to comp_cost.
19387         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
19388         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
19389         New functions.
19390         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
19391         split_address_cost, ptr_difference_cost, difference_cost,
19392         get_computation_cost_at, get_computation_cost,
19393         determine_use_iv_cost_generic, determine_use_iv_cost_address,
19394         determine_use_iv_cost_condition, determine_use_iv_costs,
19395         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
19396         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
19397         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
19398         Change type of cost to comp_cost.
19399         (determine_iv_cost): Increase cost of non-original ivs, instead
19400         of decreasing the cost of original ones.
19401         (get_address_cost): Indicate the complexity of the addressing mode
19402         in comp_cost.
19403         (try_add_cand_for): Prefer using ivs not specific to some object.
19404         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
19405
19406 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
19407             Janis Johnson  <janis187@us.ibm.com>
19408
19409         PR target/34814
19410         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
19411         (TARGET_INSTANTIATE_DECLS): Likewise.
19412         * target.h (expand_to_rtl_hook): New target hook.
19413         (instantiate_decls): Likewise.
19414         * function.c (instantiate_decl): Make non-static.  Rename to...
19415         (instantiate_decl_rtl): ... this.
19416         (instantiate_expr): Use instantiate_decl_rtl.
19417         (instantiate_decls_1): Likewise.
19418         (instantiate_decls): Likewise.
19419         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
19420         * function.h (instantiate_decl_rtl): Add prototype.
19421         * cfgexpand.c (target.h): New include.
19422         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
19423         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
19424         (TARGET_INSTANTIATE_DECLS): Likewise.
19425         (TARGET_INITIALIZER): New target hooks added.
19426         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
19427         New prototype.
19428         * config/rs6000/rs6000.c (tree-flow.h): New include.
19429         (machine_function): Add sdmode_stack_slot field.
19430         (rs6000_alloc_sdmode_stack_slot): New function.
19431         (rs6000_instantiate_decls): Likewise.
19432         (rs6000_secondary_memory_needed_rtx): Likewise.
19433         (rs6000_check_sdmode): Likewise.
19434         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
19435         (TARGET_INSTANTIATE_DECLS): Likewise.
19436         (rs6000_hard_regno_mode_ok): Allow SDmode.
19437         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
19438         (rs6000_emit_move): Handle SDmode.
19439         (function_arg_advance): Likewise.
19440         (function_arg): Likewise.
19441         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
19442         SDmode var args for 32-bit compiles.
19443         (rs6000_secondary_reload_class): Handle SDmode.
19444         (rs6000_output_function_epilogue): Likewise.
19445         (rs6000_function_value): Simplify if statement.
19446         (rs6000_libcall_value): Likewise.
19447         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
19448         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
19449         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
19450         (movsd_hardfloat): New define_insn.
19451         (movsd_softfloat): Likewise.
19452         (movsd_store): Likewise.
19453         (movsd_load): Likewise.
19454         (extendsddd2): Likewise.
19455         (extendsdtd2): Likewise.
19456         (truncddsd2): Likewise.
19457         (movdd_hardfloat64): Fixup comment.
19458         (UNSPEC_MOVSD_LOAD): New constant.
19459         (UNSPEC_MOVSD_STORE): Likewise.
19460
19461 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
19462
19463         PR c++/34965
19464         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
19465         TRUTH_XOR_EXPR.
19466         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
19467         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
19468         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
19469         and TRUTH_XOR_EXPR.
19470
19471 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
19472
19473         PR target/34794
19474         * config.gcc: Separate AIX 5.3 from AIX 6.1.
19475         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
19476         __LONGDOUBLE128 too.
19477         * config/rs6000/aix61.h: New file.
19478
19479 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
19480
19481         PR rtl-optimization/34959
19482         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
19483         popcount and parity rtxes the same mode as their operand.
19484         Truncate or extend the result to the return value's mode
19485         if necessary.
19486
19487 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
19488
19489         PR target/34981
19490         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
19491         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
19492         to GOT_VERSION_REGNUM.
19493         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
19494         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
19495         * config/mips/mips.c (mips_emit_call_insn): New function.
19496         (mips_call_tls_get_addr): Call mips_expand_call directly.
19497         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
19498         emit_call_insn.
19499         (mips16_build_call_stub): Likewise.  Return the call insn or null.
19500         (mips_expand_call): Update the call to mips16_build_call_stub
19501         accordingly and a remove redundant condition.  Assert that MIPS16
19502         stubs do not use lazy binding.  Use mips_emit_call_insn and return
19503         the call insn.
19504         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
19505         TARGET_USE_GOT.
19506         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
19507         (mips_avoid_hazard): Remove hazard_set handling.
19508         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
19509         (UNSPEC_RESTORE_GP): ...this.
19510         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
19511         (FAKE_CALL_REGNO): Rename to...
19512         (GOT_VERSION_REGNUM): ...this.
19513         (type): Add "ghost" value.  Add an associated insn reservation.
19514         (hazard_set): Remove.
19515         (exception_receiver): Rename to...
19516         (restore_gp): ...this and update the unspec identifier accordingly.
19517         (exception_receiver, nonlocal_got_receiver): New expanders.
19518         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
19519         FAKE_CALL_REGNO.  Remove hazard_set attribute.
19520         (set_got_version, update_got_version): New patterns.
19521
19522 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
19523
19524         PR target/34970
19525         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
19526
19527 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
19528
19529         PR other/31955
19530         * doc/install.texi2html: Generate gcc-vers.texi.
19531
19532 2008-01-25  DJ Delorie  <dj@redhat.com>
19533
19534         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
19535
19536 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
19537
19538         * config/c4x: Remove directory.
19539         * config.gcc (crx-*, mt-*): Mark obsolete.
19540         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
19541         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
19542         sh-*-rtemscoff*): Remove cases.
19543         * defaults.h (C4X_FLOAT_FORMAT): Remove.
19544         * real.c (encode_c4x_single, decode_c4x_single,
19545         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
19546         c4x_extended_format): Remove.
19547         * real.h (c4x_single_format, c4x_extended_format): Remove.
19548         * doc/extend.texi (interrupt, naked): Remove mention of attributes
19549         on C4x.
19550         (Pragmas): Remove comment about c4x pragmas.
19551         * doc/install.texi (c4x): Remove target-specific instructions.
19552         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
19553         * doc/md.texi (Machine Constraints): Remove C4x documentation.
19554         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
19555         refer to C4x source files as examples.
19556         (C4X_FLOAT_FORMAT): Remove documentation.
19557
19558 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
19559
19560         * config/bfin/bfin.c (override_options): Reorder tests so that
19561         flag_pic gets enabled for -msep-data.
19562
19563 2008-01-25  Richard Guenther  <rguenther@suse.de>
19564
19565         PR middle-end/32244
19566         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
19567         to its bitfield precision if required.
19568
19569 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
19570
19571         PR middle-end/33880
19572         * tree-nested.c (walk_omp_for): New function.
19573         (convert_nonlocal_reference, convert_local_reference): Call
19574         walk_omp_for on OMP_FOR.
19575         (convert_call_expr): Call walk_body on OMP_FOR's
19576         OMP_FOR_PRE_INIT_BODY.
19577
19578 2008-01-25  Richard Guenther  <rguenther@suse.de>
19579
19580         PR tree-optimization/34966
19581         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
19582         default defs and PHI_NODEs we have to insert after the
19583         defining statement.
19584
19585 2008-01-24  Nick Clifton  <nickc@redhat.com>
19586
19587         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
19588         Provide a default definition.
19589         (LIBGCC2_UNITS_PER_WORD): Likewise.
19590
19591         * config/stormy16/stormy16.c: Include df.h for the prototype
19592         for df_regs_ever_live_p.
19593         (xstormy16_expand_builtin_va_start): Convert the stack offset
19594         into a component_ref and then use POINTER_PLUS_EXPR to add it
19595         to the incoming_virtual_args_rtx.
19596         (xstormy16_gimplify_va_arg_expr): Rename to
19597         xstormy16_gimplify_va_arg_expr.
19598         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
19599         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
19600         xstormy16_gimplify_va_arg_expr.
19601         Fix up some formatting issues.
19602
19603         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
19604         Move to predicates.md.
19605         (xs_hi_general_operand): Likewise.
19606         (xs_hi_nonmemory_operand): Likewise.
19607         * config/stormy16/predicates.md:
19608         (xstormy16_carry_plus_operand): New predicate.
19609         (xs_hi_general_operand): New predicate.
19610         (xs_hi_nonmemory_operand): New predicate.
19611         * config/stormy16/stormy16-protos.h:
19612         (xstormy16_carry_plus_operand): Delete prototype.
19613         (xs_hi_general_operand): Likewise.
19614         (xs_hi_nonmemory_operand): Likewise.
19615
19616         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
19617         modifiers as they are no longer needed and they can trigger
19618         reload spill failures.
19619
19620         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
19621         with a match_operand in order to help reload.
19622
19623         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
19624         constraint with 'e' for the 8th alternative as this version of
19625         the mov.w instruction only accepts the lower 8 registers.
19626
19627 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
19628
19629         PR target/34856
19630         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
19631         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
19632         vector elements.
19633
19634 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
19635
19636         PR middle-end/33333
19637         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
19638
19639 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
19640
19641         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
19642         New functions.
19643         (remove_structure): Update allocations list before removing structure.
19644
19645 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
19646
19647         * ipa-struct-reorg.c (is_safe_cond_expr,
19648         create_new_stmts_for_cond_expr): Use integer_zerop function,
19649         that recognize not only zero-pointer, but zero-integer too.
19650
19651 2008-01-25  Ben Elliston  <bje@au.ibm.com>
19652
19653         PR other/22232
19654         * fixproto: Escape "." in sed expression that strips leading "./".
19655
19656 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
19657
19658         PR driver/34904
19659         * gcc.c (SWITCH_OK): Removed.
19660         (SWITCH_LIVE): Changed to bit.
19661         (SWITCH_FALSE): Likewise.
19662         (SWITCH_IGNORE): Likewise.
19663         (switchstr): Change live_cond to unsigned int.
19664         (process_command): Replace SWITCH_OK with 0.
19665         (do_self_spec): Likewise.
19666         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
19667         (give_switch): Likewise.
19668         (used_arg): Likewise.
19669         (do_spec_1): Set the SWITCH_IGNORE bit.
19670         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
19671         bits.  Set the SWITCH_LIVE bit.
19672
19673 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
19674
19675         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
19676
19677 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
19678
19679         PR tree-optimization/34472
19680         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
19681         parameter to a "bool *" and set *DATA to false if there is
19682         an unsafe access.  Do not delete the structure here.
19683         (check_cond_exprs): Delete it here instead.
19684         (check_cond_exprs, exclude_cold_structs): Do not increase
19685         I when removing a structure.
19686
19687 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
19688
19689         PR target/34856
19690         * config/i386/i386.c (ix86_expand_vector_init): Consider only
19691         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
19692
19693 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
19694
19695         PR middle-end/34934
19696         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
19697         a fixed vector for stack.
19698
19699 2008-01-24  Ben Elliston  <bje@au.ibm.com>
19700
19701         PR c++/25701
19702         * doc/gcc.texi (Software development): Add a direntry for g++.
19703
19704 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
19705
19706         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
19707         stale and straggling -fforce-addr comments above.
19708
19709         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
19710         define.
19711         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
19712         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
19713
19714 2008-01-23  Michael Matz  <matz@suse.de>
19715
19716         PR debug/34895
19717         * dwarf2out.c (force_type_die): Use modified_type_die instead of
19718         gen_type_die.
19719
19720 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
19721
19722         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
19723         malloc result type.
19724
19725 2008-01-23 Anatoly Sokolov <aesok@post.ru>
19726
19727         * config/avr/avr.c (avr_current_arch): New variable.
19728         (avr_arch_types): Add 'avr31' and 'avr51' entries.
19729         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
19730         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
19731         (avr_override_options): Init 'avr_current_arch'.
19732         (base_arch_s): Move from here...
19733         * config/avr/avr.h (base_arch_s): ... here. Add new members
19734         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
19735         'mega' to 'have_jmp_call'.
19736         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
19737         "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
19738         macros.
19739         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
19740         architectures.
19741         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
19742         MULTILIB_MATCHES): Ditto.
19743
19744 2008-01-23  Richard Guenther  <rguenther@suse.de>
19745
19746         PR middle-end/31529
19747         * cgraphunit.c (cgraph_reset_node): Always mark the node
19748         not reachable if it is not queued already.
19749
19750 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
19751
19752         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
19753         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
19754         (cputype_selected): New static variable.
19755         (bfin_handle_option): Set it if -mcpu is used.
19756         (override_option): Select default set of workarounds if no cpu type
19757         selected on the command line.
19758         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
19759
19760         From  Michael Frysinger  <michael.frysinger@analog.com>
19761         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
19762         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
19763
19764         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
19765         for bf547, bf523, bf524, and bf526.
19766         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
19767         bf526.
19768         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
19769         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
19770         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
19771         __ADSPBF547__ and __ADSPBF54x__ for bf547.
19772         * doc/invoke.texi (Blackfin Options): Document that
19773         -mcpu now accept bf547, bf523, bf524, and bf526.
19774
19775 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
19776
19777         PR rtl-optimization/34628
19778         * combine.c (try_combine): Stop and undo after the first combination
19779         if an autoincrement side-effect on the first insn has effectively
19780         been lost.
19781
19782 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
19783
19784         PR target/34529
19785         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
19786         Offset addresses are not valid for Altivec or paired float modes.
19787
19788 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
19789
19790         PR c++/34607
19791         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
19792         if DECL_INITIAL (decl) is error_mark_node.
19793
19794         PR c++/34914
19795         * c-common.c (handle_vector_size_attribute): Only allow
19796         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
19797         the same way as pointer, array etc. types.
19798         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
19799
19800         PR c++/34917
19801         * tree.c (build_type_attribute_qual_variant): Call
19802         build_qualified_type if attributes are equal, but quals are not.
19803
19804 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19805
19806         PR 32102
19807         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
19808         * flags.h (warn_strict_aliasing): Remove.
19809         (warn_strict_overflow): Remove.
19810         * opts.c (warn_strict_aliasing): Remove.
19811         (warn_strict_overflow): Remove.
19812         * c-opts.c (c_common_handle_option): -Wall only sets
19813         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
19814         (c_common_post_options): Give default values to -Wstrict-aliasing
19815         and -Wstrict-overflow if they are uninitialized.
19816         * common.opt (Wstrict-aliasing): Specify Var and Init.
19817         (Wstrict-overflow): Likewise.
19818
19819 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
19820
19821         PR rtl-optimization/26854
19822         PR rtl-optimization/34400
19823         PR rtl-optimization/34884
19824         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
19825         DF_RD->gen.
19826         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
19827         (df_rd_bb_info.expanded_lr_out): Deleted
19828         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
19829         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
19830         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
19831         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
19832         Removed code to allocate, initialize or free expanded_lr_out.
19833         (df_rd_bb_local_compute_process_def): Restructured to make more
19834         understandable.
19835         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
19836         sets if the sets are being trimmed.
19837
19838 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
19839
19840         PR bootstrap/32287
19841         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
19842         (as_vers): Likewise.
19843         * configure: Regenerated.
19844
19845 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19846
19847         PR middle-end/33092
19848         * tree-pass.h (pass_build_alias): New pass.
19849         * tree-ssa-alias.c (gate_build_alias): New.
19850         (pass_build_alias): New.
19851         * passes.c (init_optimization_passes): Add pass_build_alias after
19852         pass_create_structure_vars.
19853
19854 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
19855
19856         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
19857         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
19858         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
19859         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
19860         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
19861         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
19862         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
19863         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
19864         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
19865         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
19866         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
19867         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
19868         * config/s390/s390.md (FP_ALL): New mode iterator.
19869         (_d): New mode attribute.
19870         ("*signbit<mode>2>"): Changed mode of first operand.
19871         ("isinf<mode>2"): Changed mode of first operand.
19872         ("*TDC_insn"): Adaptation for DFP modes.
19873
19874 2008-01-22  Ben Elliston  <bje@au.ibm.com>
19875
19876         * tree.c (check_qualified_type): Improve function description.
19877
19878 2008-01-21  Jason Merrill  <jason@redhat.com>
19879
19880         PR c++/34196
19881         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
19882         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
19883         if it is set.
19884
19885 2008-01-21  DJ Delorie  <dj@redhat.com>
19886
19887         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
19888         return zero.
19889
19890 2008-01-21  Richard Guenther  <rguenther@suse.de>
19891
19892         PR middle-end/34856
19893         * tree-cfg.c (verify_expr): Allow all invariant expressions
19894         instead of just constant class ones as reference argument.
19895         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
19896         like any other constant.
19897         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
19898
19899 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
19900
19901         * regmove.c (fixup_match_1): Update call crossed frequencies.
19902
19903 2008-01-21  Richard Guenther  <rguenther@suse.de>
19904
19905         PR c/34885
19906         * tree-inline.c (setup_one_parameter): Deal with mismatched
19907         types using a VIEW_CONVERT_EXPR.
19908
19909 2008-01-21  Alon Dayan  <alond@il.ibm.com>
19910             Olga Golovanevsky  <olga@il.ibm.com>
19911
19912         PR tree-optimization/34701
19913         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
19914         when the structure size is not a power of 2.
19915
19916 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
19917
19918         * doc/install.texi: Add doc for --enable-checking=df.
19919
19920 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
19921
19922         PR rtl-optimization/34808
19923         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
19924
19925 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
19926
19927         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
19928         input.
19929
19930 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
19931
19932         PR rtl-optimization/26854
19933         PR rtl-optimization/34400
19934         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
19935         DF_RD->gen.
19936         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
19937         (df_rd_bb_info.expanded_lr_out): New.
19938         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
19939         * loop_iv.c (iv_analysis_loop_init): Ditto.
19940         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
19941         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
19942         Added code to allocate, initialize or free expanded_lr_out.
19943         (df_rd_bb_local_compute_process_def): Restructured to make
19944         more understandable.
19945         (df_rd_confluence_n): Add code to do nothing with fake edges and
19946         code to no apply invalidate_by_call sets if the sets are being trimmed.
19947         (df_lr_local_finalize): Renamed to df_lr_finalize.
19948         (df_live_local_finalize): Renamed to df_live_finalize.
19949
19950 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
19951
19952         PR target/34831
19953         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
19954         deciding whether to use reciprocal instructions.
19955
19956 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
19957
19958         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
19959         dwarf2out_note_section_used if cold_text_section is NULL.
19960
19961 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
19962
19963         PR gcov-profile/34610
19964         * tree-cfg.c (make_edges): Mark both outgoing edges from
19965         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
19966         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
19967         from OMP_FOR and OMP_CONTINUE outgoing edges.
19968
19969         * tree-profile.c (tree_profiling): Return early if
19970         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
19971         at the end.
19972         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
19973         from cfun to child_cfun.
19974         * function.h (struct function): Add after_tree_profile bit.
19975
19976 2008-01-19 Anatoly Sokolov <aesok@post.ru>
19977
19978         * config/avr/avr.S (_exit): Disable interrupt.
19979
19980 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
19981             Steven Bosscher  <stevenb.gcc@gmail.com>
19982
19983         PR rtl-optimization/26854
19984         PR rtl-optimization/34400
19985         * df-problems.c (df_live_scratch): New scratch bitmap.
19986         (df_live_alloc): Allocate df_live_scratch when doing df_live.
19987         (df_live_reset): Clear the proper bitmaps.
19988         (df_live_bb_local_compute): Only process the artificial defs once
19989         since the order is not important.
19990         (df_live_init): Init the df_live sets only with the variables
19991         found live by df_lr.
19992         (df_live_transfer_function): Use the df_lr sets to prune the
19993         df_live sets as they are being computed.
19994         (df_live_free): Free df_live_scratch.
19995
19996 2008-01-18  Ian Lance Taylor  <iant@google.com>
19997
19998         * common.opt: Add fmerge-debug-strings.
19999         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
20000         flag_merge_debug_strings rather than flag_merge_constants.
20001         * doc/invoke.texi (Option Summary): Mention
20002         -fmerge-debug-strings.
20003         (Debugging Options): Document -fmerge-debug-strings.
20004
20005 2008-01-18  Ian Lance Taylor  <iant@google.com>
20006
20007         PR c++/33407
20008         * tree.h (DECL_IS_OPERATOR_NEW): Define.
20009         (struct tree_function_decl): Add new field operator_new_flag.
20010         * tree-inline.c (expand_call_inline): When inlining a call to
20011         operator new, force the return value to go into a variable, and
20012         set DECL_NO_TBAA_P on that variable.
20013         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
20014
20015 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
20016
20017         PR debug/34484
20018         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
20019         DWARF2_DEBUGGING_INFO.
20020         (dwarf2out_note_section_used): Ditto.  Add prototype.
20021         (have_multiple_function_sections, text_section_used,
20022         cold_text_section_used, *cold_text_sections): Move declarations
20023         before their uses.
20024
20025 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
20026
20027         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
20028         field and add signal_ra.
20029         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
20030         assignments to frame state pc.  Move end of stack check after
20031         MD_FALLBACK_FRAME_STATE_FOR.
20032         (uw_update_context_1): Use frame state signal_regs if set, instead
20033         of checking signal_frame flag.
20034         (uw_update_context): Use frame state signal_ra if set.
20035         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
20036         * config/xtensa/linux-unwind.h: New file.
20037
20038 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
20039
20040         * modulo-sched.c (get_sched_window): Fix comment typo.
20041
20042 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
20043
20044         PR tree-optimization/34648
20045         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
20046
20047 2008-01-17  Anatoly Sokolov <aesok@post.ru>
20048
20049         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
20050         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
20051
20052 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
20053
20054         PR rtl-optimization/34400
20055         * df-core.c (df_worklist_dataflow_overeager,
20056         df_worklist_dataflow_doublequeue): New functions.
20057         (df_worklist_dataflow): Two different worklist solvers.
20058         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
20059         New param.
20060
20061 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
20062
20063         PR testsuite/34821
20064         * doc/invoke.texi: Document the dependence on pthread for fopenmp
20065         and ftree-parallelize-loops.
20066
20067 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
20068
20069         PR rtl-optimization/34826
20070         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
20071
20072 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
20073
20074         * global.c (find_reg): Mark the eh regs as used if necessary.
20075         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
20076         * ra.h (struct allocno): no_eh_reg field added.  Changed
20077         no_stack_reg type to bitfield.
20078
20079 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
20080
20081         * tree.c (substitute_in_expr): Add missing 'break'.
20082
20083 2008-01-17  Richard Guenther  <rguenther@suse.de>
20084
20085         PR tree-optimization/34825
20086         * tree-ssa-math-opts.c (is_division_by): Do not recognize
20087         x / x as division to handle.
20088
20089 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20090
20091         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
20092         "-pthread" is specified.
20093         * pa-hpux11.h (LIB_SPEC): Likewise.
20094
20095 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
20096             Peter Bergner  <bergner@vnet.ibm.com>
20097
20098         PR rtl-optimization/33796
20099         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
20100
20101 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20102
20103         PR libgfortran/34699
20104         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
20105         static links.
20106         * pa-hpux10.h (LINK_SPEC): Likewise.
20107         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
20108
20109 2008-01-16  Richard Guenther  <rguenther@suse.de>
20110
20111         PR middle-end/32628
20112         * fold-const.c (fold_convert_const_int_from_int): Do not
20113         set overflow if that occured only because of a sign extension
20114         change when converting from/to a sizetype with the same
20115         precision and signedness.
20116
20117 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
20118
20119         PR debug/34249
20120         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
20121         location address to the correct place.  Update copyright year.
20122
20123 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
20124
20125         * lambda-code.c (lambda_transform_legal_p): Handle the case of
20126         no dependences in the dependence_relations vector.
20127
20128 2008-01-16  Jan Hubicka  <jh@suse.cz>
20129
20130         PR rtl-optimization/31396
20131         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
20132         * cfg.c (dump_reg_info): Print it.
20133         * regs.h (struct reg_info_t): add freq_calls_crossed.
20134         (REG_FREQ_CALLS_CROSSED): New macro.
20135         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
20136         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
20137         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
20138         regmove_optimize): Update call crossed frequencies.
20139         * local-alloc.c (struct qty): Add freq_calls_crossed.
20140         (alloc_qty): Copute freq_calls_crossed.
20141         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
20142         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
20143         * ra.h (struct allocno): Add freq_calls_crossed.
20144
20145 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
20146
20147         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
20148         libgomp when compiling with ftree-parallelize-loops.
20149         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
20150
20151 2008-01-16  Richard Guenther  <rguenther@suse.de>
20152
20153         PR tree-optimization/34769
20154         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
20155         * tree.c (int_cst_value): Instead make this function more
20156         permissive in what it accepts as valid input.  Document this
20157         function always sign-extends the value.
20158
20159 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
20160             Richard Guenther  <rguenther@suse.de>
20161
20162         PR c/34668
20163         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
20164         (gimple_fold_indirect_ref_rhs): ... this.
20165         (gimple_fold_indirect_ref): New function with foldings
20166         that preserve lvalueness.
20167         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
20168         * tree-flow.h (gimple_fold_indirect_ref): Declare.
20169         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
20170         to fold an INDIRECT_REF, fall back to the old use of
20171         fold_indirect_ref_1.
20172
20173 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
20174
20175         * tree-data-ref.c (subscript_dependence_tester_1): Call
20176         free_conflict_function.
20177         (compute_self_dependence): Same.
20178
20179 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
20180
20181         PR debug/34249
20182         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
20183         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
20184         function global.
20185         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
20186         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
20187         for DWARF2_UNWIND_INFO targets.
20188
20189 2008-01-16  Richard Guenther  <rguenther@suse.de>
20190
20191         PR c/34768
20192         * c-typeck.c (common_pointer_type): Do not merge inconsistent
20193         type qualifiers for function types.
20194
20195 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
20196
20197         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
20198         loop_iterator li from previous commit.
20199
20200 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
20201
20202         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
20203
20204 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
20205
20206         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
20207         (parallelize_loops): Don't parallelize irreducible components.
20208
20209 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20210
20211         PR c++/24924
20212         * c-opts (c_common_post_options): Do not enable CPP
20213         flag_pedantic_errors by default.
20214
20215 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
20216
20217         PR rtl-optimization/31944
20218         * cse.c (remove_pseudo_from_table): New function.
20219         (merge_equiv_classes): Use above function to remove pseudo-registers.
20220         (invalidate): Likewise.
20221
20222 2008-01-13  Richard Guenther  <rguenther@suse.de>
20223
20224         PR middle-end/34601
20225         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
20226         instead of TYPE_MODE to deal with calls from expand_one_error_var.
20227
20228 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
20229
20230         * gcse.c (cprop_jump): Call validate_unshare_change instead of
20231         validate_change to unshare the source of the PC set.
20232
20233 2008-01-12  Jan Hubicka  <jh@suse.cz>
20234
20235         PR middle-end/32135
20236         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
20237         references above array bounds.  This might trigger bounds checks for
20238         pointers to arrays.
20239
20240 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
20241
20242         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
20243         new_replaceable_dependencies.
20244
20245 2008-01-12  Doug Kwan  <dougkwan@google.com>
20246
20247         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
20248         instead of OPT_Wreturn_type in warning due to ignored return type
20249         qualifiers.
20250         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
20251         options included in -Wextra.
20252         * c.opt: New option -Wignored_qualifiers.
20253         * doc/invoke.texi (Warning Options, -Wextra): Add new option
20254         -Wignore_qualifiers.
20255         (-Wignored-qualifiers): Document.
20256         (-Wreturn-type): Remove description of functionality now handled
20257         by -Wignored-qualifiers.
20258
20259 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
20260
20261         PR ada/33788
20262         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
20263         NOP_EXPR if it is between integral types with the same precision.
20264
20265 2008-01-12  Jan Hubicka  <jh@suse.cz>
20266
20267         PR other/28023
20268         * invoke.texi (max-inline-recursive-depth): Fix default value.
20269
20270 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
20271
20272         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
20273         correct type.
20274
20275 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
20276
20277         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
20278
20279 2008-01-11  James E. Wilson  <wilson@specifix.com>
20280
20281         PR target/26015
20282         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
20283
20284 2008-01-11  Anatoly Sokolov <aesok@post.ru>
20285
20286         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
20287         save/restore frame pointer register and don't use 'call-prologues'
20288         optimization in function with "OS_task" attribute.
20289
20290 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
20291
20292         PR middle-end/31309
20293         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
20294         when copying to memory.
20295
20296 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
20297
20298         PR rtl-optimization/30905
20299         * cfgcleanup.c: Include dce.h
20300         (crossjumps_occured): New global variable.
20301         (try_crossjump_bb): Exit loop after finding a fallthru edge.
20302         If something changed, set crossjumps_occured to true.
20303         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
20304         Don't add/remove fake edges to exit here...
20305         (cleanup_cfg): ...but do it here, when crossjumping.
20306         Run a fast DCE when successful crossjumps occured in the latest
20307         iteration of try_optimize_cfg.
20308
20309 2008-01-11  Richard Guenther  <rguenther@suse.de>
20310
20311         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
20312         (struct vn_unary_op_s): Likewise.
20313         (vn_reference_insert): Free old reference on hash collision.
20314
20315 2008-01-10  Raksit Ashok  <raksit@google.com>
20316
20317         PR rtl-optimization/27971
20318         * combine.c (find_split_point): Split PLUS expressions which are
20319         inside a MEM rtx, and whose first operand is complex.
20320
20321 2008-01-10  DJ Delorie  <dj@redhat.com>
20322
20323         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
20324         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
20325         (m32c_hard_regno_ok): Call the underlying function.
20326
20327 2008-01-10  Richard Guenther  <rguenther@suse.de>
20328
20329         PR middle-end/34683
20330         * tree-cfg.c (tree_merge_blocks): Do not go through the
20331         full-blown folding and stmt updating path if we just deal
20332         with virtual operands.
20333         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
20334         test for abnormal SSA_NAMEs.
20335
20336 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
20337
20338         PR middle-end/34641
20339         * reload.c (push_reload): Add assertions.  All constants from
20340         reg_equiv_constant should have been used for replacing the respective
20341         pseudo earlier.
20342         (find_reloads_address): Invoke find_reloads_address_part for
20343         constant taken from the reg_equiv_constant array.
20344
20345 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
20346
20347         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
20348         field (valnum) the first in the struct.  Replace bools with
20349         unit bit fields.
20350
20351 2008-01-10  Richard Guenther  <rguenther@suse.de>
20352
20353         PR tree-optimization/34651
20354         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
20355         types and ordering for masking and converting.
20356
20357 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
20358
20359         PR tree-optimization/34017
20360         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
20361         also for PHI_NODE expressions.
20362
20363 2008-01-09  Jan Hubicka  <jh@suse.cz>
20364
20365         PR tree-optimization/34708
20366         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
20367         based on number of case labels.
20368         (init_inline_once): Remove switch_cost.
20369         * tree-inline.h (eni_weights_d): Remove switch_cost.
20370
20371 2008-01-09  Richard Guenther  <rguenther@suse.de>
20372         Andrew Pinski  <andrew_pinski@playstation.sony.com>
20373
20374         PR middle-end/30132
20375         * gimplify.c (gimplify_cond_expr): Do not create an addressable
20376         temporary if an rvalue is ok or an lvalue is not required.
20377
20378 2008-01-09  Richard Guenther  <rguenther@suse.de>
20379
20380         PR middle-end/34458
20381         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
20382         adjust return type.
20383
20384 2008-01-09  Richard Guenther  <rguenther@suse.de>
20385
20386         PR middle-end/34679
20387         * tree.c (host_integerp): Check for sizetype only if the
20388         type is an integer type.
20389
20390 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
20391
20392         PR debug/26364
20393         * opts.c (decode_options): Disable inlining of functions called
20394         once if not in unit-at-a-time mode.
20395
20396 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
20397
20398         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
20399
20400 2008-01-08  Richard Guenther  <rguenther@suse.de>
20401
20402         PR middle-end/31863
20403         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
20404         out early if the result will be unused.
20405
20406 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
20407
20408         PR target/34709
20409         Revert:
20410
20411         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
20412         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
20413         for TARGET_RECIP.
20414
20415 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
20416
20417         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
20418         for vectorization tuned.
20419
20420 2008-01-08  Richard Guenther  <rguenther@suse.de>
20421
20422         PR tree-optimization/34683
20423         * tree-ssa-operands.c (operand_build_cmp): Export.
20424         * tree-ssa-operands.h (operand_build_cmp): Declare.
20425         * tree-vn.c (vuses_compare): Remove.
20426         (sort_vuses): Use operand_build_cmp.
20427         (sort_vuses_heap): Likewise.
20428         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
20429         to re-use old VEC if available.  Do not sort already sorted VUSEs.
20430         (vdefs_to_vec): Do not sort already sorted VDEFs.
20431
20432 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
20433
20434         PR middle-end/34694
20435         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
20436
20437 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
20438
20439         PR target/34702
20440         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
20441         limitations of reciprocal sequences on x86 targets.
20442
20443 2008-01-08  Richard Guenther  <rguenther@suse.de>
20444
20445         PR tree-optimization/34683
20446         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
20447
20448 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
20449
20450         PR target/34622
20451         * config/darwin.c (darwin_mergeable_string_section): Don't use
20452         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
20453
20454 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
20455
20456         PR target/34682
20457         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
20458         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
20459         predicates of op0 and op1 to register_operand.
20460         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
20461         expander using X87MODEF mode iterator.  Change predicates of
20462         op0 and op1 to register_operand.
20463         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
20464         corresponding patterns and macroize using MODEF macro.  Change
20465         predicates of op0 and op1 to register_operand and remove
20466         "m" constraint. Disparage "r" alternative with "!".
20467         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
20468         macroize using X87MODEF macro.  Change predicates of op0 and op1
20469         to register_operand and remove "m" constraint.  Disparage "r"
20470         alternative with "!".
20471         (absneg splitter with memory operands): Remove.
20472         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
20473         patterns and macroize using X87MODEF mode iterator.
20474         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
20475         Change predicate of op1 to register_operand.
20476         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
20477         for memory operands.
20478
20479 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
20480
20481         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
20482
20483 2008-01-07  Richard Guenther  <rguenther@suse.de>
20484
20485         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
20486         fields.
20487
20488 2008-01-07  Richard Guenther  <rguenther@suse.de>
20489
20490         PR tree-optimization/34683
20491         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
20492         VOPs of the needed size to save memory.  Use VEC_quick_push
20493         to save compile-time.
20494         (vdefs_to_vec): Likewise.
20495
20496 2008-01-07  Sa Liu  <saliu@de.ibm.com>
20497
20498         * config/spu/spu.md (divdf3): Genetate inline code for double
20499         division.  The implementation doesn't handle INF or NAN, therefore it
20500         only applies when -ffinite-math-only is given.
20501
20502 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
20503
20504         PR libstdc++/34680
20505         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
20506         * doc/cpp.texi ([Common Predefined Macros]): Document.
20507
20508 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
20509
20510         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
20511         order to use commutative addition instead of subtraction.
20512
20513 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20514             Mircea Namolaru  <namolaru@il.ibm.com>
20515             Vladimir Yanovsky  <yanov@il.ibm.com>
20516             Revital Eres  <eres@il.ibm.com>
20517
20518         PR tree-optimization/34263
20519         * tree-outof-ssa.c (process_single_block_loop_latch,
20520         contains_tree_r): New functions.
20521         (analyze_edges_for_bb): Call process_single_block_loop_latch
20522         function to empty single-basic-block latch block if possible.
20523
20524 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
20525
20526         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
20527         for TARGET_RECIP.
20528         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
20529
20530 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
20531
20532         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
20533
20534 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
20535
20536         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
20537
20538 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
20539
20540         PR tree-optimization/34618
20541         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
20542         flag from T.
20543
20544 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
20545
20546         PR target/34673
20547         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
20548         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
20549         Update copyright year.
20550
20551         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
20552         Update copyright year.
20553         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
20554         using NR fixup.
20555
20556 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
20557
20558         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
20559         edge does not point to current bb before changing need_assert.
20560
20561 2008-01-04  Richard Guenther  <rguenther@suse.de>
20562
20563         PR middle-end/34029
20564         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
20565         for verifying purposes if they are is_gimple_min_invariant.
20566
20567 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
20568
20569         PR tree-optimization/34448
20570         PR tree-optimization/34465
20571         * gimplify.c (gimplify_init_constructor): Add new parameter
20572         notify_temp_creation.  Use it.
20573         (gimplify_modify_expr_rhs): Take volatiles into account when
20574         optimizing constructors.
20575         Do not optimize constructors if gimplify_init_constructor will dump to
20576         memory.
20577         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
20578         * gcc.c-torture/compile/pr34448.c: New.
20579
20580 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
20581
20582         PR gcov-profile/34609
20583         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
20584         return_slot if result is TREE_ADDRESSABLE.
20585
20586 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
20587
20588         * config/mips/mips.md (sqrt_condition): Tweak comment.
20589         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
20590
20591 2008-01-03  Tom Tromey  <tromey@redhat.com>
20592
20593         PR c/34457
20594         * c-common.c (c_type_hash): Handle VLAs.
20595
20596 2008-01-03  Jan Hubicka  <jh@suse.cz>
20597
20598         PR tree-optimization/31081
20599         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
20600         0 when inlining and not inlining to first basic block.
20601         (remap_decl): When var is initialized to 0, don't set default_def.
20602         (expand_call_inline): Set entry_bb.
20603         * tree-inline.h (copy_body_data): Add entry_bb.
20604
20605 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
20606
20607         PR c++/34619
20608         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
20609         before returning.
20610
20611         PR tree-optimization/29484
20612         * tree-inline.c (inline_forbidden_p_2): New function.
20613         (inline_forbidden_p): Disallow inlining if some static var
20614         has an address of a local LABEL_DECL in its initializer.
20615         * doc/extend.texi (Labels as Values): Document &&foo behaviour
20616         vs. inlining.
20617
20618 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
20619
20620         PR tree-optimization/34635
20621         * tree-data-ref.c (add_other_self_distances): Make sure that the
20622         evolution step is constant.
20623
20624 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
20625
20626         PR middle-end/34608
20627         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
20628
20629 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
20630
20631         * tree-sra.c (scalarize_init): Insert the generate_element_init
20632         statements after the generate_element_zero statements.
20633
20634 2008-01-02  Richard Guenther  <rguenther@suse.de>
20635
20636         PR middle-end/34093
20637         PR middle-end/31976
20638         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
20639         for very large number of operands instead of ICEing.
20640
20641 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
20642
20643         PR target/34013
20644         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
20645         while stack probing.
20646
20647 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
20648
20649         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
20650         in C++0x mode.
20651
20652 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
20653
20654         PR libmudflap/26442
20655         * tree-mudflap.c (mx_register_decls): Guard warning by
20656         !DECL_ARTIFICIAL check.
20657
20658 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
20659
20660         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
20661         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
20662         sse5_perm<mode>): Fix constraints.